@import url('https://simplesalon2-dev.10web.cloud/wp-content/themes/divi-simpleworld/../Divi/style.css');

/*FILESTART   */

/* 10Web Booster optimized this CSS file */

:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 823px;--wp--style--global--wide-size: 1080px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
/*# sourceURL=global-styles-inline-css */


/*FILESTART  /home/wpstaging/web/wp-staging/wp-includes/css/dashicons.min.css */

/*! This file is auto-generated */
@font-face{font-family:dashicons;src:url('https://simplesalon2-dev.10web.cloud/wp-includes/css/../fonts/dashicons.eot?99ac726223c749443b642ce33df8b800');src:url('https://simplesalon2-dev.10web.cloud/wp-includes/css/../fonts/dashicons.eot?99ac726223c749443b642ce33df8b800#iefix') format("embedded-opentype"),url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff"),url('https://simplesalon2-dev.10web.cloud/wp-includes/css/../fonts/dashicons.ttf?99ac726223c749443b642ce33df8b800') format("truetype");font-weight:400;font-style:normal}.dashicons,.dashicons-before:before{font-family:dashicons;display:inline-block;line-height:1;font-weight:400;font-style:normal;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px;height:20px;font-size:20px;vertical-align:top;text-align:center;transition:color .1s ease-in}.dashicons-admin-appearance:before{content:"\f100"}.dashicons-admin-collapse:before{content:"\f148"}.dashicons-admin-comments:before{content:"\f101"}.dashicons-admin-customizer:before{content:"\f540"}.dashicons-admin-generic:before{content:"\f111"}.dashicons-admin-home:before{content:"\f102"}.dashicons-admin-links:before{content:"\f103"}.dashicons-admin-media:before{content:"\f104"}.dashicons-admin-multisite:before{content:"\f541"}.dashicons-admin-network:before{content:"\f112"}.dashicons-admin-page:before{content:"\f105"}.dashicons-admin-plugins:before{content:"\f106"}.dashicons-admin-post:before{content:"\f109"}.dashicons-admin-settings:before{content:"\f108"}.dashicons-admin-site-alt:before{content:"\f11d"}.dashicons-admin-site-alt2:before{content:"\f11e"}.dashicons-admin-site-alt3:before{content:"\f11f"}.dashicons-admin-site:before{content:"\f319"}.dashicons-admin-tools:before{content:"\f107"}.dashicons-admin-users:before{content:"\f110"}.dashicons-airplane:before{content:"\f15f"}.dashicons-album:before{content:"\f514"}.dashicons-align-center:before{content:"\f134"}.dashicons-align-full-width:before{content:"\f114"}.dashicons-align-left:before{content:"\f135"}.dashicons-align-none:before{content:"\f138"}.dashicons-align-pull-left:before{content:"\f10a"}.dashicons-align-pull-right:before{content:"\f10b"}.dashicons-align-right:before{content:"\f136"}.dashicons-align-wide:before{content:"\f11b"}.dashicons-amazon:before{content:"\f162"}.dashicons-analytics:before{content:"\f183"}.dashicons-archive:before{content:"\f480"}.dashicons-arrow-down-alt:before{content:"\f346"}.dashicons-arrow-down-alt2:before{content:"\f347"}.dashicons-arrow-down:before{content:"\f140"}.dashicons-arrow-left-alt:before{content:"\f340"}.dashicons-arrow-left-alt2:before{content:"\f341"}.dashicons-arrow-left:before{content:"\f141"}.dashicons-arrow-right-alt:before{content:"\f344"}.dashicons-arrow-right-alt2:before{content:"\f345"}.dashicons-arrow-right:before{content:"\f139"}.dashicons-arrow-up-alt:before{content:"\f342"}.dashicons-arrow-up-alt2:before{content:"\f343"}.dashicons-arrow-up-duplicate:before{content:"\f143"}.dashicons-arrow-up:before{content:"\f142"}.dashicons-art:before{content:"\f309"}.dashicons-awards:before{content:"\f313"}.dashicons-backup:before{content:"\f321"}.dashicons-bank:before{content:"\f16a"}.dashicons-beer:before{content:"\f16c"}.dashicons-bell:before{content:"\f16d"}.dashicons-block-default:before{content:"\f12b"}.dashicons-book-alt:before{content:"\f331"}.dashicons-book:before{content:"\f330"}.dashicons-buddicons-activity:before{content:"\f452"}.dashicons-buddicons-bbpress-logo:before{content:"\f477"}.dashicons-buddicons-buddypress-logo:before{content:"\f448"}.dashicons-buddicons-community:before{content:"\f453"}.dashicons-buddicons-forums:before{content:"\f449"}.dashicons-buddicons-friends:before{content:"\f454"}.dashicons-buddicons-groups:before{content:"\f456"}.dashicons-buddicons-pm:before{content:"\f457"}.dashicons-buddicons-replies:before{content:"\f451"}.dashicons-buddicons-topics:before{content:"\f450"}.dashicons-buddicons-tracking:before{content:"\f455"}.dashicons-building:before{content:"\f512"}.dashicons-businessman:before{content:"\f338"}.dashicons-businessperson:before{content:"\f12e"}.dashicons-businesswoman:before{content:"\f12f"}.dashicons-button:before{content:"\f11a"}.dashicons-calculator:before{content:"\f16e"}.dashicons-calendar-alt:before{content:"\f508"}.dashicons-calendar:before{content:"\f145"}.dashicons-camera-alt:before{content:"\f129"}.dashicons-camera:before{content:"\f306"}.dashicons-car:before{content:"\f16b"}.dashicons-carrot:before{content:"\f511"}.dashicons-cart:before{content:"\f174"}.dashicons-category:before{content:"\f318"}.dashicons-chart-area:before{content:"\f239"}.dashicons-chart-bar:before{content:"\f185"}.dashicons-chart-line:before{content:"\f238"}.dashicons-chart-pie:before{content:"\f184"}.dashicons-clipboard:before{content:"\f481"}.dashicons-clock:before{content:"\f469"}.dashicons-cloud-saved:before{content:"\f137"}.dashicons-cloud-upload:before{content:"\f13b"}.dashicons-cloud:before{content:"\f176"}.dashicons-code-standards:before{content:"\f13a"}.dashicons-coffee:before{content:"\f16f"}.dashicons-color-picker:before{content:"\f131"}.dashicons-columns:before{content:"\f13c"}.dashicons-controls-back:before{content:"\f518"}.dashicons-controls-forward:before{content:"\f519"}.dashicons-controls-pause:before{content:"\f523"}.dashicons-controls-play:before{content:"\f522"}.dashicons-controls-repeat:before{content:"\f515"}.dashicons-controls-skipback:before{content:"\f516"}.dashicons-controls-skipforward:before{content:"\f517"}.dashicons-controls-volumeoff:before{content:"\f520"}.dashicons-controls-volumeon:before{content:"\f521"}.dashicons-cover-image:before{content:"\f13d"}.dashicons-dashboard:before{content:"\f226"}.dashicons-database-add:before{content:"\f170"}.dashicons-database-export:before{content:"\f17a"}.dashicons-database-import:before{content:"\f17b"}.dashicons-database-remove:before{content:"\f17c"}.dashicons-database-view:before{content:"\f17d"}.dashicons-database:before{content:"\f17e"}.dashicons-desktop:before{content:"\f472"}.dashicons-dismiss:before{content:"\f153"}.dashicons-download:before{content:"\f316"}.dashicons-drumstick:before{content:"\f17f"}.dashicons-edit-large:before{content:"\f327"}.dashicons-edit-page:before{content:"\f186"}.dashicons-edit:before{content:"\f464"}.dashicons-editor-aligncenter:before{content:"\f207"}.dashicons-editor-alignleft:before{content:"\f206"}.dashicons-editor-alignright:before{content:"\f208"}.dashicons-editor-bold:before{content:"\f200"}.dashicons-editor-break:before{content:"\f474"}.dashicons-editor-code-duplicate:before{content:"\f494"}.dashicons-editor-code:before{content:"\f475"}.dashicons-editor-contract:before{content:"\f506"}.dashicons-editor-customchar:before{content:"\f220"}.dashicons-editor-expand:before{content:"\f211"}.dashicons-editor-help:before{content:"\f223"}.dashicons-editor-indent:before{content:"\f222"}.dashicons-editor-insertmore:before{content:"\f209"}.dashicons-editor-italic:before{content:"\f201"}.dashicons-editor-justify:before{content:"\f214"}.dashicons-editor-kitchensink:before{content:"\f212"}.dashicons-editor-ltr:before{content:"\f10c"}.dashicons-editor-ol-rtl:before{content:"\f12c"}.dashicons-editor-ol:before{content:"\f204"}.dashicons-editor-outdent:before{content:"\f221"}.dashicons-editor-paragraph:before{content:"\f476"}.dashicons-editor-paste-text:before{content:"\f217"}.dashicons-editor-paste-word:before{content:"\f216"}.dashicons-editor-quote:before{content:"\f205"}.dashicons-editor-removeformatting:before{content:"\f218"}.dashicons-editor-rtl:before{content:"\f320"}.dashicons-editor-spellcheck:before{content:"\f210"}.dashicons-editor-strikethrough:before{content:"\f224"}.dashicons-editor-table:before{content:"\f535"}.dashicons-editor-textcolor:before{content:"\f215"}.dashicons-editor-ul:before{content:"\f203"}.dashicons-editor-underline:before{content:"\f213"}.dashicons-editor-unlink:before{content:"\f225"}.dashicons-editor-video:before{content:"\f219"}.dashicons-ellipsis:before{content:"\f11c"}.dashicons-email-alt:before{content:"\f466"}.dashicons-email-alt2:before{content:"\f467"}.dashicons-email:before{content:"\f465"}.dashicons-embed-audio:before{content:"\f13e"}.dashicons-embed-generic:before{content:"\f13f"}.dashicons-embed-photo:before{content:"\f144"}.dashicons-embed-post:before{content:"\f146"}.dashicons-embed-video:before{content:"\f149"}.dashicons-excerpt-view:before{content:"\f164"}.dashicons-exit:before{content:"\f14a"}.dashicons-external:before{content:"\f504"}.dashicons-facebook-alt:before{content:"\f305"}.dashicons-facebook:before{content:"\f304"}.dashicons-feedback:before{content:"\f175"}.dashicons-filter:before{content:"\f536"}.dashicons-flag:before{content:"\f227"}.dashicons-food:before{content:"\f187"}.dashicons-format-aside:before{content:"\f123"}.dashicons-format-audio:before{content:"\f127"}.dashicons-format-chat:before{content:"\f125"}.dashicons-format-gallery:before{content:"\f161"}.dashicons-format-image:before{content:"\f128"}.dashicons-format-quote:before{content:"\f122"}.dashicons-format-status:before{content:"\f130"}.dashicons-format-video:before{content:"\f126"}.dashicons-forms:before{content:"\f314"}.dashicons-fullscreen-alt:before{content:"\f188"}.dashicons-fullscreen-exit-alt:before{content:"\f189"}.dashicons-games:before{content:"\f18a"}.dashicons-google:before{content:"\f18b"}.dashicons-googleplus:before{content:"\f462"}.dashicons-grid-view:before{content:"\f509"}.dashicons-groups:before{content:"\f307"}.dashicons-hammer:before{content:"\f308"}.dashicons-heading:before{content:"\f10e"}.dashicons-heart:before{content:"\f487"}.dashicons-hidden:before{content:"\f530"}.dashicons-hourglass:before{content:"\f18c"}.dashicons-html:before{content:"\f14b"}.dashicons-id-alt:before{content:"\f337"}.dashicons-id:before{content:"\f336"}.dashicons-image-crop:before{content:"\f165"}.dashicons-image-filter:before{content:"\f533"}.dashicons-image-flip-horizontal:before{content:"\f169"}.dashicons-image-flip-vertical:before{content:"\f168"}.dashicons-image-rotate-left:before{content:"\f166"}.dashicons-image-rotate-right:before{content:"\f167"}.dashicons-image-rotate:before{content:"\f531"}.dashicons-images-alt:before{content:"\f232"}.dashicons-images-alt2:before{content:"\f233"}.dashicons-index-card:before{content:"\f510"}.dashicons-info-outline:before{content:"\f14c"}.dashicons-info:before{content:"\f348"}.dashicons-insert-after:before{content:"\f14d"}.dashicons-insert-before:before{content:"\f14e"}.dashicons-insert:before{content:"\f10f"}.dashicons-instagram:before{content:"\f12d"}.dashicons-laptop:before{content:"\f547"}.dashicons-layout:before{content:"\f538"}.dashicons-leftright:before{content:"\f229"}.dashicons-lightbulb:before{content:"\f339"}.dashicons-linkedin:before{content:"\f18d"}.dashicons-list-view:before{content:"\f163"}.dashicons-location-alt:before{content:"\f231"}.dashicons-location:before{content:"\f230"}.dashicons-lock-duplicate:before{content:"\f315"}.dashicons-lock:before{content:"\f160"}.dashicons-marker:before{content:"\f159"}.dashicons-media-archive:before{content:"\f501"}.dashicons-media-audio:before{content:"\f500"}.dashicons-media-code:before{content:"\f499"}.dashicons-media-default:before{content:"\f498"}.dashicons-media-document:before{content:"\f497"}.dashicons-media-interactive:before{content:"\f496"}.dashicons-media-spreadsheet:before{content:"\f495"}.dashicons-media-text:before{content:"\f491"}.dashicons-media-video:before{content:"\f490"}.dashicons-megaphone:before{content:"\f488"}.dashicons-menu-alt:before{content:"\f228"}.dashicons-menu-alt2:before{content:"\f329"}.dashicons-menu-alt3:before{content:"\f349"}.dashicons-menu:before{content:"\f333"}.dashicons-microphone:before{content:"\f482"}.dashicons-migrate:before{content:"\f310"}.dashicons-minus:before{content:"\f460"}.dashicons-money-alt:before{content:"\f18e"}.dashicons-money:before{content:"\f526"}.dashicons-move:before{content:"\f545"}.dashicons-nametag:before{content:"\f484"}.dashicons-networking:before{content:"\f325"}.dashicons-no-alt:before{content:"\f335"}.dashicons-no:before{content:"\f158"}.dashicons-open-folder:before{content:"\f18f"}.dashicons-palmtree:before{content:"\f527"}.dashicons-paperclip:before{content:"\f546"}.dashicons-pdf:before{content:"\f190"}.dashicons-performance:before{content:"\f311"}.dashicons-pets:before{content:"\f191"}.dashicons-phone:before{content:"\f525"}.dashicons-pinterest:before{content:"\f192"}.dashicons-playlist-audio:before{content:"\f492"}.dashicons-playlist-video:before{content:"\f493"}.dashicons-plugins-checked:before{content:"\f485"}.dashicons-plus-alt:before{content:"\f502"}.dashicons-plus-alt2:before{content:"\f543"}.dashicons-plus:before{content:"\f132"}.dashicons-podio:before{content:"\f19c"}.dashicons-portfolio:before{content:"\f322"}.dashicons-post-status:before{content:"\f173"}.dashicons-pressthis:before{content:"\f157"}.dashicons-printer:before{content:"\f193"}.dashicons-privacy:before{content:"\f194"}.dashicons-products:before{content:"\f312"}.dashicons-randomize:before{content:"\f503"}.dashicons-reddit:before{content:"\f195"}.dashicons-redo:before{content:"\f172"}.dashicons-remove:before{content:"\f14f"}.dashicons-rest-api:before{content:"\f124"}.dashicons-rss:before{content:"\f303"}.dashicons-saved:before{content:"\f15e"}.dashicons-schedule:before{content:"\f489"}.dashicons-screenoptions:before{content:"\f180"}.dashicons-search:before{content:"\f179"}.dashicons-share-alt:before{content:"\f240"}.dashicons-share-alt2:before{content:"\f242"}.dashicons-share:before{content:"\f237"}.dashicons-shield-alt:before{content:"\f334"}.dashicons-shield:before{content:"\f332"}.dashicons-shortcode:before{content:"\f150"}.dashicons-slides:before{content:"\f181"}.dashicons-smartphone:before{content:"\f470"}.dashicons-smiley:before{content:"\f328"}.dashicons-sort:before{content:"\f156"}.dashicons-sos:before{content:"\f468"}.dashicons-spotify:before{content:"\f196"}.dashicons-star-empty:before{content:"\f154"}.dashicons-star-filled:before{content:"\f155"}.dashicons-star-half:before{content:"\f459"}.dashicons-sticky:before{content:"\f537"}.dashicons-store:before{content:"\f513"}.dashicons-superhero-alt:before{content:"\f197"}.dashicons-superhero:before{content:"\f198"}.dashicons-table-col-after:before{content:"\f151"}.dashicons-table-col-before:before{content:"\f152"}.dashicons-table-col-delete:before{content:"\f15a"}.dashicons-table-row-after:before{content:"\f15b"}.dashicons-table-row-before:before{content:"\f15c"}.dashicons-table-row-delete:before{content:"\f15d"}.dashicons-tablet:before{content:"\f471"}.dashicons-tag:before{content:"\f323"}.dashicons-tagcloud:before{content:"\f479"}.dashicons-testimonial:before{content:"\f473"}.dashicons-text-page:before{content:"\f121"}.dashicons-text:before{content:"\f478"}.dashicons-thumbs-down:before{content:"\f542"}.dashicons-thumbs-up:before{content:"\f529"}.dashicons-tickets-alt:before{content:"\f524"}.dashicons-tickets:before{content:"\f486"}.dashicons-tide:before{content:"\f10d"}.dashicons-translation:before{content:"\f326"}.dashicons-trash:before{content:"\f182"}.dashicons-twitch:before{content:"\f199"}.dashicons-twitter-alt:before{content:"\f302"}.dashicons-twitter:before{content:"\f301"}.dashicons-undo:before{content:"\f171"}.dashicons-universal-access-alt:before{content:"\f507"}.dashicons-universal-access:before{content:"\f483"}.dashicons-unlock:before{content:"\f528"}.dashicons-update-alt:before{content:"\f113"}.dashicons-update:before{content:"\f463"}.dashicons-upload:before{content:"\f317"}.dashicons-vault:before{content:"\f178"}.dashicons-video-alt:before{content:"\f234"}.dashicons-video-alt2:before{content:"\f235"}.dashicons-video-alt3:before{content:"\f236"}.dashicons-visibility:before{content:"\f177"}.dashicons-warning:before{content:"\f534"}.dashicons-welcome-add-page:before{content:"\f133"}.dashicons-welcome-comments:before{content:"\f117"}.dashicons-welcome-learn-more:before{content:"\f118"}.dashicons-welcome-view-site:before{content:"\f115"}.dashicons-welcome-widgets-menus:before{content:"\f116"}.dashicons-welcome-write-blog:before{content:"\f119"}.dashicons-whatsapp:before{content:"\f19a"}.dashicons-wordpress-alt:before{content:"\f324"}.dashicons-wordpress:before{content:"\f120"}.dashicons-xing:before{content:"\f19d"}.dashicons-yes-alt:before{content:"\f12a"}.dashicons-yes:before{content:"\f147"}.dashicons-youtube:before{content:"\f19b"}.dashicons-editor-distractionfree:before{content:"\f211"}.dashicons-exerpt-view:before{content:"\f164"}.dashicons-format-links:before{content:"\f103"}.dashicons-format-standard:before{content:"\f109"}.dashicons-post-trash:before{content:"\f182"}.dashicons-share1:before{content:"\f237"}.dashicons-welcome-edit-page:before{content:"\f119"}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/plugins/simpleworld/styles.css */
/* Start Now */
#divStartNow, #divEnquiry {
 display:none;
 position:fixed;
 box-shadow: 4px 4px 4px #c0c0c0;
 background-color: #f9f9f9;
 z-index: 9999;
 width: 928px;
 padding: 0;
 border: 2px solid #d8d8d8;
}
#divStartNow {
 height: 506px;
}
#divEnquiry {
 height: 560px;
}
#divStartNow h2, #divEnquiry h2 {
	color: #8EDCE6;
	text-align:center;
	font-size: 20px;
	font-family: Verdana, Arial, sans-serif;
	margin-top: 0;
   padding-top: 20px;
   background-color: #f3f3f3;
   margin-bottom: 0;
   padding-bottom: 18px;
   font-weight:bold;
}
#divStartNowEmbed h2 {
   padding-top:10px;
   padding-bottom: 13px;
   font-size:20px;
}
#divStartNow .innerForm {
	padding:32px;
}
#divEnquiry .innerForm {
	padding:32px;
}
#divStartNow .buttons, #divEnquiry .buttons {
	height: 55px;
	padding-bottom: 32px;
	padding-left: 32px;
	padding-right: 32px;
   clear: both;
}
#divStartNow .wsite-button, #divEnquiry .wsite-button {
   background-color: #d64a38;
   -webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	-o-border-radius: 5px;
	-ms-border-radius: 5px;
   border-radius: 5px;
   color: #ffffff;
   height: 34px;
   padding-top: 8px;
   text-align: center;
   width: 140px;
}
#divStartNow .buttons .wsite-button-inner, #divEnquiry .buttons .wsite-button-inner {
    font-family: Verdana,arial,sans-serif;
    font-size: 13px;
    font-weight: bold;
    height: 31px;
    padding-top: 4px;
    text-align: center;
    width: 80px;
}
#divStartNow .signupColumn, #divEnquiry .signupColumn {
	float:left;
	width:400px;
	font-weight:bold;
	line-height:35px;
	margin-right:31px;
}
#divStartNow .signupColumnSeparator, #divEnquiry .signupColumnSeparator {
	float:left;
	border-right:1px solid #e0e0e0;
	box-shadow: 2px 2px 2px #e0e0e0;
}
#divStartNow .signupColumnSeparator {
	height:305px;
}
#divEnquiry .signupColumnSeparator {
	height:379px;
}
#divStartNow .signupColumnRight, #divEnquiry .signupColumnRight {
	margin-left:31px;
	margin-right:0;
}
#divStartNow #signupPackageSelect, #divEnquiry #signupPackageSelect {
	margin-bottom:22px;
}
#divStartNowEmbed #signupPackageSelect {
	white-space:nowrap;
}
#divStartNowEmbed .pricing-header,
#divStartNow .pricing-header {
	margin-bottom:14px;
}
#divStartNowEmbed .pricingtitle,
#divStartNow .pricingtitle {
	font-size: 16px;
	padding: 0;
	padding-top:20px;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	-o-border-radius: 0;
	-ms-border-radius: 0;
	border-radius: 0;
	border-top-left-radius: 0;
   border-top-right-radius: 0;
   font-weight: bold;
   text-transform: uppercase;
   color: #ffffff;
}
#divStartNowEmbed .selected .pricing-footer .et_pb_contact_submit {
   font-weight:bold !important;
   background-color: #ef5d60 !important;
}
#divStartNowEmbed .pricing-column,
#divStartNow .pricing-column {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	-o-border-radius: 0;
	-ms-border-radius: 0;
	border-radius: 0;
	box-shadow:none;
	background-color: #f9f9f9;
	border:2px solid rgba(36,36,36,0.05);
	border-left:none;
   text-align: center;
   width:33%;
   display:inline-block;
}
#divStartNowEmbed .pricing-column.pricing-column-first,
#divStartNow .pricing-column.pricing-column-first {
	border-left:2px solid rgba(36,36,36,0.05);
}
#divStartNowEmbed .price,
#divStartNow .price {
	border-bottom:0;
	padding: 5px 0 10px;
	line-height:20px;
}
#divStartNowEmbed .price .amt,
#divStartNow .price .amt {
	font-size:24px;
   font-weight: bold;
}
#divStartNowEmbed .price .permth,
#divStartNow .price .permth {
    font-size: 10px;
	text-transform:uppercase;
}
#divStartNowEmbed .operators,
#divStartNow .operators {
	color: #ffffff;
	padding-bottom: 20px;
	font-size:12px;
	text-transform:uppercase;
}
#divStartNowEmbed .pricing-footer,
#divStartNow .pricing-footer {
	padding: 10px 0;
	padding-bottom:14px;
}
#divStartNowEmbed .pricing-footer .et_pb_contact_submit {
   border: 0 !important;
   color: #ffffff !important;
   font-weight:normal !important;
   font-size:12px;
}
#divStartNowEmbed .et_pb_contact_submit {
   padding: 6px 20px;
}
#divStartNowEmbed .et_pb_contact_submit:hover {
   border: 2px solid #eeeeee;
}
#divStartNowEmbed .pricing-footer .et_pb_contact_submit {
   float:none;
   padding: 5px 16px 5px 16px !important;
}
#divStartNowEmbed .pricing-footer .et_pb_contact_submit:hover {
   border: 0 !important;
}
#divStartNow .pricing-footer .wsite-button {
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	-o-border-radius: 4px;
	-ms-border-radius: 4px;
	border-radius: 4px;
	font-size:13px !important;
   display: inline-block;
   height: 32px;
   padding-top: 0;
   width: 95px;
}
#divStartNow .pricing-footer .wsite-button-inner {
	padding: 0px 15px 2px 15px;
    line-height: 29px;
	height:25px;
}
#divStartNow .signupColumn input, #divEnquiry .signupColumn input {
	height:26px;
	width:396px;
	font-weight:normal;
	border:1px solid #e0e0e0;
	margin-bottom: 5px;
}

#divStartNow .signupColumn select, #divEnquiry .signupColumn select {
	height:28px;
	width:396px;
	font-weight:normal;
	border:1px solid #e0e0e0;
	margin-bottom: 5px;
}
#divStartNow .signupColumn textarea, #divEnquiry .signupColumn textarea {
	width:396px;
	font-weight:normal;
	border:1px solid #e0e0e0;
	margin-bottom: 22px;
}
#divStartNow .signupColumn select#StateDDL,
#divStartNow .signupColumn input#PostCodeTB,
#divStartNow .signupColumn select#ExpiryMonthDDL,
#divStartNow .signupColumn select#ExpiryYearDDL {
   width: 176px;
}
#divStartNow .signupColumn input[type=checkbox], #divEnquiry .signupColumn input[type=checkbox] {
	height:20px;
	width:20px;
	font-weight:normal;
	border:1px solid #e0e0e0;
	margin-bottom: 5px;
	margin-right: 10px;
	margin-top:3px;
   vertical-align: middle;
}
#divStartNowEmbed .signupTotalToStart {
   margin-bottom:10px;
   margin-top:10px;
}
.signupTotalToStart {
   float:left;
   text-align:right;
   line-height:21px;
   display:none;
   width:550px;
}
#divStartNowEmbed .signupTotalToStart {
   float:none;
   text-align:left;
   display:inline-block;
   width:100%;
}
#likeUsOnFB {
   font-style:italic;
   margin-top:90px;
}
#successCongrats, .successCongrats {
   margin-top:70px;
   font-family:Verdana, Arial, sans-serif;
   font-size:17px;
   font-weight:bold;
}
#divStartNowEmbed hr {
   border:0;
   border-top: 1px solid #cccccc;
   margin: 0;
   margin-top:5px;
   margin-bottom:20px;
}

#divMask {
display:none;
background-color: #ffffff;
opacity: 0.8;
z-index: 9990;
position:fixed;
top:0;
left: 0;
width: 100%;
height: 100%;
}

div#termsofuse {
    background-color: #ffffff;
    border: 1px solid #e9e9e9;
    display: none;
    height: 300px;
    margin: 10px auto;
    overflow: auto;
    width: 600px;
}
div#termsofusecontent h4 {
   padding-top:20px;
   padding-bottom: 20px;
}
div#termsofusecontent ol, div#termsofusecontent li {
    margin: 0;
    padding: 0;
}

div#termsofusecontent ol {
    counter-reset: foo;
    display: table;
}

div#termsofusecontent li {
    list-style: none;
    counter-increment: foo;
    display: table-row;
}

div#termsofusecontent li::before {
    content: counter(foo) ".";
    display: table-cell;
    text-align: right;
    padding-right: .3em;
}

.et_fixed_nav #logo {
   margin-top: 6px;
}
.post-date {
   display:block;
   font-style: italic;
   font-size: 12px;
   color: #666;
   line-height: 12px;
}
.widget_recent_entries ul {
   list-style-type:none;
}
#footer-widgets .footer-widget .widget_recent_entries li::before {
   content: none;
   }
#footer-widgets .footer-widget .widget_recent_entries li {
   padding: 0 0 10px 0;
}

ul.et_pb_pricing {
   list-style-type: none;
   margin-bottom: 20px;
}
ul.et_pb_pricing li {
   text-align:center;
   padding: 0 0 14px 14px
}
ul.et_pb_pricing li::before {
   content: none;
}
#footer-widgets {
    padding-top: 10px !important;
}
.footer-widget {
    margin: 0 60px 0 0 !important;
}
#footer-info {
   display:none;
}
.followus img {
   vertical-align: middle;
   padding-right: 5px;
}
/* embedded form styles (ie. no popup) */
#divEnquiryEmbed {
   padding: 40px;
   padding-top:0;
}
#divStartNowEmbed input,
#divStartNowEmbed select,
#divStartNowEmbed textarea,
#divEnquiryEmbed input,
#divEnquiryEmbed select,
#divEnquiryEmbed textarea,
.StripeElement,
#ddlOperatorCount,
#ddlPricePeriod {
   width:100%;
   background-color: rgba(142, 220, 230, 0.15);
   border: medium none;
   border-radius: 10px;
   box-sizing: border-box;
   color: #858f93;
   font-size: 14px;
   padding: 10px 16px;
   margin-bottom: 10px;
}
#ddlOperatorCount,
#ddlPricePeriod {
   width:150px;
}
a.lnkPricePeriod, a:hover.lnkPricePeriod, a:active.lnkPricePeriod, a:link.lnkPricePeriod, a:visited.lnkPricePeriod {
	color: #858f93;
    display: inline-block;
    padding: 8px 20px;
    border-radius: 10px;
}
a.lnkPricePeriod.selected, a:hover.lnkPricePeriod.selected, a:active.lnkPricePeriod.selected, a:link.lnkPricePeriod.selected, a:visited.lnkPricePeriod.selected {
	color: #252e46;
    background-color: rgba(142, 220, 230, 0.15);
}
#divStartNowEmbed select,
#divEnquiryEmbed select {
   border: none;
   padding: 9px 16px;
}
#divStartNowEmbed input[type=checkbox],
#divEnquiryEmbed input[type=checkbox] {
   width:auto;
}
#divStartNowEmbed input.error,
#divStartNowEmbed select.error,
#divStartNowEmbed textarea.error,
#divEnquiryEmbed input.error,
#divEnquiryEmbed select.error,
#divEnquiryEmbed textarea.error,
.StripeElement.StripeElement--invalid {
   /* border: 1px solid red; */
}
#divStartNowEmbed {
	background-color: rgba(226,226,226,0.22);
	border-radius: 10px 10px 10px 10px;
	border-color: rgba(38,119,137,0.25);
	box-shadow: 0px 2px 18px 0px rgba(37,46,70,0.46);
	padding:40px;
}
#divStartNowEmbed h1 {
	color :#252e46;
	font-size:20px;
}
#divStartNowEmbed a.et_pb_contact_submit {
	color: #ffffff !important;
	border: 10px solid #ef5d60 !important;
    border-radius: 60px;
    letter-spacing: 1px;
    font-size: 14px;
    font-family: 'Montserrat',Helvetica,Arial,Lucida,sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    background-color: #ef5d60;
    padding: 0 1em;
	margin-top:-3px;
}
#divStartNowEmbed a.et_pb_contact_submit:hover {
	background-color: #8edce6;
    border: 10px solid #8edce6 !important;
}
#divStartNowEmbed input,
#divStartNowEmbed select,
#divStartNowEmbed textarea {
	background-color: rgba(142, 220, 230, 0.15);
	color: #858f93;
}
#divEnquiryEmbed a.et_pb_contact_submit {
	color: #252e46 !important;
	border-color: #ffffff !important;
	border-radius: 66px !important;
	letter-spacing: 1px !important;
	background-color: #ffffff;
	font-size: 16px;
	font-family: 'Montserrat',Helvetica,Arial,Lucida,sans-serif !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	padding-top: 13px !important;
	padding-right: 31px !important;
	padding-bottom: 11px !important;
	padding-left: 31px !important;
	box-shadow:0px 2px 18px 0px rgba(0,0,0,0.3);
	transition: color 300ms ease 0ms,background-color 300ms ease 0ms,border 300ms ease 0ms,border-radius 300ms ease 0ms,letter-spacing 300ms ease 0ms;
}
#divEnquiryEmbed a.et_pb_contact_submit:hover {
	color: #ffffff !important;
	border-color: #ec4067 !important;
	border-radius: 66px !important;
	background-color: #ec4067;
}
#divStartNowEmbed .column, #divEnquiryEmbed .column {
   width: 49%;
   float: left;
}
#divStartNowEmbed .column.right, #divEnquiryEmbed .column.right {
   float:right;
}
#divStartNowError, #divEnquiryError {
   color: #ff0000;
}
#divStartNowEmbed #ExpiryYearDDL,
#divStartNowEmbed #ExpiryMonthDDL {
   width: 44%;
}
#divStartNowEmbed #ExpiryYearDDL {
   float:right;
}
#divStartNowEmbed #ExpirySlash {
   display:inline-block;
   text-align:center;
   width: 11%;
}
#divEnquiryEmbed input,
#divEnquiryEmbed select,
#divEnquiryEmbed textarea {
	color: rgba(37,46,70,0.64);
}
#divEnquiryEmbed.type_Developer input,
#divEnquiryEmbed.type_Developer select,
#divEnquiryEmbed.type_Developer textarea {
	background-color: rgba(239, 93, 96, 0.15);
}
#divEnquiryEmbed.type_Developer input:focus,
#divEnquiryEmbed.type_Developer textarea:focus {
	
}
#divEnquiryEmbed.type_sales input,
#divEnquiryEmbed.type_sales select,
#divEnquiryEmbed.type_sales textarea {
	background-color: rgba(142, 220, 230, 0.15);
}
#divEnquiryEmbed.type_sales input:focus,
#divEnquiryEmbed.type_sales textarea:focus {
	background-color: #92c0c4;
	color: #ffffff;
}
/* popup styles */
.sw_mask
{
    display:none;
    background-color:#000000;
    z-index:99;
    position:fixed;
    top:0px;
    left:0px;
    filter:alpha(opacity=25);
    opacity: 0.25;
    height: 100%;
    width: 100%;
    padding:0;
    margin:0;
    border: 0;
}
.divNewSWPopUp a, .divNewSWPopUp a:link, .divNewSWPopUp a:visited {
    text-decoration: none;
}
.divNewSWPopUp a:active, .divNewSWPopUp a:hover {
    text-decoration: underline;
}
.divNewSWPopUp .expandable_heading {
    color: #3982e5; 
    font-weight: bold;
    padding-top: 27px;
    text-align: center;
    text-transform: none;
    background-color: transparent;
    padding-left: 0;
}
.divNewSWPopUp {
    display: none;
    position: fixed;
    z-index: 100;
    background-color: #f8f8f8;
    padding: 0;
    border-radius: 4px;
	font-size:17px;
}
.divNewSWPopUp div {
    text-align: left;
}
.divNewSWPopUp div.popupcontent {
    text-align: center;
}
.divNewSWPopUp.dropshadow
{
    -moz-box-shadow: 3px 3px 3px #999999;
    -webkit-box-shadow: 3px 3px 3px #999999;
    box-shadow: 3px 3px 3px #999999;
}
.divNewSWPopUp .expandable_content {
    line-height: 16px;
    padding-top:10px;
    padding-bottom:27px;
    padding-left:25px;
    padding-right:25px;
	font-size:14px;
}
.divNewSWPopUp .popupbuttons {
    text-align:right;
    margin-top:15px !important;
}
.divNewSWPopUp .popupbuttons a, a.hoverbutton {
    display:inline-block;
    width:80px;
    background-color: #e9e9e9;
    text-align:center;
    padding:7px 0;
    color:#000000;
    font-weight:bold;
    margin-right: 4px;
    margin-left:4px;
    border-radius: 3px;
}
.divNewSWPopUp .popupbuttons a:hover, .divNewSWPopUp .popupbuttons a:active {
	background-color: #c1dcee;
	text-decoration: none;
}
.divNewSWPopUp .popupbuttons a.ok, a.hoverbutton.ok {
    background-color: #90d4e0;
    color:#ffffff;
}
/* end popup styles */

.stackedPopup.stackedLoading {
    background-color: transparent;
    box-shadow: none;
}

.spinner { -webkit-animation:spin 1s linear infinite; animation:spin 1s linear infinite; }
@-webkit-keyframes spin { 0% { -webkit-transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); } }
@keyframes spin { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }

#divSMSOptIn {
   line-height: 18px;
   display:none;
}
#divSMSOptIn span {
   font-style:italic;
   font-size: 11px;
   padding-left: 24px;
   display:inline-block;
}
input#smsoptin {
   margin-bottom:0;
}
#divLocationDetect {
	z-index: 1000;
    width: 100%;
    position: fixed;
    text-align: center;
    background-color: #cccccc;
    padding: 10px 0;
    padding-left: 20px;
    top: 0;
    height: 45px;
    padding-top: 10px;
	white-space: nowrap;
}
#divLocationDetect a.aGo, #divLocationDetect a.aGo:link, #divLocationDetect a.aGo:hover, #divLocationDetect a.aGo:visited, #divLocationDetect a.aGo:active {
	background-color: rgb(37, 46, 70);
	display:inline-block;
	padding-left:5px;
	padding-right:5px;
	border-radius: 3px;
	line-height:22px;
}
#divLocationDetect a.aClose, #divLocationDetect a.aClose:link, #divLocationDetect a.aClose:hover, #divLocationDetect a.aClose:visited, #divLocationDetect a.aClose:active {
	display:inline-block;
	padding-left:10px;
	color: rgb(37, 46, 70);
}
body.admin-bar #divLocationDetect {
    top: 32px;
}
html.has-loc-switcher {
	margin-top: 45px !important;
}
html.has-loc-switcher header div.et_pb_section {
	top: calc(0px + 45px);
}
html.has-loc-switcher.admin-bar header div.et_pb_section {
	top: calc(0px + 32px + 45px);
}
html.has-loc-switcher #et-main-area {
	margin-top: 45px;
}

.price_discounted {
   min-height:53px;
}
.desktop_pricing .price_old {
   text-decoration:line-through;
   text-decoration-thickness:3px;
   font-size: 24px;
   line-height: 24px;
}
.price_discounted .dprice {
   padding-bottom: 0;
}
.price_discounted .dterms {
   font-size: 14px;
    line-height: 14px;
    color: #808080;
    font-style: italic;
}
.signup_success_social,
.signup_success_emailnote {
   display:none;
}
/* slick carousel */
.ld_pt_slider .slick-list.draggable{overflow:hidden}.ld_pt_slider .slick-slider{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.ld_pt_slider .slick-slide{margin:0 10px 30px 10px!important;float:left}.ld_pt_slider .et_pb_pricing_table_wrap{margin-top:80px}.ld_pt_slider .slick-arrow{position:absolute;top:0;right:20px;border:1px solid #e5e5e5;background:#82f558;font-size:0;line-height:50px;width:50px;cursor:pointer;color:#fff;height:50px;border-radius:50%;z-index:99;border:none;font-family:ETmodules!important}.ld_pt_slider .slick-arrow:hover{background:#edf558;color:#fff}.ld_pt_slider .slick-prev{right:80px}.ld_pt_slider .slick-prev:before{content:"\34";font-size:30px}.ld_pt_slider .slick-next:before{content:"\35";font-size:30px}
.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table{background:#fff;box-shadow:0 0 8px rgb(0 0 0 / 20%);text-align:center;border-radius:50px;overflow:hidden;position:relative;border:none;background-color:transparent;padding-bottom:0}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading{background:#9f58f5;padding:45px 0 20px;margin:0 0 30px;border-radius:0 0 20px 20px}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading .et_pb_best_value{background:#ae6b00;position:absolute;top:0;left:50%;padding:5px 15px;margin:0 auto;border-radius:0 0 10px 10px;transform:translate(-50%)}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top{background-color:#fff;height:140px;width:140px;padding:32px 10px;margin:0 auto 2px;border-radius:50%;box-shadow:0 5px 0 15px #a5ae00;position:relative;z-index:1;border-bottom:none;border-style:none}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top .et_pb_et_price .et_pb_frequency{display:block;color:#444!important;margin-top:4px}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top .et_pb_et_price .et_pb_frequency .et_pb_frequency_slash{display:none}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content{background:#00ae03;padding:60px 30px 40px;margin:-30px 0 0;text-align:center;border-radius:20px 20px 0 0}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li{text-align:left;padding:20px 30px 20px 0;margin:0;position:relative;border-bottom:1px solid rgba(255,255,255,.2)}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li:nth-child(even){background:0 0}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li:before{content:"\52";color:#fff;font-family:ETmodules!important;font-size:18px;font-weight:900;position:absolute;top:20px;right:0}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li.et_pb_not_available:before{content:"\51"}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_button_wrapper{border-radius:0 0 50px 50px;background-color:#ae0009;padding:0 0 20px}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_button_wrapper .et_pb_pricing_table_button{transition:all .3s ease 0s}.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_button_wrapper .et_pb_pricing_table_button:hover{box-shadow:0 0 15px rgba(0,0,0,.5)}
/* slider nav circles */
  .ld_pt_slider button.slick-arrow {
    background-color:#0a223e;
  }
  .ld_pt_slider button.slick-arrow:hover {
    background-color:#8EDCE6;
  }
  /* plan name header and footer */
  .pricing_slider_starter.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading,
  .ld_price2.pricing_slider_starter .et_pb_pricing_table_wrap .et_pb_button_wrapper {
    background-color: #8EDCE6;
  }
  .pricing_slider_pro.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading,
  .ld_price2.pricing_slider_pro .et_pb_pricing_table_wrap .et_pb_button_wrapper {
    background-color: #FFAD56;
  }
  .pricing_slider_max.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading,
  .ld_price2.pricing_slider_max .et_pb_pricing_table_wrap .et_pb_button_wrapper {
    background-color: #EF5D60;
  }
  .pricing_slider_dome.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_heading,
  .ld_price2.pricing_slider_dome .et_pb_pricing_table_wrap .et_pb_button_wrapper {
    background-color: #0a223e;
  }
  
  /* start trial button text */
  body #page-container .et_pb_section .et_pb_pricing_tables_0.pricing_slider_starter .et_pb_pricing_table_button.et_pb_button {
    color: #8EDCE6 !important;
  }
  body #page-container .et_pb_section .et_pb_pricing_tables_1.pricing_slider_pro .et_pb_pricing_table_button.et_pb_button {
    color: #FFAD56 !important;
  }
  body #page-container .et_pb_section .et_pb_pricing_tables_2.pricing_slider_max .et_pb_pricing_table_button.et_pb_button {
    color: #EF5D60 !important;
  }
  body #page-container .et_pb_section .et_pb_pricing_tables_3.pricing_slider_dome .et_pb_pricing_table_button.et_pb_button {
    color: #0a223e !important;
  }
  
  /* circle around price */
  .et_pb_pricing_tables_0.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top {
    box-shadow: 0 5px 0 15px #8EDCE6;
  }
  .et_pb_pricing_tables_1.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top {
    box-shadow: 0 5px 0 15px #FFAD56;
  }
  .et_pb_pricing_tables_2.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top {
    box-shadow: 0 5px 0 15px #EF5D60;
  }
  .et_pb_pricing_tables_3.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content_top {
    box-shadow: 0 5px 0 15px #0a223e;
  }
  
  /* feature list bgs */
  .et_pb_pricing_tables_0.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content {
    background-color: rgba(142,220,230,0.12);
  }
  .et_pb_pricing_tables_1.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content {
    background-color: rgba(255,173,86,0.17);
  }
  .et_pb_pricing_tables_2.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content {
    background-color: rgba(239,93,96,0.07);
  }
  .et_pb_pricing_tables_3.ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content {
    background-color: rgba(10,34,62,0.05);
  }
  
  /* feature list text */
  .et_pb_pricing_tables_0 ul.et_pb_pricing li, 
  .et_pb_pricing_tables_1 ul.et_pb_pricing li,
  .et_pb_pricing_tables_2 ul.et_pb_pricing li, 
  .et_pb_pricing_tables_3 ul.et_pb_pricing li,
  .et_pb_pricing_tables_0.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_1.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_2.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_3.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_0 ul.et_pb_pricing li.et_pb_not_available, 
  .et_pb_pricing_tables_0 ul.et_pb_pricing li.et_pb_not_available span, 
  .et_pb_pricing_tables_0 ul.et_pb_pricing li.et_pb_not_available a, 
  .et_pb_pricing_tables_1 ul.et_pb_pricing li.et_pb_not_available, 
  .et_pb_pricing_tables_1 ul.et_pb_pricing li.et_pb_not_available span, 
  .et_pb_pricing_tables_1 ul.et_pb_pricing li.et_pb_not_available a, 
  .et_pb_pricing_tables_2 ul.et_pb_pricing li.et_pb_not_available, 
  .et_pb_pricing_tables_2 ul.et_pb_pricing li.et_pb_not_available span, 
  .et_pb_pricing_tables_2 ul.et_pb_pricing li.et_pb_not_available a, 
  .et_pb_pricing_tables_3 ul.et_pb_pricing li.et_pb_not_available, 
  .et_pb_pricing_tables_3 ul.et_pb_pricing li.et_pb_not_available span, 
  .et_pb_pricing_tables_3 ul.et_pb_pricing li.et_pb_not_available a
  {
    color:#919191 !important;
  }
  
  /* feature list separator bars */
  .et_pb_pricing_tables_0 ul.et_pb_pricing li, 
  .et_pb_pricing_tables_1 ul.et_pb_pricing li,
  .et_pb_pricing_tables_2 ul.et_pb_pricing li, 
  .et_pb_pricing_tables_3 ul.et_pb_pricing li,
  .et_pb_pricing_tables_0.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_1.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_2.ld_price2 ul.et_pb_pricing li.et_pb_not_available,
  .et_pb_pricing_tables_3.ld_price2 ul.et_pb_pricing li.et_pb_not_available {
    border-bottom:1px solid rgba(0,0,0,.2) !important;
  }
  /* feature list icons */
  .ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li:before {
    color: #70CB8D;
  }
  .ld_price2 .et_pb_pricing_table_wrap .et_pb_pricing_table .et_pb_pricing_content ul li.et_pb_not_available:before {
    color: #919191;
  }
  
  /* sign up buttons */
  .ld_price2 .et_pb_button.et_pb_pricing_table_button {
    margin-top:20px
  }
  
  .ld_price2 span.et_pb_sum,
  .ld_price2 span.et_pb_dollar_sign {
	  font-size:35px;
  }
/* end slick carousel */
/* collapsible pricing sections */
div.et_pb_row[class*="collapse-header-"] {
    /* border-top:1px solid #252e46; */
    cursor: pointer;
  }
  div.et_pb_row[class*="collapse-header-"].show, 
  div.et_pb_row[class*="collapse-header-"].lastheader {
    /* border-bottom:1px solid #252e46; */
  }
  div.et_pb_row[class*="collapse-header-"] .et_pb_text_inner::before { 
    content: "\35";
    font-family: 'ETModules';
    font-size: 18px;
    vertical-align: top;
    display: inline-block;
  }
  div.et_pb_row[class*="collapse-header-"].show .et_pb_text_inner::before { 
    content: "\33";
  }
  
  div.et_pb_row[class*="collapse-row-"] { 
    display:none;
  }
  div.et_pb_row[class*="collapse-row-"].show { 
    display:flex;
  }
/* end collapsible pricing sections */

/* small screen styles */
@media only screen and (max-width: 980px) {
	.signupColumnSeparator {
      display:none;
   }
   
   #divStartNow .innerForm {
      height: auto;
   }
   
   #divStartNow, #divEnquiry {
      position: absolute;
      width:98%;
      height:auto;
      margin: 0 auto;
   }
   
   #divStartNow .signupColumn, #divEnquiry .signupColumn {
      float:none;
      width:100%;
      margin-right:0;
   }
   .halffield {
      width:100%;
   }
   
   #divStartNow .signupColumnRight, #divEnquiry .signupColumnRight {
      margin-left: 0;
   }
   #divStartNow .signupColumn select, #divEnquiry .signupColumn select, #divStartNow .signupColumn input, #divEnquiry .signupColumn input, #divStartNow .signupColumn textarea, #divEnquiry .signupColumn textarea {
      width: 100%;
   }
   #divStartNow .signupColumn select#StateDDL, #divEnquiry .signupColumn select#StateDDL, 
   #divStartNow .signupColumn input#PostCodeTB, #divEnquiry .signupColumn input#PostCodeTB,
   #divStartNow .signupColumn select#ExpiryMonthDDL, #divEnquiry .signupColumn select#ExpiryMonthDDL,
   #divStartNow .signupColumn select#ExpiryYearDDL, #divEnquiry .signupColumn select#ExpiryYearDDL {
      width: 100%;
   }
   
   #divStartNow .pricing-column {
      width: 100%;
   }
   #divStartNow .pricing-column-middle {
       margin-left:5px;
   }
   
   #divStartNow .buttons, #divEnquiry .buttons {
      height: auto;
   }
   .signupTotalToStart {
      padding-bottom:20px;
      width:100%;
   }
   
   #successCongrats, .successCongrats {
      margin-top:30px;
   }
   #likeUsOnFB {
      margin-top:50px;
   }
   
   /* embedded form styles (ie. no popup) */
   #divStartNowEmbed .column,
   #divEnquiryEmbed .column {
      width:100%;
      float:none;
   }
   #divStartNowEmbed .column.right,
   #divEnquiryEmbed .column.right {
      float:none;
   }
   #divStartNowEmbed #signupPackageSelect {
		margin-bottom:22px;
		white-space:normal;
	}
   #divStartNowEmbed .pricing-column {
      width: 100%;
	  border-left:2px solid rgba(36,36,36,0.05);
   }
   #divStartNowEmbed .pricing-column-middle {
	   margin-top:10px;
	   margin-bottom:10px;
      margin-left:0;
   }
   #divStartNowEmbed .pricing-footer .et_pb_contact_submit {
      width: 50%;
   }
   #ddlOperatorCount,
	#ddlPricePeriod {
	   padding:20px 16px;
   }
}
@media only screen and (max-width: 650px) {
	#divLocationDetect .long {
		display:block;
		font-size: 11px;
	}
	#divLocationDetect {
		padding-left: 0;
		height: 70px;
	}
	#divLocationDetect a.aClose, #divLocationDetect a.aClose:link, #divLocationDetect a.aClose:hover, #divLocationDetect a.aClose:visited, #divLocationDetect a.aClose:active {
		padding-left:0;
		position:fixed;
		right:10px;
		top: 5px;
	}
	html.has-loc-switcher {
		margin-top: 70px !important;
	}
	html.has-loc-switcher header div.et_pb_section {
		top: calc(0px + 70px);
	}
	html.has-loc-switcher.admin-bar header div.et_pb_section {
		top: calc(0px + 32px + 70px);
	}
	html.has-loc-switcher #et-main-area {
		margin-top: 70px;
	}
}

@media only screen and (max-width: 400px) {
	#divLocationDetect .long {
		font-size: 10px;
	}
    #divStartNowEmbed a.et_pb_contact_submit {
        font-size: 12px;
    }
}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */

/*!
Theme Name: Divi
Theme URI: http://www.elegantthemes.com/gallery/divi/
Version: 5.9.0
Requires at least: 6.0
Requires PHP: 7.4
Description: Smart. Flexible. Beautiful. Divi is the most powerful theme in our collection.
Author: Elegant Themes
Author URI: http://www.elegantthemes.com
License: GNU General Public License v2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
a,abbr,acronym,address,applet,b,big,blockquote,body,center,cite,code,dd,del,dfn,div,dl,dt,em,fieldset,font,form,h1,h2,h3,h4,h5,h6,html,i,iframe,img,ins,kbd,label,legend,li,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,tt,u,ul,var{margin:0;padding:0;border:0;outline:0;font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}blockquote{margin:20px 0 30px;border-left:5px solid;padding-left:20px}:focus{outline:0}del{text-decoration:line-through}pre{overflow:auto;padding:10px}figure{margin:0}table{border-collapse:collapse;border-spacing:0}article,aside,footer,header,hgroup,nav,section{display:block}body{font-family:Open Sans,Arial,sans-serif;font-size:14px;color:#666;background-color:#fff;line-height:1.7em;font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.page-template-page-template-blank-php #page-container{padding-top:0!important}body.et_cover_background{background-size:cover!important;background-position:top!important;background-repeat:no-repeat!important;background-attachment:fixed}a{color:#2ea3f2}a,a:hover{text-decoration:none}p{padding-bottom:1em}p:not(.has-background):last-of-type{padding-bottom:0}.et_pb_contact_form p:not(.has-background):last-of-type{padding-bottom:0;margin-bottom:0}p.et_normal_padding{padding-bottom:1em}strong{font-weight:700}cite,em,i{font-style:italic}code,pre{font-family:Courier New,monospace;margin-bottom:10px}ins{text-decoration:none}sub,sup{height:0;line-height:1;position:relative;vertical-align:baseline}sup{bottom:.8em}sub{top:.3em}dl{margin:0 0 1.5em}dl dt{font-weight:700}dd{margin-left:1.5em}blockquote p{padding-bottom:0}embed,iframe,object,video{max-width:100%}h1,h2,h3,h4,h5,h6{color:#333;padding-bottom:10px;line-height:1em;font-weight:500}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}h1{font-size:30px}h2{font-size:26px}h3{font-size:22px}h4{font-size:18px}h5{font-size:16px}h6{font-size:14px}input{-webkit-appearance:none}input[type=checkbox]{-webkit-appearance:checkbox}input[type=radio]{-webkit-appearance:radio}input.text,input.title,input[type=email],input[type=password],input[type=tel],input[type=text],select,textarea{background-color:#fff;border:1px solid #bbb;padding:2px;color:#4e4e4e}input.text:focus,input.title:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#2d3940;color:#3e3e3e}input.text,input.title,input[type=text],select,textarea{margin:0}textarea{padding:4px}button,input,select,textarea{font-family:inherit}img{max-width:100%;height:auto}.clear{clear:both}br.clear{margin:0;padding:0}.pagination{clear:both}#et_search_icon:hover,.et-social-icon a:hover,.et_password_protected_form .et_submit_button,.form-submit .et_pb_buttontton.alt.disabled,.nav-single a,.posted_in a{color:#2ea3f2}.et-search-form,blockquote{border-color:#2ea3f2}#main-content{background-color:#fff}.container{width:80%;max-width:1080px;margin:auto;position:relative}body:not(.et-tb) #main-content .container,body:not(.et-tb-has-header) #main-content .container{padding-top:58px}.et_full_width_page #main-content .container:before{display:none}.main_title{margin-bottom:20px}.et_password_protected_form .et_submit_button:hover,.form-submit .et_pb_button:hover{background:rgba(0,0,0,.05)}.et_button_icon_visible .et_pb_button{padding-right:2em;padding-left:.7em}.et_button_icon_visible .et_pb_button:after{opacity:1;margin-left:0}.et_button_left .et_pb_button:hover:after{left:.15em}.et_button_left .et_pb_button:after{margin-left:0;left:1em}.et_button_icon_visible.et_button_left .et_pb_button,.et_button_left .et_pb_button:hover,.et_button_left .et_pb_module .et_pb_button:hover{padding-left:2em;padding-right:.7em}.et_button_icon_visible.et_button_left .et_pb_button:after,.et_button_left .et_pb_button:hover:after{left:.15em}.et_password_protected_form .et_submit_button:hover,.form-submit .et_pb_button:hover{padding:.3em 1em}.et_button_no_icon .et_pb_button:after{display:none}.et_button_no_icon.et_button_icon_visible.et_button_left .et_pb_button,.et_button_no_icon.et_button_left .et_pb_button:hover,.et_button_no_icon .et_pb_button,.et_button_no_icon .et_pb_button:hover{padding:.3em 1em!important}.et_button_custom_icon .et_pb_button:after{line-height:1.7em}.et_button_custom_icon.et_button_icon_visible .et_pb_button:after,.et_button_custom_icon .et_pb_button:hover:after{margin-left:.3em}#left-area .post_format-post-format-gallery .wp-block-gallery:first-of-type{padding:0;margin-bottom:-16px}.entry-content table:not(.variations){border:1px solid #eee;margin:0 0 15px;text-align:left;width:100%}.entry-content thead th,.entry-content tr th{color:#555;font-weight:700;padding:9px 24px}.entry-content tr td{border-top:1px solid #eee;padding:6px 24px}#left-area ul,.entry-content ul,.et-l--body ul,.et-l--footer ul,.et-l--header ul{list-style-type:disc;padding:0 0 23px 1em;line-height:26px}#left-area ol,.entry-content ol,.et-l--body ol,.et-l--footer ol,.et-l--header ol{list-style-type:decimal;list-style-position:inside;padding:0 0 23px;line-height:26px}#left-area ul li ul,.entry-content ul li ol{padding:2px 0 2px 20px}#left-area ol li ul,.entry-content ol li ol,.entry-content ol li ul,.et-l--body ol li ol,.et-l--footer ol li ol,.et-l--header ol li ol{padding:2px 0 2px 35px}#left-area ul.wp-block-gallery{display:flex;flex-wrap:wrap;list-style-type:none;padding:0}#left-area ul.products{padding:0!important;line-height:1.7!important;list-style:none!important}.gallery-item a{display:block}.gallery-caption,.gallery-item a{width:90%}#wpadminbar{z-index:110000}#left-area .post-meta{font-size:14px;padding-bottom:15px}#left-area .post-meta a{text-decoration:none;color:#666}#left-area .et_featured_image{padding-bottom:7px}.single:not(.et-fb) .post{padding-bottom:25px}body.single .et_audio_content{margin-bottom:-6px}.nav-single a{text-decoration:none;color:#2ea3f2;font-size:14px;font-weight:400}.nav-previous{float:left}.nav-next{float:right}.et_password_protected_form p input{background-color:#eee;border:none!important;width:100%!important;border-radius:0!important;font-size:14px;color:#999!important;padding:16px!important;box-sizing:border-box}.et_password_protected_form label{display:none}.et_password_protected_form .et_submit_button{font-family:inherit;display:block;float:right;margin:8px auto 0;cursor:pointer}.post-password-required p.nocomments.container{max-width:100%}.post-password-required p.nocomments.container:before{display:none}.aligncenter,div.post .new-post .aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-caption{border:1px solid #ddd;text-align:center;background-color:#f3f3f3;margin-bottom:10px;max-width:96%;padding:8px}.wp-caption.alignleft{margin:0 30px 20px 0}.wp-caption.alignright{margin:0 0 20px 30px}.wp-caption img{margin:0;padding:0;border:0}.wp-caption p.wp-caption-text{font-size:12px;padding:0 4px 5px;margin:0}.alignright{float:right}.alignleft{float:left}img.alignleft{display:inline;float:left;margin-right:15px}img.alignright{display:inline;float:right;margin-left:15px}.archive.et-tb-has-template #main-content,.page.et_pb_pagebuilder_layout #main-content{background-color:transparent}body #main-content .et_builder_inner_content>h1,body #main-content .et_builder_inner_content>h2,body #main-content .et_builder_inner_content>h3,body #main-content .et_builder_inner_content>h4,body #main-content .et_builder_inner_content>h5,body #main-content .et_builder_inner_content>h6{line-height:1.4em}body #main-content .et_builder_inner_content>p{line-height:1.7em}.wp-block-pullquote{margin:20px 0 30px}.wp-block-pullquote.has-background blockquote{border-left:none}.wp-block-group.has-background{padding:1.5em 1.5em .5em}@media (min-width:981px){#left-area{width:79.125%;padding-bottom:23px}#main-content .container:before{content:"";position:absolute;top:0;height:100%;width:1px;background-color:#e2e2e2}.et_full_width_page #left-area,.et_no_sidebar #left-area{float:none;width:100%!important}.et_full_width_page #left-area{padding-bottom:0}.et_no_sidebar #main-content .container:before{display:none}}@media (max-width:980px){#page-container{padding-top:80px}.et-tb #page-container,.et-tb-has-header #page-container{padding-top:0!important}#left-area,#sidebar{width:100%!important}#main-content .container:before{display:none!important}.et_full_width_page .et_gallery_item:nth-child(4n+1){clear:none}}@media print{#page-container{padding-top:0!important}}body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #page-container{padding-top:0!important}body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #main-footer,body.et_pb_layout-template-default:not(.et-vb-app-ancestor) #main-header{display:none}#wp-admin-bar-et-use-visual-builder a{padding-left:1px!important}#wp-admin-bar-et-use-visual-builder a:before{font-family:ETmodules!important;content:"";font-size:30px!important;width:28px;padding:1px!important;color:#326bff!important;transition:none!important;margin-right:3px!important}#wp-admin-bar-et-use-visual-builder:hover a:before{color:#fff!important}#wp-admin-bar-et-use-visual-builder:hover a,#wp-admin-bar-et-use-visual-builder a:hover{background-color:#1959ff!important;color:#fff!important}* html .clearfix,:first-child+html .clearfix{zoom:1}.iphone .et_pb_section_video_bg video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}.et_mobile_device .et_pb_section_parallax .et_pb_parallax_css{background-attachment:scroll}.et-social-facebook a.icon:before{content:""}.et-social-twitter a.icon:before{content:""}.et-social-google-plus a.icon:before{content:""}.et-social-instagram a.icon:before{content:""}.et-social-rss a.icon:before{content:""}.ai1ec-single-event:after{content:" ";display:table;clear:both}.evcal_event_details .evcal_evdata_cell .eventon_details_shading_bot.eventon_details_shading_bot{z-index:3}.wp-block-divi-layout{margin-bottom:1em}*{box-sizing:border-box}#et-info-email:before,#et-info-phone:before,#et_search_icon:before,.comment-reply-link:after,.et-cart-info span:before,.et-pb-arrow-next:before,.et-pb-arrow-prev:before,.et-social-icon a:before,.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before,.et_overlay:before,.et_password_protected_form .et_submit_button:after,.et_pb_button:after,.et_pb_button:before,.et_pb_contact_reset:after,.et_pb_contact_submit:after,.et_pb_font_icon:before,.et_pb_newsletter_button:after,.et_pb_pricing_table_button:after,.et_pb_promo_button:after,.et_pb_testimonial:before,.et_pb_toggle_title:before,.form-submit .et_pb_button:after,.mobile_menu_bar:before,a.et_pb_more_button:after{font-family:ETmodules!important;speak:none;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-shadow:0 0;direction:ltr}.et-pb-icon,.et_pb_custom_button_icon.et_pb_button:after,.et_pb_login .et_pb_custom_button_icon.et_pb_button:after,.et_pb_woo_custom_button_icon .button.et_pb_custom_button_icon.et_pb_button:after,.et_pb_woo_custom_button_icon .button.et_pb_custom_button_icon.et_pb_button:hover:after{content:attr(data-icon)}.et-pb-icon{font-family:ETmodules;speak:none;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;font-size:96px;font-style:normal;display:inline-block;box-sizing:border-box;direction:ltr}#et-ajax-saving{display:none;transition:background .3s,box-shadow .3s;box-shadow:0 0 60px rgba(0,139,219,.247059);position:fixed;top:50%;left:50%;width:50px;height:50px;background:#fff;border-radius:50px;margin:-25px 0 0 -25px;z-index:999999;text-align:center}#et-ajax-saving img{margin:9px}.et-safe-mode-indicator,.et-safe-mode-indicator:focus,.et-safe-mode-indicator:hover{box-shadow:0 8px 24px 0 rgba(34,44,57,.08);background:#326bff;color:#fff;font-size:12px;font-weight:600;padding:6px 12px;line-height:16px;border-radius:3px;position:fixed;bottom:30px;right:30px;z-index:999999;text-decoration:none;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Helvetica Neue,Liberation Sans,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border:1px solid #326bff}.et-safe-mode-indicator:hover{border-color:#1959ff}.et_pb_button{font-size:20px;font-weight:500;padding:.3em 1em;line-height:1.7em!important;background-color:transparent;background-size:cover;background-position:50%;background-repeat:no-repeat;border:2px solid;border-radius:3px;transition-duration:.2s;transition-property:all!important;cursor:pointer}.et_pb_button,.et_pb_button_inner{position:relative}.et_pb_button:hover,.et_pb_module .et_pb_button:hover{border:2px solid transparent;padding:.3em 2em .3em .7em}.rtl .et_pb_button:hover,.rtl .et_pb_module .et_pb_button:hover{padding:.3em .7em .3em 2em}.et_pb_button:hover{background-color:hsla(0,0%,100%,.2)}.et_pb_bg_layout_light.et_pb_button:hover,.et_pb_bg_layout_light .et_pb_button:hover{background-color:rgba(0,0,0,.05)}.et_pb_button:after,.et_pb_button:before{font-size:32px;line-height:1em;content:"5";opacity:0;position:absolute;transition:all .2s;text-transform:none;font-feature-settings:"kern" off;font-variant:none;font-style:normal;font-weight:400;text-shadow:none;top:50%;transform:translateY(-50%)}.et_pb_button:before{right:auto}.et_pb_button:after{left:auto}.et_pb_button.et_hover_enabled:hover:after,.et_pb_button.et_pb_hovered:hover:after{transition:none!important}.et_pb_button:before{display:none}.et_pb_button:hover:after{opacity:1}.et_pb_column_1_3 h1,.et_pb_column_1_4 h1,.et_pb_column_1_5 h1,.et_pb_column_1_6 h1,.et_pb_column_2_5 h1{font-size:26px}.et_pb_column_1_3 h2,.et_pb_column_1_4 h2,.et_pb_column_1_5 h2,.et_pb_column_1_6 h2,.et_pb_column_2_5 h2{font-size:23px}.et_pb_column_1_3 h3,.et_pb_column_1_4 h3,.et_pb_column_1_5 h3,.et_pb_column_1_6 h3,.et_pb_column_2_5 h3{font-size:20px}.et_pb_column_1_3 h4,.et_pb_column_1_4 h4,.et_pb_column_1_5 h4,.et_pb_column_1_6 h4,.et_pb_column_2_5 h4{font-size:18px}.et_pb_column_1_3 h5,.et_pb_column_1_4 h5,.et_pb_column_1_5 h5,.et_pb_column_1_6 h5,.et_pb_column_2_5 h5{font-size:16px}.et_pb_column_1_3 h6,.et_pb_column_1_4 h6,.et_pb_column_1_5 h6,.et_pb_column_1_6 h6,.et_pb_column_2_5 h6{font-size:15px}.et_pb_bg_layout_dark,.et_pb_bg_layout_dark h1,.et_pb_bg_layout_dark h2,.et_pb_bg_layout_dark h3,.et_pb_bg_layout_dark h4,.et_pb_bg_layout_dark h5,.et_pb_bg_layout_dark h6{color:#fff!important}.et_pb_module.et_pb_text_align_left{text-align:left}.et_pb_module.et_pb_text_align_center{text-align:center}.et_pb_module.et_pb_text_align_right{text-align:right}.et_pb_module.et_pb_text_align_justified{text-align:justify}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.et_pb_bg_layout_light .et_pb_more_button{color:#2ea3f2}.et_builder_inner_content{position:relative;z-index:1}header .et_builder_inner_content{z-index:2}.et_pb_css_mix_blend_mode_passthrough{mix-blend-mode:unset!important}.et_pb_image_container{margin:-20px -20px 29px}.et_pb_module_inner{position:relative}.et_hover_enabled_preview{z-index:2}.et_hover_enabled:hover{position:relative;z-index:2}.et_pb_all_tabs,.et_pb_circle_counter_inner,.et_pb_module,.et_pb_posts_nav a,.et_pb_tab,.et_pb_with_background{position:relative;background-size:cover;background-position:50%;background-repeat:no-repeat}.et_pb_background_mask,.et_pb_background_pattern{bottom:0;left:0;position:absolute;right:0;top:0;pointer-events:none}.et_pb_background_mask{background-size:calc(100% + 2px) calc(100% + 2px);background-repeat:no-repeat;background-position:50%;overflow:hidden}.et_pb_background_pattern{background-position:0 0;background-repeat:repeat}.et_pb_with_border{position:relative;border:0 solid #333}.post-password-required .et_pb_row{padding:0;width:100%}.post-password-required .et_password_protected_form{min-height:0}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_password_protected_form h1,body:not(.et_pb_pagebuilder_layout) .post-password-required .et_password_protected_form h1{display:none}.et_pb_no_bg{padding:0!important}.et_overlay.et_pb_inline_icon:before,.et_pb_inline_icon:before{content:attr(data-icon)}.et_pb_more_button{color:inherit;text-shadow:none;text-decoration:none;display:inline-block;margin-top:20px}.et_parallax_bg_wrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0}.et_parallax_bg{background-repeat:no-repeat;background-position:top;background-size:cover;position:absolute;bottom:0;left:0;width:100%;height:100%;display:block}.et_parallax_bg.et_parallax_bg__hover,.et_parallax_bg.et_parallax_bg_phone,.et_parallax_bg.et_parallax_bg_tablet,.et_parallax_gradient.et_parallax_gradient__hover,.et_parallax_gradient.et_parallax_gradient_phone,.et_parallax_gradient.et_parallax_gradient_tablet,.et_pb_section_parallax_hover:hover .et_parallax_bg:not(.et_parallax_bg__hover),.et_pb_section_parallax_hover:hover .et_parallax_gradient:not(.et_parallax_gradient__hover){display:none}.et_pb_section_parallax_hover:hover .et_parallax_bg.et_parallax_bg__hover,.et_pb_section_parallax_hover:hover .et_parallax_gradient.et_parallax_gradient__hover{display:block}.et_parallax_gradient{bottom:0;display:block;left:0;position:absolute;right:0;top:0}.et_pb_module.et_pb_section_parallax,.et_pb_posts_nav a.et_pb_section_parallax,.et_pb_section_parallax,.et_pb_tab.et_pb_section_parallax{position:relative}.et_pb_section_parallax .et_pb_parallax_css,.et_pb_slides .et_parallax_bg.et_pb_parallax_css{background-attachment:fixed}body.et-bfb .et_pb_section_parallax .et_pb_parallax_css,body.et-bfb .et_pb_slides .et_parallax_bg.et_pb_parallax_css{background-attachment:scroll;bottom:auto}.et_pb_section_parallax.et_pb_column .et_pb_module,.et_pb_section_parallax.et_pb_row .et_pb_column,.et_pb_section_parallax.et_pb_row .et_pb_module{z-index:9;position:relative}.et_pb_more_button:hover:after{opacity:1;margin-left:0}.et_pb_preload .et_pb_section_video_bg,.et_pb_preload>div{visibility:hidden}.et_pb_preload,.et_pb_section.et_pb_section_video.et_pb_preload{position:relative;background:#464646!important}.et_pb_preload:before{content:"";position:absolute;top:50%;left:50%;background:url(data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20%20%22%3E%3C/svg%3E#}https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/includes/builder/styles/images/preloader.gif) no-repeat;border-radius:32px;width:32px;height:32px;margin:-16px 0 0 -16px}.box-shadow-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.et_pb_section>.box-shadow-overlay~.et_pb_row{z-index:11}body.safari .section_has_divider{will-change:transform}.et_pb_row>.box-shadow-overlay{z-index:8}.has-box-shadow-overlay{position:relative}.et_clickable{cursor:pointer}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.et_multi_view_hidden,.et_multi_view_hidden_image{display:none!important}@keyframes multi-view-image-fade{0%{opacity:0}10%{opacity:.1}20%{opacity:.2}30%{opacity:.3}40%{opacity:.4}50%{opacity:.5}60%{opacity:.6}70%{opacity:.7}80%{opacity:.8}90%{opacity:.9}to{opacity:1}}.et_multi_view_image__loading{visibility:hidden}.et_multi_view_image__loaded{animation:multi-view-image-fade .5s}#et-pb-motion-effects-offset-tracker{visibility:hidden!important;opacity:0;position:absolute;top:0;left:0}.et-pb-before-scroll-animation{opacity:0}header.et-l.et-l--header:after{clear:both;display:block;content:""}.et_pb_module{animation-timing-function:linear;animation-duration:.2s}@keyframes fadeBottom{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeLeft{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeRight{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeTop{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.et-waypoint:not(.et_pb_counters){opacity:0}@media (min-width:981px){.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_column .et_pb_module.et-last-child,.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_column .et_pb_module:last-child:not(.et-vb-ui),.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_row_inner .et_pb_column .et_pb_module.et-last-child,.et_pb_section.et_section_specialty div.et_pb_row .et_pb_column .et_pb_row_inner .et_pb_column .et_pb_module:last-child:not(.et-vb-ui),.et_pb_section div.et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_pb_section div.et_pb_row .et_pb_column .et_pb_module:last-child:not(.et-vb-ui){margin-bottom:0}}@media (max-width:980px){.et_overlay.et_pb_inline_icon_tablet:before,.et_pb_inline_icon_tablet:before{content:attr(data-icon-tablet)}.et_parallax_bg.et_parallax_bg_tablet_exist,.et_parallax_gradient.et_parallax_gradient_tablet_exist{display:none}.et_parallax_bg.et_parallax_bg_tablet,.et_parallax_gradient.et_parallax_gradient_tablet{display:block}.et_pb_column .et_pb_module{margin-bottom:30px}.et_flex_column>.et_pb_module,.et_flex_group>.et_pb_module{margin-bottom:unset}.et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_pb_row .et_pb_column .et_pb_module:last-child,.et_section_specialty .et_pb_row .et_pb_column .et_pb_module.et-last-child,.et_section_specialty .et_pb_row .et_pb_column .et_pb_module:last-child{margin-bottom:0}.et_pb_more_button{display:inline-block!important}.et_pb_bg_layout_light_tablet.et_pb_button,.et_pb_bg_layout_light_tablet.et_pb_module.et_pb_button,.et_pb_bg_layout_light_tablet .et_pb_more_button{color:#2ea3f2}.et_pb_bg_layout_light_tablet .et_pb_forgot_password a{color:#666}.et_pb_bg_layout_light_tablet h1,.et_pb_bg_layout_light_tablet h2,.et_pb_bg_layout_light_tablet h3,.et_pb_bg_layout_light_tablet h4,.et_pb_bg_layout_light_tablet h5,.et_pb_bg_layout_light_tablet h6{color:#333!important}.et_pb_module .et_pb_bg_layout_light_tablet.et_pb_button{color:#2ea3f2!important}.et_pb_bg_layout_light_tablet{color:#666!important}.et_pb_bg_layout_dark_tablet,.et_pb_bg_layout_dark_tablet h1,.et_pb_bg_layout_dark_tablet h2,.et_pb_bg_layout_dark_tablet h3,.et_pb_bg_layout_dark_tablet h4,.et_pb_bg_layout_dark_tablet h5,.et_pb_bg_layout_dark_tablet h6{color:#fff!important}.et_pb_bg_layout_dark_tablet.et_pb_button,.et_pb_bg_layout_dark_tablet.et_pb_module.et_pb_button,.et_pb_bg_layout_dark_tablet .et_pb_more_button{color:inherit}.et_pb_bg_layout_dark_tablet .et_pb_forgot_password a{color:#fff}.et_pb_module.et_pb_text_align_left-tablet{text-align:left}.et_pb_module.et_pb_text_align_center-tablet{text-align:center}.et_pb_module.et_pb_text_align_right-tablet{text-align:right}.et_pb_module.et_pb_text_align_justified-tablet{text-align:justify}}@media (max-width:767px){.et_pb_more_button{display:inline-block!important}.et_overlay.et_pb_inline_icon_phone:before,.et_pb_inline_icon_phone:before{content:attr(data-icon-phone)}.et_parallax_bg.et_parallax_bg_phone_exist,.et_parallax_gradient.et_parallax_gradient_phone_exist{display:none}.et_parallax_bg.et_parallax_bg_phone,.et_parallax_gradient.et_parallax_gradient_phone{display:block}.et-hide-mobile{display:none!important}.et_pb_bg_layout_light_phone.et_pb_button,.et_pb_bg_layout_light_phone.et_pb_module.et_pb_button,.et_pb_bg_layout_light_phone .et_pb_more_button{color:#2ea3f2}.et_pb_bg_layout_light_phone .et_pb_forgot_password a{color:#666}.et_pb_bg_layout_light_phone h1,.et_pb_bg_layout_light_phone h2,.et_pb_bg_layout_light_phone h3,.et_pb_bg_layout_light_phone h4,.et_pb_bg_layout_light_phone h5,.et_pb_bg_layout_light_phone h6{color:#333!important}.et_pb_module .et_pb_bg_layout_light_phone.et_pb_button{color:#2ea3f2!important}.et_pb_bg_layout_light_phone{color:#666!important}.et_pb_bg_layout_dark_phone,.et_pb_bg_layout_dark_phone h1,.et_pb_bg_layout_dark_phone h2,.et_pb_bg_layout_dark_phone h3,.et_pb_bg_layout_dark_phone h4,.et_pb_bg_layout_dark_phone h5,.et_pb_bg_layout_dark_phone h6{color:#fff!important}.et_pb_bg_layout_dark_phone.et_pb_button,.et_pb_bg_layout_dark_phone.et_pb_module.et_pb_button,.et_pb_bg_layout_dark_phone .et_pb_more_button{color:inherit}.et_pb_module .et_pb_bg_layout_dark_phone.et_pb_button{color:#fff!important}.et_pb_bg_layout_dark_phone .et_pb_forgot_password a{color:#fff}.et_pb_module.et_pb_text_align_left-phone{text-align:left}.et_pb_module.et_pb_text_align_center-phone{text-align:center}.et_pb_module.et_pb_text_align_right-phone{text-align:right}.et_pb_module.et_pb_text_align_justified-phone{text-align:justify}}@media (max-width:479px){a.et_pb_more_button{display:block}}@media (min-width:768px)and (max-width:980px){[data-et-multi-view-load-tablet-hidden=true]:not(.et_multi_view_swapped){display:none!important}}@media (max-width:767px){[data-et-multi-view-load-phone-hidden=true]:not(.et_multi_view_swapped){display:none!important}}@media (min-width:1440px){[data-et-mv-hidden-ultrawide=true]{display:none!important}}@media (min-width:1280px)and (max-width:1439px){[data-et-mv-hidden-widescreen=true]{display:none!important}}@media (min-width:1280px){[data-et-mv-hidden-widescreen=true]:not([data-et-mv-hidden-ultrawide=true]){display:none!important}}@media (min-width:981px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]{display:none!important}}@media (min-width:861px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]){display:none!important}}@media (min-width:768px)and (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]):not([data-et-mv-hidden-phonewide=true]){display:none!important}}@media (max-width:1024px){[data-et-mv-hidden-tabletwide=true]:not([data-et-mv-hidden-tablet=true]):not([data-et-mv-hidden-phonewide=true]):not([data-et-mv-hidden-phone=true]){display:none!important}}@media (min-width:861px)and (max-width:980px){[data-et-mv-hidden-tablet=true]{display:none!important}}@media (min-width:768px)and (max-width:980px){[data-et-mv-hidden-tablet=true]:not([data-et-mv-hidden-phonewide=true]){display:none!important}}@media (max-width:980px){[data-et-mv-hidden-tablet=true]:not([data-et-mv-hidden-phonewide=true]):not([data-et-mv-hidden-phone=true]){display:none!important}}@media (min-width:768px)and (max-width:860px){[data-et-mv-hidden-phonewide=true]{display:none!important}}@media (max-width:860px){[data-et-mv-hidden-phonewide=true]:not([data-et-mv-hidden-phone=true]){display:none!important}}@media (max-width:767px){[data-et-mv-hidden-phone=true]{display:none!important}}.et_pb_menu.et_pb_menu--style-inline_centered_logo .et_pb_menu__menu nav ul{justify-content:center}
/*# sourceURL=divi-style-parent-inline-inline-css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

:root{--gcid-primary-color: #2ea3f2;--gcid-secondary-color: #2ea3f2;--gcid-heading-color: #666666;--gcid-body-color: #666666;--gcid-link-color: #2ea3f2;--gcid-6spcyv8qzp: #ff7043;--gcid-90suxw02k0: #2f2f2f;--gcid-vak449rdh1: #ede7f6;--gcid-hv4rq8m2ns: #E85F35;}
@font-face{font-family:ETmodules;font-display:swap;;src:url(https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/core/admin/fonts/modules/base/modules.eot);src:url(https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/core/admin/fonts/modules/base/modules.eot?#iefix) format("embedded-opentype"),url(https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/core/admin/fonts/modules/base/modules.woff) format("woff"),url(https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/core/admin/fonts/modules/base/modules.ttf) format("truetype"),url(https://simplesalon2-dev.10web.cloud/wp-content/themes/Divi/core/admin/fonts/modules/base/modules.svg#ETmodules) format("svg");font-weight:400;font-style:normal}
.et_audio_content,.et_link_content,.et_quote_content{background-color:#2ea3f2}.et_pb_post .et-pb-controllers a{margin-bottom:10px}.format-gallery .et-pb-controllers{bottom:0}.et_pb_blog_grid .et_audio_content.et_audio_content{margin-bottom:19px}.et_pb_row .et_pb_blog_grid .et_pb_post .et_pb_slide{min-height:180px}.et_audio_content .wp-block-audio{margin:0;padding:0;max-width:100%}.et_audio_content .wp-block-audio audio{max-width:100%;min-width:0}.et_audio_content h2{line-height:44px}.et_pb_column_1_2 .et_audio_content h2,.et_pb_column_1_3 .et_audio_content h2,.et_pb_column_1_4 .et_audio_content h2,.et_pb_column_1_5 .et_audio_content h2,.et_pb_column_1_6 .et_audio_content h2,.et_pb_column_2_5 .et_audio_content h2,.et_pb_column_3_5 .et_audio_content h2,.et_pb_column_3_8 .et_audio_content h2{margin-bottom:9px;margin-top:0}.et_pb_column_1_2 .et_audio_content,.et_pb_column_3_5 .et_audio_content{padding:35px 40px}.et_pb_column_1_2 .et_audio_content h2,.et_pb_column_3_5 .et_audio_content h2{line-height:32px}.et_pb_column_1_3 .et_audio_content,.et_pb_column_1_4 .et_audio_content,.et_pb_column_1_5 .et_audio_content,.et_pb_column_1_6 .et_audio_content,.et_pb_column_2_5 .et_audio_content,.et_pb_column_3_8 .et_audio_content{padding:35px 20px}.et_pb_column_1_3 .et_audio_content h2,.et_pb_column_1_4 .et_audio_content h2,.et_pb_column_1_5 .et_audio_content h2,.et_pb_column_1_6 .et_audio_content h2,.et_pb_column_2_5 .et_audio_content h2,.et_pb_column_3_8 .et_audio_content h2{font-size:18px;line-height:26px}article.et_pb_has_overlay .et_pb_blog_image_container{position:relative}.et_pb_post>.et_main_video_container{position:relative;margin-bottom:30px}.et_pb_post .et_pb_video_overlay .et_pb_video_play{color:#fff}.et_pb_post .et_pb_video_overlay_hover:hover{background:rgba(0,0,0,.6)}.et_audio_content,.et_link_content,.et_quote_content{text-align:center;word-wrap:break-word;position:relative;padding:50px 60px}.et_audio_content h2,.et_link_content a.et_link_main_url,.et_link_content h2,.et_quote_content blockquote cite,.et_quote_content blockquote p{color:#fff!important}.et_quote_main_link{position:absolute;text-indent:-9999px;width:100%;height:100%;display:block;top:0;left:0}.et_quote_content blockquote{padding:0;margin:0;border:none}.et_audio_content h2,.et_link_content h2,.et_quote_content blockquote p{margin-top:0}.et_audio_content h2{margin-bottom:20px}.et_audio_content h2,.et_link_content h2,.et_quote_content blockquote p{line-height:44px}.et_link_content a.et_link_main_url,.et_quote_content blockquote cite{font-size:18px;font-weight:200}.et_quote_content blockquote cite{font-style:normal}.et_pb_column_2_3 .et_quote_content{padding:50px 42px 45px}.et_pb_column_2_3 .et_audio_content,.et_pb_column_2_3 .et_link_content{padding:40px 40px 45px}.et_pb_column_1_2 .et_audio_content,.et_pb_column_1_2 .et_link_content,.et_pb_column_1_2 .et_quote_content,.et_pb_column_3_5 .et_audio_content,.et_pb_column_3_5 .et_link_content,.et_pb_column_3_5 .et_quote_content{padding:35px 40px}.et_pb_column_1_2 .et_quote_content blockquote p,.et_pb_column_3_5 .et_quote_content blockquote p{font-size:26px;line-height:32px}.et_pb_column_1_2 .et_audio_content h2,.et_pb_column_1_2 .et_link_content h2,.et_pb_column_3_5 .et_audio_content h2,.et_pb_column_3_5 .et_link_content h2{line-height:32px}.et_pb_column_1_2 .et_link_content a.et_link_main_url,.et_pb_column_1_2 .et_quote_content blockquote cite,.et_pb_column_3_5 .et_link_content a.et_link_main_url,.et_pb_column_3_5 .et_quote_content blockquote cite{font-size:14px}.et_pb_column_1_3 .et_quote_content,.et_pb_column_1_4 .et_quote_content,.et_pb_column_1_5 .et_quote_content,.et_pb_column_1_6 .et_quote_content,.et_pb_column_2_5 .et_quote_content,.et_pb_column_3_8 .et_quote_content{padding:35px 30px 32px}.et_pb_column_1_3 .et_audio_content,.et_pb_column_1_3 .et_link_content,.et_pb_column_1_4 .et_audio_content,.et_pb_column_1_4 .et_link_content,.et_pb_column_1_5 .et_audio_content,.et_pb_column_1_5 .et_link_content,.et_pb_column_1_6 .et_audio_content,.et_pb_column_1_6 .et_link_content,.et_pb_column_2_5 .et_audio_content,.et_pb_column_2_5 .et_link_content,.et_pb_column_3_8 .et_audio_content,.et_pb_column_3_8 .et_link_content{padding:35px 20px}.et_pb_column_1_3 .et_audio_content h2,.et_pb_column_1_3 .et_link_content h2,.et_pb_column_1_3 .et_quote_content blockquote p,.et_pb_column_1_4 .et_audio_content h2,.et_pb_column_1_4 .et_link_content h2,.et_pb_column_1_4 .et_quote_content blockquote p,.et_pb_column_1_5 .et_audio_content h2,.et_pb_column_1_5 .et_link_content h2,.et_pb_column_1_5 .et_quote_content blockquote p,.et_pb_column_1_6 .et_audio_content h2,.et_pb_column_1_6 .et_link_content h2,.et_pb_column_1_6 .et_quote_content blockquote p,.et_pb_column_2_5 .et_audio_content h2,.et_pb_column_2_5 .et_link_content h2,.et_pb_column_2_5 .et_quote_content blockquote p,.et_pb_column_3_8 .et_audio_content h2,.et_pb_column_3_8 .et_link_content h2,.et_pb_column_3_8 .et_quote_content blockquote p{font-size:18px;line-height:26px}.et_pb_column_1_3 .et_link_content a.et_link_main_url,.et_pb_column_1_3 .et_quote_content blockquote cite,.et_pb_column_1_4 .et_link_content a.et_link_main_url,.et_pb_column_1_4 .et_quote_content blockquote cite,.et_pb_column_1_5 .et_link_content a.et_link_main_url,.et_pb_column_1_5 .et_quote_content blockquote cite,.et_pb_column_1_6 .et_link_content a.et_link_main_url,.et_pb_column_1_6 .et_quote_content blockquote cite,.et_pb_column_2_5 .et_link_content a.et_link_main_url,.et_pb_column_2_5 .et_quote_content blockquote cite,.et_pb_column_3_8 .et_link_content a.et_link_main_url,.et_pb_column_3_8 .et_quote_content blockquote cite{font-size:14px}.et_pb_post .et_pb_gallery_post_type .et_pb_slide{min-height:500px;background-size:cover!important;background-position:top}.format-gallery .et_pb_slider.gallery-not-found .et_pb_slide{box-shadow:inset 0 0 10px rgba(0,0,0,.1)}.format-gallery .et_pb_slider:hover .et-pb-arrow-prev{left:0}.format-gallery .et_pb_slider:hover .et-pb-arrow-next{right:0}.et_pb_post>.et_pb_slider{margin-bottom:30px}.et_pb_column_3_4 .et_pb_post .et_pb_slide{min-height:442px}.et_pb_column_2_3 .et_pb_post .et_pb_slide{min-height:390px}.et_pb_column_1_2 .et_pb_post .et_pb_slide,.et_pb_column_3_5 .et_pb_post .et_pb_slide{min-height:284px}.et_pb_column_1_3 .et_pb_post .et_pb_slide,.et_pb_column_2_5 .et_pb_post .et_pb_slide,.et_pb_column_3_8 .et_pb_post .et_pb_slide{min-height:180px}.et_pb_column_1_4 .et_pb_post .et_pb_slide,.et_pb_column_1_5 .et_pb_post .et_pb_slide,.et_pb_column_1_6 .et_pb_post .et_pb_slide{min-height:125px}.et_pb_portfolio.et_pb_section_parallax .pagination,.et_pb_portfolio.et_pb_section_video .pagination,.et_pb_portfolio_grid.et_pb_section_parallax .pagination,.et_pb_portfolio_grid.et_pb_section_video .pagination{position:relative}.et_pb_bg_layout_light .et_pb_post .post-meta,.et_pb_bg_layout_light .et_pb_post .post-meta a,.et_pb_bg_layout_light .et_pb_post p{color:#666}.et_pb_bg_layout_dark .et_pb_post .post-meta,.et_pb_bg_layout_dark .et_pb_post .post-meta a,.et_pb_bg_layout_dark .et_pb_post p{color:inherit}.et_pb_text_color_dark .et_audio_content h2,.et_pb_text_color_dark .et_link_content a.et_link_main_url,.et_pb_text_color_dark .et_link_content h2,.et_pb_text_color_dark .et_quote_content blockquote cite,.et_pb_text_color_dark .et_quote_content blockquote p{color:#666!important}.et_pb_text_color_dark.et_audio_content h2,.et_pb_text_color_dark.et_link_content a.et_link_main_url,.et_pb_text_color_dark.et_link_content h2,.et_pb_text_color_dark.et_quote_content blockquote cite,.et_pb_text_color_dark.et_quote_content blockquote p{color:#bbb!important}.et_pb_text_color_dark.et_audio_content,.et_pb_text_color_dark.et_link_content,.et_pb_text_color_dark.et_quote_content{background-color:#e8e8e8}@media (min-width:981px)and (max-width:1100px){.et_quote_content{padding:50px 70px 45px}.et_pb_column_2_3 .et_quote_content{padding:50px 50px 45px}.et_pb_column_1_2 .et_quote_content,.et_pb_column_3_5 .et_quote_content{padding:35px 47px 30px}.et_pb_column_1_3 .et_quote_content,.et_pb_column_1_4 .et_quote_content,.et_pb_column_1_5 .et_quote_content,.et_pb_column_1_6 .et_quote_content,.et_pb_column_2_5 .et_quote_content,.et_pb_column_3_8 .et_quote_content{padding:35px 25px 32px}.et_pb_column_4_4 .et_pb_post .et_pb_slide{min-height:534px}.et_pb_column_3_4 .et_pb_post .et_pb_slide{min-height:392px}.et_pb_column_2_3 .et_pb_post .et_pb_slide{min-height:345px}.et_pb_column_1_2 .et_pb_post .et_pb_slide,.et_pb_column_3_5 .et_pb_post .et_pb_slide{min-height:250px}.et_pb_column_1_3 .et_pb_post .et_pb_slide,.et_pb_column_2_5 .et_pb_post .et_pb_slide,.et_pb_column_3_8 .et_pb_post .et_pb_slide{min-height:155px}.et_pb_column_1_4 .et_pb_post .et_pb_slide,.et_pb_column_1_5 .et_pb_post .et_pb_slide,.et_pb_column_1_6 .et_pb_post .et_pb_slide{min-height:108px}}@media (max-width:980px){.et_pb_bg_layout_dark_tablet .et_audio_content h2{color:#fff!important}.et_pb_text_color_dark_tablet.et_audio_content h2{color:#bbb!important}.et_pb_text_color_dark_tablet.et_audio_content{background-color:#e8e8e8}.et_pb_bg_layout_dark_tablet .et_audio_content h2,.et_pb_bg_layout_dark_tablet .et_link_content a.et_link_main_url,.et_pb_bg_layout_dark_tablet .et_link_content h2,.et_pb_bg_layout_dark_tablet .et_quote_content blockquote cite,.et_pb_bg_layout_dark_tablet .et_quote_content blockquote p{color:#fff!important}.et_pb_text_color_dark_tablet .et_audio_content h2,.et_pb_text_color_dark_tablet .et_link_content a.et_link_main_url,.et_pb_text_color_dark_tablet .et_link_content h2,.et_pb_text_color_dark_tablet .et_quote_content blockquote cite,.et_pb_text_color_dark_tablet .et_quote_content blockquote p{color:#666!important}.et_pb_text_color_dark_tablet.et_audio_content h2,.et_pb_text_color_dark_tablet.et_link_content a.et_link_main_url,.et_pb_text_color_dark_tablet.et_link_content h2,.et_pb_text_color_dark_tablet.et_quote_content blockquote cite,.et_pb_text_color_dark_tablet.et_quote_content blockquote p{color:#bbb!important}.et_pb_text_color_dark_tablet.et_audio_content,.et_pb_text_color_dark_tablet.et_link_content,.et_pb_text_color_dark_tablet.et_quote_content{background-color:#e8e8e8}}@media (min-width:768px)and (max-width:980px){.et_audio_content h2{font-size:26px!important;line-height:44px!important;margin-bottom:24px!important}.et_pb_post>.et_pb_gallery_post_type>.et_pb_slides>.et_pb_slide{min-height:384px!important}.et_quote_content{padding:50px 43px 45px!important}.et_quote_content blockquote p{font-size:26px!important;line-height:44px!important}.et_quote_content blockquote cite{font-size:18px!important}.et_link_content{padding:40px 40px 45px}.et_link_content h2{font-size:26px!important;line-height:44px!important}.et_link_content a.et_link_main_url{font-size:18px!important}}@media (max-width:767px){.et_audio_content h2,.et_link_content h2,.et_quote_content,.et_quote_content blockquote p{font-size:20px!important;line-height:26px!important}.et_audio_content,.et_link_content{padding:35px 20px!important}.et_audio_content h2{margin-bottom:9px!important}.et_pb_bg_layout_dark_phone .et_audio_content h2{color:#fff!important}.et_pb_text_color_dark_phone.et_audio_content{background-color:#e8e8e8}.et_link_content a.et_link_main_url,.et_quote_content blockquote cite{font-size:14px!important}.format-gallery .et-pb-controllers{height:auto}.et_pb_post>.et_pb_gallery_post_type>.et_pb_slides>.et_pb_slide{min-height:222px!important}.et_pb_bg_layout_dark_phone .et_audio_content h2,.et_pb_bg_layout_dark_phone .et_link_content a.et_link_main_url,.et_pb_bg_layout_dark_phone .et_link_content h2,.et_pb_bg_layout_dark_phone .et_quote_content blockquote cite,.et_pb_bg_layout_dark_phone .et_quote_content blockquote p{color:#fff!important}.et_pb_text_color_dark_phone .et_audio_content h2,.et_pb_text_color_dark_phone .et_link_content a.et_link_main_url,.et_pb_text_color_dark_phone .et_link_content h2,.et_pb_text_color_dark_phone .et_quote_content blockquote cite,.et_pb_text_color_dark_phone .et_quote_content blockquote p{color:#666!important}.et_pb_text_color_dark_phone.et_audio_content h2,.et_pb_text_color_dark_phone.et_link_content a.et_link_main_url,.et_pb_text_color_dark_phone.et_link_content h2,.et_pb_text_color_dark_phone.et_quote_content blockquote cite,.et_pb_text_color_dark_phone.et_quote_content blockquote p{color:#bbb!important}.et_pb_text_color_dark_phone.et_audio_content,.et_pb_text_color_dark_phone.et_link_content,.et_pb_text_color_dark_phone.et_quote_content{background-color:#e8e8e8}}@media (max-width:479px){.et_flex_column_2_5 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_3_5 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_4_5 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_5_5 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_12_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_13_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_14_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_15_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_16_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_17_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_18_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_19_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_20_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_21_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_22_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_23_24 .et_pb_carousel_item .et_pb_video_play,.et_flex_column_24_24 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_1_2 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_1_3 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_2_3 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_2_5 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_3_5 .et_pb_carousel_item .et_pb_video_play,.et_pb_column_3_8 .et_pb_carousel_item .et_pb_video_play{font-size:1.5rem;line-height:1.5rem;margin-left:-.75rem;margin-top:-.75rem}.et_audio_content,.et_quote_content{padding:35px 20px!important}.et_pb_post>.et_pb_gallery_post_type>.et_pb_slides>.et_pb_slide{min-height:156px!important}}.et_full_width_page .et_gallery_item{float:left;width:20.875%;margin:0 5.5% 5.5% 0}.et_full_width_page .et_gallery_item:nth-child(3n){margin-right:5.5%}.et_full_width_page .et_gallery_item:nth-child(3n+1){clear:none}.et_full_width_page .et_gallery_item:nth-child(4n){margin-right:0}.et_full_width_page .et_gallery_item:nth-child(4n+1){clear:both}
.et_pb_slider{position:relative;overflow:hidden}.et_pb_slide{padding:0 6%;background-size:cover;background-position:50%;background-repeat:no-repeat}.et_pb_slider .et_pb_slide{display:none;float:left;margin-right:-100%;position:relative;width:100%;text-align:center;list-style:none!important;background-position:50%;background-size:100%;background-size:cover}.et_pb_slider .et_pb_slide:first-child{display:list-item}.et-pb-controllers{position:absolute;bottom:20px;left:0;width:100%;text-align:center;z-index:10}.et-pb-controllers a{display:inline-block;background-color:hsla(0,0%,100%,.5);text-indent:-9999px;border-radius:7px;width:7px;height:7px;margin-right:10px;padding:0;opacity:.5}.et-pb-controllers .et-pb-active-control{opacity:1}.et-pb-controllers a:last-child{margin-right:0}.et-pb-controllers .et-pb-active-control{background-color:#fff}.et_pb_slides .et_pb_temp_slide{display:block}.et_pb_slides:after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0;width:0}@media (max-width:980px){.et_pb_slider .et_pb_bg_layout_light_tablet .et-pb-controllers .et-pb-active-control{background-color:#333}.et_pb_slider .et_pb_bg_layout_light_tablet .et-pb-controllers a{background-color:rgba(0,0,0,.3)}.et_pb_slider .et_pb_bg_layout_light_tablet .et_pb_slide_content{color:#333}.et_pb_slider .et_pb_bg_layout_dark_tablet .et_pb_slide_description{text-shadow:0 1px 3px rgba(0,0,0,.3)}.et_pb_slider .et_pb_bg_layout_dark_tablet .et_pb_slide_content{color:#fff}.et_pb_slider .et_pb_bg_layout_dark_tablet .et-pb-controllers .et-pb-active-control{background-color:#fff}.et_pb_slider .et_pb_bg_layout_dark_tablet .et-pb-controllers a{background-color:hsla(0,0%,100%,.5)}}@media (max-width:767px){.et-pb-controllers{position:absolute;bottom:5%;left:0;width:100%;text-align:center;z-index:10;height:14px}.et_transparent_nav .et_pb_section:first-child .et-pb-controllers{bottom:18px}.et_pb_bg_layout_light_phone.et_pb_slider_with_overlay .et_pb_slide_overlay_container,.et_pb_bg_layout_light_phone.et_pb_slider_with_text_overlay .et_pb_text_overlay_wrapper{background-color:hsla(0,0%,100%,.9)}.et_pb_bg_layout_light_phone .et-pb-controllers .et-pb-active-control{background-color:#333}.et_pb_bg_layout_dark_phone.et_pb_slider_with_overlay .et_pb_slide_overlay_container,.et_pb_bg_layout_dark_phone.et_pb_slider_with_text_overlay .et_pb_text_overlay_wrapper,.et_pb_bg_layout_light_phone .et-pb-controllers a{background-color:rgba(0,0,0,.3)}.et_pb_bg_layout_dark_phone .et-pb-controllers .et-pb-active-control{background-color:#fff}.et_pb_bg_layout_dark_phone .et-pb-controllers a{background-color:hsla(0,0%,100%,.5)}}.et_mobile_device .et_pb_slider_parallax .et_pb_slide,.et_mobile_device .et_pb_slides .et_parallax_bg.et_pb_parallax_css{background-attachment:scroll}
.et-pb-arrow-next,.et-pb-arrow-prev{position:absolute;top:50%;z-index:100;font-size:48px;color:#fff;margin-top:-24px;transition:all .2s ease-in-out;opacity:0}.et_pb_bg_layout_light .et-pb-arrow-next,.et_pb_bg_layout_light .et-pb-arrow-prev{color:#333}.et_pb_slider:hover .et-pb-arrow-prev{left:22px;opacity:1}.et_pb_slider:hover .et-pb-arrow-next{right:22px;opacity:1}.et_pb_bg_layout_light .et-pb-controllers .et-pb-active-control{background-color:#333}.et_pb_bg_layout_light .et-pb-controllers a{background-color:rgba(0,0,0,.3)}.et-pb-arrow-next:hover,.et-pb-arrow-prev:hover{text-decoration:none}.et-pb-arrow-next span,.et-pb-arrow-prev span{display:none}.et-pb-arrow-prev{left:-22px}.et-pb-arrow-next{right:-22px}.et-pb-arrow-prev:before{content:"4"}.et-pb-arrow-next:before{content:"5"}.format-gallery .et-pb-arrow-next,.format-gallery .et-pb-arrow-prev{color:#fff}.et_pb_column_1_3 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_1_4 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_1_5 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_1_6 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_2_5 .et_pb_slider:hover .et-pb-arrow-prev{left:0}.et_pb_column_1_3 .et_pb_slider:hover .et-pb-arrow-next,.et_pb_column_1_4 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_1_5 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_1_6 .et_pb_slider:hover .et-pb-arrow-prev,.et_pb_column_2_5 .et_pb_slider:hover .et-pb-arrow-next{right:0}.et_pb_column_1_4 .et_pb_slider .et_pb_slide,.et_pb_column_1_5 .et_pb_slider .et_pb_slide,.et_pb_column_1_6 .et_pb_slider .et_pb_slide{min-height:170px}.et_pb_column_1_4 .et_pb_slider:hover .et-pb-arrow-next,.et_pb_column_1_5 .et_pb_slider:hover .et-pb-arrow-next,.et_pb_column_1_6 .et_pb_slider:hover .et-pb-arrow-next{right:0}@media (max-width:980px){.et_pb_bg_layout_light_tablet .et-pb-arrow-next,.et_pb_bg_layout_light_tablet .et-pb-arrow-prev{color:#333}.et_pb_bg_layout_dark_tablet .et-pb-arrow-next,.et_pb_bg_layout_dark_tablet .et-pb-arrow-prev{color:#fff}}@media (max-width:767px){.et_pb_slider:hover .et-pb-arrow-prev{left:0;opacity:1}.et_pb_slider:hover .et-pb-arrow-next{right:0;opacity:1}.et_pb_bg_layout_light_phone .et-pb-arrow-next,.et_pb_bg_layout_light_phone .et-pb-arrow-prev{color:#333}.et_pb_bg_layout_dark_phone .et-pb-arrow-next,.et_pb_bg_layout_dark_phone .et-pb-arrow-prev{color:#fff}}.et_mobile_device .et-pb-arrow-prev{left:22px;opacity:1}.et_mobile_device .et-pb-arrow-next{right:22px;opacity:1}@media (max-width:767px){.et_mobile_device .et-pb-arrow-prev{left:0;opacity:1}.et_mobile_device .et-pb-arrow-next{right:0;opacity:1}}
.et_overlay{z-index:-1;position:absolute;top:0;left:0;display:block;width:100%;height:100%;background:hsla(0,0%,100%,.9);opacity:0;pointer-events:none;transition:all .3s;border:1px solid #e5e5e5;box-sizing:border-box;backface-visibility:hidden;-webkit-font-smoothing:antialiased}.et_overlay:before{color:#2ea3f2;content:"\E050";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:32px;transition:all .4s}.et_portfolio_image,.et_shop_image{position:relative;display:block}.et_pb_has_overlay:not(.et_pb_image):hover .et_overlay,.et_portfolio_image:hover .et_overlay,.et_shop_image:hover .et_overlay{z-index:3;opacity:1}#ie7 .et_overlay,#ie8 .et_overlay{display:none}.et_pb_module.et_pb_has_overlay{position:relative}.et_pb_module.et_pb_has_overlay .et_overlay,article.et_pb_has_overlay{border:none}
.et_pb_blog_grid .et_audio_container .mejs-container .mejs-controls .mejs-time span{font-size:14px}.et_audio_container .mejs-container{width:auto!important;min-width:unset!important;height:auto!important}.et_audio_container .mejs-container,.et_audio_container .mejs-container .mejs-controls,.et_audio_container .mejs-embed,.et_audio_container .mejs-embed body{background:none;height:auto}.et_audio_container .mejs-controls .mejs-time-rail .mejs-time-loaded,.et_audio_container .mejs-time.mejs-currenttime-container{display:none!important}.et_audio_container .mejs-time{display:block!important;padding:0;margin-left:10px;margin-right:90px;line-height:inherit}.et_audio_container .mejs-android .mejs-time,.et_audio_container .mejs-ios .mejs-time,.et_audio_container .mejs-ipad .mejs-time,.et_audio_container .mejs-iphone .mejs-time{margin-right:0}.et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,100%,.5);border-radius:5px;height:4px;margin:8px 0 0;top:0;right:0;left:auto}.et_audio_container .mejs-controls>div{height:20px!important}.et_audio_container .mejs-controls .mejs-duration-container{display:flex!important;align-items:center}.et_audio_container .mejs-controls div.mejs-time-rail{padding-top:0;position:relative;display:block!important;margin-left:42px;margin-right:0}.et_audio_container span.mejs-time-total.mejs-time-slider{display:block!important;position:relative!important;max-width:100%;min-width:unset!important}.et_audio_container .mejs-button.mejs-volume-button{width:auto;height:auto;margin-left:auto;position:absolute;right:59px;bottom:-2px}.et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#fff;height:4px;border-radius:5px}.et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_audio_container .mejs-controls .mejs-time-rail .mejs-time-handle{display:block;border:none;width:10px}.et_audio_container .mejs-time-rail .mejs-time-handle-content{border-radius:100%;transform:scale(1)}.et_pb_text_color_dark .et_audio_container .mejs-time-rail .mejs-time-handle-content{border-color:#666}.et_audio_container .mejs-time-rail .mejs-time-hovered{height:4px}.et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{background:#fff;border-radius:5px;height:10px;position:absolute;top:-3px}.et_audio_container .mejs-container .mejs-controls .mejs-time span{font-size:18px}.et_audio_container .mejs-controls a.mejs-horizontal-volume-slider{display:block!important;height:19px;margin-left:5px;position:absolute;right:0;bottom:0}.et_audio_container .mejs-controls div.mejs-horizontal-volume-slider{height:4px}.et_audio_container .mejs-playpause-button button,.et_audio_container .mejs-volume-button button{background:none!important;margin:0!important;width:auto!important;height:auto!important;position:relative!important;z-index:99}.et_audio_container .mejs-playpause-button button:before{content:"E"!important;font-size:32px;left:0;top:-8px}.et_audio_container .mejs-playpause-button button:before,.et_audio_container .mejs-volume-button button:before{color:#fff}.et_audio_container .mejs-playpause-button{margin-top:-7px!important;width:auto!important;height:auto!important;position:absolute}.et_audio_container .mejs-controls .mejs-button button:focus{outline:none}.et_audio_container .mejs-playpause-button.mejs-pause button:before{content:"`"!important}.et_audio_container .mejs-volume-button button:before{content:"\E068";font-size:18px}.et_pb_text_color_dark .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_pb_text_color_dark .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,60%,.5)}.et_pb_text_color_dark .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_pb_text_color_dark .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#999}.et_pb_text_color_dark .et_audio_container .mejs-playpause-button button:before,.et_pb_text_color_dark .et_audio_container .mejs-volume-button button:before{color:#666}.et_pb_text_color_dark .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_pb_text_color_dark .mejs-controls .mejs-time-rail .mejs-time-handle{background:#666}.et_pb_text_color_dark .mejs-container .mejs-controls .mejs-time span{color:#999}.et_pb_column_1_3 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_4 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_5 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_6 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_2_5 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_3_8 .et_audio_container .mejs-container .mejs-controls .mejs-time span{font-size:14px}.et_audio_container .mejs-container .mejs-controls{padding:0;flex-wrap:wrap;min-width:unset!important;position:relative}@media (max-width:980px){.et_pb_column_1_3 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_4 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_5 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_1_6 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_2_5 .et_audio_container .mejs-container .mejs-controls .mejs-time span,.et_pb_column_3_8 .et_audio_container .mejs-container .mejs-controls .mejs-time span{font-size:18px}.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,100%,.5)}.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#fff}.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-playpause-button button:before,.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-volume-button button:before{color:#fff}.et_pb_bg_layout_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_pb_bg_layout_dark_tablet .mejs-controls .mejs-time-rail .mejs-time-handle{background:#fff}.et_pb_bg_layout_dark_tablet .mejs-container .mejs-controls .mejs-time span{color:#fff}.et_pb_text_color_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_pb_text_color_dark_tablet .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,60%,.5)}.et_pb_text_color_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_pb_text_color_dark_tablet .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#999}.et_pb_text_color_dark_tablet .et_audio_container .mejs-playpause-button button:before,.et_pb_text_color_dark_tablet .et_audio_container .mejs-volume-button button:before{color:#666}.et_pb_text_color_dark_tablet .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_pb_text_color_dark_tablet .mejs-controls .mejs-time-rail .mejs-time-handle{background:#666}.et_pb_text_color_dark_tablet .mejs-container .mejs-controls .mejs-time span{color:#999}}@media (max-width:767px){.et_audio_container .mejs-container .mejs-controls .mejs-time span{font-size:14px!important}.et_pb_bg_layout_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_pb_bg_layout_dark_phone .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,100%,.5)}.et_pb_bg_layout_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_pb_bg_layout_dark_phone .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#fff}.et_pb_bg_layout_dark_phone .et_audio_container .mejs-playpause-button button:before,.et_pb_bg_layout_dark_phone .et_audio_container .mejs-volume-button button:before{color:#fff}.et_pb_bg_layout_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_pb_bg_layout_dark_phone .mejs-controls .mejs-time-rail .mejs-time-handle{background:#fff}.et_pb_bg_layout_dark_phone .mejs-container .mejs-controls .mejs-time span{color:#fff}.et_pb_text_color_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.et_pb_text_color_dark_phone .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-total{background:hsla(0,0%,60%,.5)}.et_pb_text_color_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.et_pb_text_color_dark_phone .et_audio_container .mejs-controls .mejs-time-rail .mejs-time-current{background:#999}.et_pb_text_color_dark_phone .et_audio_container .mejs-playpause-button button:before,.et_pb_text_color_dark_phone .et_audio_container .mejs-volume-button button:before{color:#666}.et_pb_text_color_dark_phone .et_audio_container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle,.et_pb_text_color_dark_phone .mejs-controls .mejs-time-rail .mejs-time-handle{background:#666}.et_pb_text_color_dark_phone .mejs-container .mejs-controls .mejs-time span{color:#999}}
.et_pb_video_box{display:block;position:relative;z-index:1;line-height:0}.et_pb_video_box video{width:100%!important;height:auto!important}.et_pb_video_overlay{position:absolute;z-index:10;top:0;left:0;height:100%;width:100%;background-size:cover;background-repeat:no-repeat;background-position:50%;cursor:pointer}.et_pb_video_play:before{font-family:ETmodules;content:"I"}.et_pb_video_play{display:block;position:absolute;z-index:100;color:#fff;left:50%;top:50%}.et_flex_column_3_5 .et_pb_video_play,.et_flex_column_4_5 .et_pb_video_play,.et_flex_column_5_5 .et_pb_video_play,.et_flex_column_12_24 .et_pb_video_play,.et_flex_column_13_24 .et_pb_video_play,.et_flex_column_14_24 .et_pb_video_play,.et_flex_column_15_24 .et_pb_video_play,.et_flex_column_16_24 .et_pb_video_play,.et_flex_column_17_24 .et_pb_video_play,.et_flex_column_18_24 .et_pb_video_play,.et_flex_column_19_24 .et_pb_video_play,.et_flex_column_20_24 .et_pb_video_play,.et_flex_column_21_24 .et_pb_video_play,.et_flex_column_22_24 .et_pb_video_play,.et_flex_column_23_24 .et_pb_video_play,.et_flex_column_24_24 .et_pb_video_play,.et_pb_column_1_2 .et_pb_video_play,.et_pb_column_2_3 .et_pb_video_play,.et_pb_column_3_4 .et_pb_video_play,.et_pb_column_3_5 .et_pb_video_play,.et_pb_column_4_4 .et_pb_video_play{font-size:6rem;line-height:6rem;margin-left:-3rem;margin-top:-3rem}.et_flex_column_1_5 .et_pb_video_play,.et_flex_column_1_7 .et_pb_video_play,.et_flex_column_1_9 .et_pb_video_play,.et_flex_column_1_10 .et_pb_video_play,.et_flex_column_1_11 .et_pb_video_play,.et_flex_column_1_24 .et_pb_video_play,.et_flex_column_2_5 .et_pb_video_play,.et_flex_column_2_24 .et_pb_video_play,.et_flex_column_3_24 .et_pb_video_play,.et_flex_column_4_24 .et_pb_video_play,.et_flex_column_5_24 .et_pb_video_play,.et_flex_column_6_24 .et_pb_video_play,.et_flex_column_7_24 .et_pb_video_play,.et_flex_column_8_24 .et_pb_video_play,.et_flex_column_9_24 .et_pb_video_play,.et_flex_column_10_24 .et_pb_video_play,.et_flex_column_11_24 .et_pb_video_play,.et_flex_column_none .et_pb_video_play,.et_pb_column_1_3 .et_pb_video_play,.et_pb_column_1_4 .et_pb_video_play,.et_pb_column_1_5 .et_pb_video_play,.et_pb_column_1_6 .et_pb_video_play,.et_pb_column_2_5 .et_pb_video_play,.et_pb_column_3_8 .et_pb_video_play{font-size:3rem;line-height:3rem;margin-left:-1.5rem;margin-top:-1.5rem}.et_pb_bg_layout_light .et_pb_video_play{color:#333}.et_pb_video_overlay_hover{background:transparent;width:100%;height:100%;position:absolute;z-index:100;transition:all .5s ease-in-out}.et_pb_video .et_pb_video_overlay_hover:hover{background:rgba(0,0,0,.6)}@media (min-width:768px)and (max-width:980px){.et_flex_column_1_5 .et_pb_video_play,.et_flex_column_1_7 .et_pb_video_play,.et_flex_column_1_9 .et_pb_video_play,.et_flex_column_1_10 .et_pb_video_play,.et_flex_column_1_11 .et_pb_video_play,.et_flex_column_1_24 .et_pb_video_play,.et_flex_column_2_5 .et_pb_video_play,.et_flex_column_2_24 .et_pb_video_play,.et_flex_column_3_24 .et_pb_video_play,.et_flex_column_4_24 .et_pb_video_play,.et_flex_column_5_24 .et_pb_video_play,.et_flex_column_6_24 .et_pb_video_play,.et_flex_column_7_24 .et_pb_video_play,.et_flex_column_8_24 .et_pb_video_play,.et_flex_column_9_24 .et_pb_video_play,.et_flex_column_10_24 .et_pb_video_play,.et_flex_column_11_24 .et_pb_video_play,.et_flex_column_none .et_pb_video_play,.et_pb_column_1_3 .et_pb_video_play,.et_pb_column_1_4 .et_pb_video_play,.et_pb_column_1_5 .et_pb_video_play,.et_pb_column_1_6 .et_pb_video_play,.et_pb_column_2_5 .et_pb_video_play,.et_pb_column_3_8 .et_pb_video_play{font-size:6rem;line-height:6rem;margin-left:-3rem;margin-top:-3rem}}@media (max-width:980px){.et_pb_bg_layout_light_tablet .et_pb_video_play{color:#333}}@media (max-width:768px){.et_flex_column_3_5 .et_pb_video_play,.et_flex_column_4_5 .et_pb_video_play,.et_flex_column_5_5 .et_pb_video_play,.et_flex_column_12_24 .et_pb_video_play,.et_flex_column_13_24 .et_pb_video_play,.et_flex_column_14_24 .et_pb_video_play,.et_flex_column_15_24 .et_pb_video_play,.et_flex_column_16_24 .et_pb_video_play,.et_flex_column_17_24 .et_pb_video_play,.et_flex_column_18_24 .et_pb_video_play,.et_flex_column_19_24 .et_pb_video_play,.et_flex_column_20_24 .et_pb_video_play,.et_flex_column_21_24 .et_pb_video_play,.et_flex_column_22_24 .et_pb_video_play,.et_flex_column_23_24 .et_pb_video_play,.et_flex_column_24_24 .et_pb_video_play,.et_pb_column_1_2 .et_pb_video_play,.et_pb_column_2_3 .et_pb_video_play,.et_pb_column_3_4 .et_pb_video_play,.et_pb_column_3_5 .et_pb_video_play,.et_pb_column_4_4 .et_pb_video_play{font-size:3rem;line-height:3rem;margin-left:-1.5rem;margin-top:-1.5rem}}@media (max-width:767px){.et_pb_bg_layout_light_phone .et_pb_video_play{color:#333}}
.et_post_gallery{padding:0!important;line-height:1.7!important;list-style:none!important}.et_gallery_item{float:left;width:28.353%;margin:0 7.47% 7.47% 0}.blocks-gallery-item,.et_gallery_item{padding-left:0!important}.blocks-gallery-item:before,.et_gallery_item:before{display:none}.et_gallery_item:nth-child(3n){margin-right:0}.et_gallery_item:nth-child(3n+1){clear:both}
.et_pb_post{margin-bottom:60px;word-wrap:break-word}.et_pb_fullwidth_post_content.et_pb_with_border img,.et_pb_post_content.et_pb_with_border img,.et_pb_with_border .et_pb_post .et_pb_slides,.et_pb_with_border .et_pb_post img:not(.woocommerce-placeholder),.et_pb_with_border.et_pb_posts .et_pb_post,.et_pb_with_border.et_pb_posts_nav span.nav-next a,.et_pb_with_border.et_pb_posts_nav span.nav-previous a{border:0 solid #333}.et_pb_post .entry-content{padding-top:30px}.et_pb_post .entry-featured-image-url{display:block;position:relative;margin-bottom:30px}.et_pb_post .entry-title a,.et_pb_post h2 a{text-decoration:none}.et_pb_post .post-meta{font-size:14px;margin-bottom:6px}.et_pb_post .more,.et_pb_post .post-meta a{text-decoration:none}.et_pb_post .more{color:#82c0c7}.et_pb_posts a.more-link{clear:both;display:block}.et_pb_posts .et_pb_post{position:relative}.et_pb_has_overlay.et_pb_post .et_pb_image_container a{display:block;position:relative;overflow:hidden}.et_pb_image_container img,.et_pb_post a img{vertical-align:bottom;max-width:100%}@media (min-width:981px)and (max-width:1100px){.et_pb_post{margin-bottom:42px}}@media (max-width:980px){.et_pb_post{margin-bottom:42px}.et_pb_bg_layout_light_tablet .et_pb_post .post-meta,.et_pb_bg_layout_light_tablet .et_pb_post .post-meta a,.et_pb_bg_layout_light_tablet .et_pb_post p{color:#666}.et_pb_bg_layout_dark_tablet .et_pb_post .post-meta,.et_pb_bg_layout_dark_tablet .et_pb_post .post-meta a,.et_pb_bg_layout_dark_tablet .et_pb_post p{color:inherit}.et_pb_bg_layout_dark_tablet .comment_postinfo a,.et_pb_bg_layout_dark_tablet .comment_postinfo span{color:#fff}}@media (max-width:767px){.et_pb_post{margin-bottom:42px}.et_pb_post>h2{font-size:18px}.et_pb_bg_layout_light_phone .et_pb_post .post-meta,.et_pb_bg_layout_light_phone .et_pb_post .post-meta a,.et_pb_bg_layout_light_phone .et_pb_post p{color:#666}.et_pb_bg_layout_dark_phone .et_pb_post .post-meta,.et_pb_bg_layout_dark_phone .et_pb_post .post-meta a,.et_pb_bg_layout_dark_phone .et_pb_post p{color:inherit}.et_pb_bg_layout_dark_phone .comment_postinfo a,.et_pb_bg_layout_dark_phone .comment_postinfo span{color:#fff}}@media (max-width:479px){.et_pb_post{margin-bottom:42px}.et_pb_post h2{font-size:16px;padding-bottom:0}.et_pb_post .post-meta{color:#666;font-size:14px}}body.et-fb.single .et_pb_post{margin-bottom:0}
@media (min-width:981px){.et_pb_gutters3 .et_block_row .et_pb_column,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column{margin-right:5.5%}.et_pb_gutters3 .et_block_row .et_pb_column_4_4,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_4_4{width:100%}.et_pb_gutters3 .et_block_row .et_pb_column_3_4,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_3_4{width:73.625%}.et_pb_gutters3 .et_block_row .et_pb_column_2_3,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_2_3{width:64.833%}.et_pb_gutters3 .et_block_row .et_pb_column_3_5,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_3_5{width:57.8%}.et_pb_gutters3 .et_block_row .et_pb_column_1_2,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_1_2{width:47.25%}.et_pb_gutters3 .et_block_row .et_pb_column_2_5,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_2_5{width:36.7%}.et_pb_gutters3 .et_block_row .et_pb_column_1_3,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_1_3{width:29.6667%}.et_pb_gutters3 .et_block_row .et_pb_column_1_4,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_1_4{width:20.875%}.et_pb_gutters3 .et_block_row .et_pb_column_1_5,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_1_5{width:15.6%}.et_pb_gutters3 .et_block_row .et_pb_column_1_6,.et_pb_gutters3.et_block_row.et_pb_row>.et_pb_column_1_6{width:12.0833%}.et_pb_gutters3 .et_full_width_page.woocommerce-page ul.products li.product{width:20.875%;margin-right:5.5%;margin-bottom:5.5%}.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products li.product,.et_pb_gutters3.et_right_sidebar.woocommerce-page #main-content ul.products li.product{width:28.353%;margin-right:7.47%}.et_pb_gutters3 .et_pb_column_4_4.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_4_4.et_block_column .et_pb_module{margin-bottom:2.75%}.et_pb_gutters3 .et_pb_column_3_4.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_3_4.et_block_column .et_pb_module{margin-bottom:3.735%}.et_pb_gutters3 .et_pb_column_2_3.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_2_3.et_block_column .et_pb_module{margin-bottom:4.242%}.et_pb_gutters3 .et_pb_column_3_5.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_3_5.et_block_column .et_pb_module{margin-bottom:4.758%}.et_pb_gutters3 .et_pb_column_1_2.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_1_2.et_block_column .et_pb_module{margin-bottom:5.82%}.et_pb_gutters3 .et_pb_column_2_5.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_2_5.et_block_column .et_pb_module{margin-bottom:7.493%}.et_pb_gutters3 .et_pb_column_1_3.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_1_3.et_block_column .et_pb_module{margin-bottom:9.27%}.et_pb_gutters3 .et_pb_column_1_4.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_1_4.et_block_column .et_pb_module{margin-bottom:13.174%}.et_pb_gutters3 .et_pb_column_1_5.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_1_5.et_block_column .et_pb_module{margin-bottom:17.628%}.et_pb_gutters3 .et_pb_column_1_6.et_block_column .et_pb_module,.et_pb_gutters3>.et_pb_column_1_6.et_block_column .et_pb_module{margin-bottom:22.759%}.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products.columns-1 li.product,.et_pb_gutters3.et_right_sidebar.woocommerce-page #main-content ul.products.columns-1 li.product{width:100%;margin-right:0}.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products.columns-2 li.product,.et_pb_gutters3.et_right_sidebar.woocommerce-page #main-content ul.products.columns-2 li.product{width:48%;margin-right:4%}.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products.columns-2 li:nth-child(2n+2),.et_pb_gutters3.et_right_sidebar.woocommerce-page #main-content ul.products.columns-2 li:nth-child(2n+2){margin-right:0}.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products.columns-2 li:nth-child(3n+1),.et_pb_gutters3.et_right_sidebar.woocommerce-page #main-content ul.products.columns-2 li:nth-child(3n+1){clear:none}}
:root{--content-width:80%;--content-max-width:1080px;--section-padding:56px;--section-gutter:60px;--row-gutter-horizontal:5.5%;--row-gutter-vertical:40px;--module-gutter:30px}.et_flex_column,.et_flex_group,.et_flex_module,.et_flex_row,.et_flex_section{display:flex;-moz-column-gap:var(--horizontal-gap);column-gap:var(--horizontal-gap);row-gap:var(--vertical-gap);flex-direction:var(--flex-direction)}.et_flex_row{--horizontal-gap:var(--row-gutter-horizontal);--vertical-gap:var(--row-gutter-vertical);--flex-direction:row}.et_flex_row>[class*=et_flex_column]{--horizontal-gap-parent:var(--row-gutter-horizontal)}.et_flex_row .et_pb_row_nested.et_flex_row{width:100%;max-width:none;padding:0;margin:0}.et_flex_section{--horizontal-gap:var(--section-gutter);--vertical-gap:var(--section-gutter);--flex-direction:column;padding:var(--section-padding) 0;align-items:center}.et_flex_section>[class*=et_flex_column]{--horizontal-gap-parent:var(--section-gutter)}.et_flex_column,.et_flex_group,.et_flex_module{--flex-direction:column;--horizontal-gap:var(--module-gutter);--vertical-gap:var(--module-gutter)}.et_flex_column>[class*=et_flex_column],.et_flex_group>[class*=et_flex_column],.et_flex_module>[class*=et_flex_column]{--horizontal-gap-parent:var(--module-gutter)}.et_flex_column>.et_pb_module,.et_flex_group>.et_pb_module,.et_flex_module>.et_pb_module,.et_pb_section .et_pb_row .et_flex_column>.et_pb_module,.et_pb_section .et_pb_row .et_flex_group>.et_pb_module,.et_pb_section .et_pb_row .et_flex_module>.et_pb_module{margin-bottom:0}.et_flex_row.et_pb_equal_columns,.et_pb_section.et_pb_equal_columns>.et_flex_row{align-items:stretch}.rtl .et_flex_row{direction:rtl}.rtl .et_flex_row.et_pb_equal_columns,.rtl .et_pb_section.et_pb_equal_columns>.et_flex_row{flex-direction:row-reverse}.et_flex_column_1_24{width:calc(4.1667% - var(--horizontal-gap-parent, 5.5%)*23/24)}.et_flex_column_2_24{width:calc(8.3333% - var(--horizontal-gap-parent, 5.5%)*11/12)}.et_flex_column_3_24{width:calc(12.5% - var(--horizontal-gap-parent, 5.5%)*7/8)}.et_flex_column_4_24{width:calc(16.6667% - var(--horizontal-gap-parent, 5.5%)*5/6)}.et_flex_column_5_24{width:calc(20.8333% - var(--horizontal-gap-parent, 5.5%)*3.8/4.8)}.et_flex_column_6_24{width:calc(25% - var(--horizontal-gap-parent, 5.5%)*3/4)}.et_flex_column_7_24{width:calc(29.1667% - var(--horizontal-gap-parent, 5.5%)*2.42857/3.42857)}.et_flex_column_8_24{width:calc(33.3333% - var(--horizontal-gap-parent, 5.5%)*2/3)}.et_flex_column_9_24{width:calc(37.5% - var(--horizontal-gap-parent, 5.5%)*1.66667/2.66667)}.et_flex_column_10_24{width:calc(41.6667% - var(--horizontal-gap-parent, 5.5%)*1.4/2.4)}.et_flex_column_11_24{width:calc(45.8333% - var(--horizontal-gap-parent, 5.5%)*1.18182/2.18182)}.et_flex_column_12_24{width:calc(50% - var(--horizontal-gap-parent, 5.5%)*1/2)}.et_flex_column_13_24{width:calc(54.1667% - var(--horizontal-gap-parent, 5.5%)*0.84615/1.84615)}.et_flex_column_14_24{width:calc(58.3333% - var(--horizontal-gap-parent, 5.5%)*0.71429/1.71429)}.et_flex_column_15_24{width:calc(62.5% - var(--horizontal-gap-parent, 5.5%)*0.6/1.6)}.et_flex_column_16_24{width:calc(66.6667% - var(--horizontal-gap-parent, 5.5%)*0.5/1.5)}.et_flex_column_17_24{width:calc(70.8333% - var(--horizontal-gap-parent, 5.5%)*0.41176/1.41176)}.et_flex_column_18_24{width:calc(75% - var(--horizontal-gap-parent, 5.5%)*0.33333/1.33333)}.et_flex_column_19_24{width:calc(79.1667% - var(--horizontal-gap-parent, 5.5%)*0.26316/1.26316)}.et_flex_column_20_24{width:calc(83.3333% - var(--horizontal-gap-parent, 5.5%)*0.2/1.2)}.et_flex_column_21_24{width:calc(87.5% - var(--horizontal-gap-parent, 5.5%)*0.14286/1.14286)}.et_flex_column_22_24{width:calc(91.6667% - var(--horizontal-gap-parent, 5.5%)*0.09091/1.09091)}.et_flex_column_23_24{width:calc(95.8333% - var(--horizontal-gap-parent, 5.5%)*0.04348/1.04348)}.et_flex_column_24_24{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_5{width:calc(20% - var(--horizontal-gap-parent, 5.5%)*4/5)}.et_flex_column_2_5{width:calc(40% - var(--horizontal-gap-parent, 5.5%)*1.5/2.5)}.et_flex_column_3_5{width:calc(60% - var(--horizontal-gap-parent, 5.5%)*0.66667/1.66667)}.et_flex_column_4_5{width:calc(80% - var(--horizontal-gap-parent, 5.5%)*0.25/1.25)}.et_flex_column_5_5{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_7{width:calc(14.2857% - var(--horizontal-gap-parent, 5.5%)*6/7)}.et_flex_column_1_9{width:calc(11.1111% - var(--horizontal-gap-parent, 5.5%)*8/9)}.et_flex_column_1_10{width:calc(10% - var(--horizontal-gap-parent, 5.5%)*9/10)}.et_flex_column_1_11{width:calc(9.0909% - var(--horizontal-gap-parent, 5.5%)*10/11)}
#sidebar{padding-bottom:28px}#sidebar .et_pb_widget{margin-bottom:30px;width:100%;float:none}.et_right_sidebar #main-content .et_pb_column_2_3 .et_pb_countdown_timer .section p.value,.et_right_sidebar #main-content .et_pb_column_2_3 .et_pb_countdown_timer .section.sep,.et_left_sidebar #main-content .et_pb_column_2_3 .et_pb_countdown_timer .section p.value,.et_left_sidebar #main-content .et_pb_column_2_3 .et_pb_countdown_timer .section.sep{font-size:44px;line-height:44px}.et_right_sidebar #main-content .et_pb_column_1_2 .et_pb_countdown_timer .section p.value,.et_right_sidebar #main-content .et_pb_column_1_2 .et_pb_countdown_timer .section.sep,.et_left_sidebar #main-content .et_pb_column_1_2 .et_pb_countdown_timer .section p.value,.et_left_sidebar #main-content .et_pb_column_1_2 .et_pb_countdown_timer .section.sep{font-size:32px;line-height:32px}.et_right_sidebar #main-content .et_pb_column_3_8 .et_pb_countdown_timer .section p.value,.et_right_sidebar #main-content .et_pb_column_3_8 .et_pb_countdown_timer .section.sep,.et_left_sidebar #main-content .et_pb_column_3_8 .et_pb_countdown_timer .section p.value,.et_left_sidebar #main-content .et_pb_column_3_8 .et_pb_countdown_timer .section.sep{font-size:24px;line-height:24px}.et_right_sidebar #main-content .et_pb_column_1_3 .et_pb_countdown_timer .section p.value,.et_right_sidebar #main-content .et_pb_column_1_3 .et_pb_countdown_timer .section.sep,.et_left_sidebar #main-content .et_pb_column_1_3 .et_pb_countdown_timer .section p.value,.et_left_sidebar #main-content .et_pb_column_1_3 .et_pb_countdown_timer .section.sep{font-size:20px;line-height:20px}.et_right_sidebar #main-content .et_pb_column_1_4 .et_pb_countdown_timer .section p.value,.et_right_sidebar #main-content .et_pb_column_1_4 .et_pb_countdown_timer .section.sep,.et_left_sidebar #main-content .et_pb_column_1_4 .et_pb_countdown_timer .section p.value,.et_left_sidebar #main-content .et_pb_column_1_4 .et_pb_countdown_timer .section.sep{font-size:16px;line-height:16px}@media all and (min-width: 981px)and (max-width: 1100px){#sidebar .et_pb_widget{margin-left:0}.et_left_sidebar #sidebar .et_pb_widget{margin-right:0}}@media all and (min-width: 981px){#sidebar{float:left;width:20.875%}.et_right_sidebar #left-area{float:left;padding-right:5.5%}.et_right_sidebar #sidebar{padding-left:30px}.et_right_sidebar #main-content .container:before{right:20.875% !important}.et_left_sidebar #left-area{float:right;padding-left:5.5%}.et_left_sidebar #sidebar{padding-right:30px}.et_left_sidebar #main-content .container:before{left:20.875% !important}}@media all and (max-width: 980px){.et_right_sidebar #left-area,.et_right_sidebar #sidebar,.et_left_sidebar #left-area,.et_left_sidebar #sidebar{width:auto;float:none;padding-right:0;padding-left:0}.et_right_sidebar #left-area{margin-right:0}.et_right_sidebar #sidebar{margin-left:0;border-left:none}.et_left_sidebar #left-area{margin-left:0}.et_left_sidebar #sidebar{margin-right:0;border-right:none}}
.et_pb_widget{float:left;max-width:100%;word-wrap:break-word}.et_pb_widget a{text-decoration:none;color:#666}.et_pb_widget li a:hover{color:#82c0c7}.et_pb_widget ol li,.et_pb_widget ul li{margin-bottom:.5em}.et_pb_widget ol li ol li,.et_pb_widget ul li ul li{margin-left:15px}.et_pb_widget select{width:100%;height:28px;padding:0 5px}.et_pb_widget_area .et_pb_widget a{color:inherit}.et_pb_bg_layout_light .et_pb_widget li a{color:#666}.et_pb_bg_layout_dark .et_pb_widget li a{color:inherit}
.widget_search .screen-reader-text,.et_pb_widget .wp-block-search__label{display:none}.widget_search input#s,.widget_search input#searchsubmit,.et_pb_widget .wp-block-search__input,.et_pb_widget .wp-block-search__button{padding:.7em;height:40px !important;margin:0;font-size:14px;line-height:normal !important;border:1px solid #ddd;color:#666}.widget_search #s,.et_pb_widget .wp-block-search__input{width:100%;border-radius:3px}.widget_search #searchform,.et_pb_widget .wp-block-search{position:relative}.widget_search #searchsubmit,.et_pb_widget .wp-block-search__button{background-color:#ddd;-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;position:absolute;right:0;top:0}#searchsubmit,.et_pb_widget .wp-block-search__button{cursor:pointer}
.et_pb_scroll_top.et-pb-icon{text-align:center;background:rgba(0,0,0,.4);text-decoration:none;position:fixed;z-index:99999;bottom:125px;right:0px;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;border-top-left-radius:5px;border-bottom-left-radius:5px;display:none;cursor:pointer;font-size:30px;padding:5px;color:#fff}.et_pb_scroll_top:before{content:"2"}.et_pb_scroll_top.et-visible{opacity:1;animation:fadeInRight 1s 1 cubic-bezier(0.77, 0, 0.175, 1)}.et_pb_scroll_top.et-hidden{opacity:0;animation:fadeOutRight 1s 1 cubic-bezier(0.77, 0, 0.175, 1)}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(100%)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}
.et_pb_section{position:relative;background-color:#fff;background-position:50%;background-size:100%;background-size:cover}.et_pb_section--absolute,.et_pb_section--fixed{width:100%}.et_pb_section.et_section_transparent{background-color:transparent}.et_pb_fullwidth_section{padding:0}.et_pb_fullwidth_section>.et_pb_module:not(.et_pb_post_content):not(.et_pb_fullwidth_post_content) .et_pb_row{padding:0!important}.et_pb_inner_shadow{box-shadow:inset 0 0 7px rgba(0,0,0,.07)}.et_pb_bottom_inside_divider,.et_pb_top_inside_divider{display:block;background-repeat:repeat-x;height:100%;position:absolute;pointer-events:none;width:100%;left:0;right:0}.et_pb_bottom_inside_divider.et-no-transition,.et_pb_top_inside_divider.et-no-transition{transition:none!important}.et-fb .section_has_divider.et_fb_element_controls_visible--child>.et_pb_bottom_inside_divider,.et-fb .section_has_divider.et_fb_element_controls_visible--child>.et_pb_top_inside_divider{z-index:1}.et_pb_section_video:not(.et_pb_section--with-menu){overflow:hidden;position:relative}.et_pb_column>.et_pb_section_video_bg{z-index:-1}.et_pb_section_video_bg{visibility:visible;position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;pointer-events:none;transition:display .3s}.et_pb_section_video_bg.et_pb_section_video_bg_hover,.et_pb_section_video_bg.et_pb_section_video_bg_phone,.et_pb_section_video_bg.et_pb_section_video_bg_tablet,.et_pb_section_video_bg.et_pb_section_video_bg_tablet_only{display:none}.et_pb_section_video_bg .mejs-controls,.et_pb_section_video_bg .mejs-overlay-play{display:none!important}.et_pb_section_video_bg embed,.et_pb_section_video_bg iframe,.et_pb_section_video_bg object,.et_pb_section_video_bg video{max-width:none}.et_pb_section_video_bg .mejs-video{left:50%;position:absolute;max-width:none}.et_pb_section_video_bg .mejs-overlay-loading{display:none!important}.et_pb_social_network_link .et_pb_section_video{overflow:visible}.et_pb_section_video_on_hover:hover>.et_pb_section_video_bg{display:none}.et_pb_section_video_on_hover:hover>.et_pb_section_video_bg_hover,.et_pb_section_video_on_hover:hover>.et_pb_section_video_bg_hover_inherit{display:block}@media (min-width:981px){.et_pb_section{padding:4% 0}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_pb_section,body:not(.et_pb_pagebuilder_layout) .post-password-required .et_pb_section{padding-top:0}.et_pb_fullwidth_section{padding:0}.et_pb_section_video_bg.et_pb_section_video_bg_desktop_only{display:block}}@media (max-width:980px){.et_pb_section{padding:50px 0}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_pb_section,body:not(.et_pb_pagebuilder_layout) .post-password-required .et_pb_section{padding-top:0}.et_pb_fullwidth_section{padding:0}.et_pb_section_video_bg.et_pb_section_video_bg_tablet{display:block}.et_pb_section_video_bg.et_pb_section_video_bg_desktop_only{display:none}}@media (min-width:768px){.et_pb_section_video_bg.et_pb_section_video_bg_desktop_tablet{display:block}}@media (min-width:768px)and (max-width:980px){.et_pb_section_video_bg.et_pb_section_video_bg_tablet_only{display:block}}@media (max-width:767px){.et_pb_section_video_bg.et_pb_section_video_bg_phone{display:block}.et_pb_section_video_bg.et_pb_section_video_bg_desktop_tablet{display:none}}
.et_pb_row{position:relative}.et_pb_row--with-menu{z-index:6}.et_pb_row:not([class*=et_flex_column]){width:var(--content-width);max-width:var(--content-max-width);margin:auto;position:relative}.et_pb_row:not([class*=et_flex_column]) .et_pb_row_nested{width:100%;max-width:none}.et_flex_column>.et_pb_row,.et_flex_group>.et_pb_row,.et_flex_section>.et_pb_row{margin:initial}.et_pb_row.et_pb_row_empty,.et_pb_row_inner:nth-of-type(n+2).et_pb_row_empty{display:none}.section_has_divider .et_pb_row{z-index:5}body.safari .section_has_divider .et_pb_bottom_inside_divider,body.safari .section_has_divider .et_pb_top_inside_divider,body.uiwebview .section_has_divider .et_pb_bottom_inside_divider,body.uiwebview .section_has_divider .et_pb_top_inside_divider{perspective:2000px}.et_pb_column{background-size:cover;background-position:50%;position:relative;z-index:2;min-height:1px}.et_pb_column--with-menu{z-index:5}.et_block_row .et_pb_column{float:left}.et_pb_column_empty{min-height:1px}.et_pb_row .et_pb_column.et-last-child,.et_pb_row .et_pb_column:last-child,.et_pb_row_inner .et_pb_column.et-last-child,.et_pb_row_inner .et_pb_column:last-child{margin-right:0!important}.et_pb_column.et_pb_section_parallax{position:relative}.et_pb_column,.et_pb_row,.et_pb_row_inner{background-size:cover;background-position:50%;background-repeat:no-repeat}@media (min-width:981px){.et_block_row{padding:2% 0}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_block_row,body:not(.et_pb_pagebuilder_layout) .post-password-required .et_block_row{padding:0;width:100%}}@media (max-width:980px){.et_pb_row:not([class*=et_flex_column]){max-width:1080px}body.et_pb_pagebuilder_layout.et_pb_show_title .post-password-required .et_pb_row:not([class*=et_flex_column]),body:not(.et_pb_pagebuilder_layout) .post-password-required .et_pb_row:not([class*=et_flex_column]){padding:0;width:100%}.et_block_row,.et_pb_column .et_block_row.et_pb_row_inner{padding:30px 0}.et_pb_column.et_pb_column_empty{display:none}}
.et_pb_row_inner{width:100%;position:relative}.et_block_row:after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0;width:0}.et_pb_row_4col .et-last-child,.et_pb_row_4col .et-last-child-2,.et_pb_row_6col .et-last-child,.et_pb_row_6col .et-last-child-2,.et_pb_row_6col .et-last-child-3{margin-bottom:0}@media (min-width:981px){.et_pb_column_3_4 .et_pb_row_inner{padding:3.735% 0}.et_pb_column_2_3 .et_pb_row_inner{padding:4.2415% 0}.et_pb_column_1_2 .et_pb_row_inner,.et_pb_column_3_5 .et_pb_row_inner{padding:5.82% 0}.et_section_specialty>.et_pb_row{padding:0}.et_pb_row_inner{width:100%}.et_pb_column_single{padding:2.855% 0}.et_pb_column_single .et_pb_module.et-first-child,.et_pb_column_single .et_pb_module:first-child{margin-top:0}.et_pb_column_single .et_pb_module.et-last-child,.et_pb_column_single .et_pb_module:last-child{margin-bottom:0}.et_pb_row .et_pb_column.et-last-child,.et_pb_row .et_pb_column:last-child,.et_pb_row_inner .et_pb_column.et-last-child,.et_pb_row_inner .et_pb_column:last-child{margin-right:0!important}.et_pb_row.et_pb_equal_columns,.et_pb_row_inner.et_pb_equal_columns,.et_pb_section.et_pb_equal_columns>.et_pb_row{display:flex}.rtl .et_pb_row.et_pb_equal_columns,.rtl .et_pb_row_inner.et_pb_equal_columns,.rtl .et_pb_section.et_pb_equal_columns>.et_pb_row{flex-direction:row-reverse}.et_pb_row.et_pb_equal_columns>.et_pb_column,.et_pb_section.et_pb_equal_columns>.et_pb_row>.et_pb_column{order:1}}@media (max-width:980px){.et_section_specialty>.et_pb_row{padding:0}.et_block_row .et_pb_column{width:100%;margin-bottom:30px}.et_pb_bottom_divider .et_pb_row:nth-last-child(2) .et_pb_column:last-child,.et_pb_row .et_pb_column.et-last-child,.et_pb_row .et_pb_column:last-child{margin-bottom:0}.et_section_specialty .et_pb_row>.et_pb_column{padding-bottom:0}.et_pb_row_1-2_1-4_1-4,.et_pb_row_1-2_1-6_1-6_1-6,.et_pb_row_1-4_1-4,.et_pb_row_1-4_1-4_1-2,.et_pb_row_1-5_1-5_3-5,.et_pb_row_1-6_1-6_1-6,.et_pb_row_1-6_1-6_1-6_1-2,.et_pb_row_1-6_1-6_1-6_1-6,.et_pb_row_3-5_1-5_1-5,.et_pb_row_4col,.et_pb_row_5col,.et_pb_row_6col{display:flex;flex-wrap:wrap}.et_block_row_1-4_1-4>.et_pb_column.et_pb_column_1_4,.et_block_row_1-4_1-4_1-2>.et_pb_column.et_pb_column_1_4,.et_block_row_4col>.et_pb_column.et_pb_column_1_4{width:47.25%;margin-right:5.5%}.et_block_row_1-4_1-4>.et_pb_column.et_pb_column_1_4:nth-child(2n),.et_block_row_1-4_1-4_1-2>.et_pb_column.et_pb_column_1_4:nth-child(2n),.et_block_row_4col>.et_pb_column.et_pb_column_1_4:nth-child(2n){margin-right:0}.et_block_row_1-2_1-4_1-4>.et_pb_column.et_pb_column_1_4{width:47.25%;margin-right:5.5%}.et_block_row_1-2_1-4_1-4>.et_pb_column.et_pb_column_1_2,.et_block_row_1-2_1-4_1-4>.et_pb_column.et_pb_column_1_4:nth-child(odd){margin-right:0}.et_block_row_1-2_1-4_1-4 .et_pb_column:nth-last-child(-n+2),.et_block_row_1-4_1-4 .et_pb_column:nth-last-child(-n+2),.et_block_row_4col .et_pb_column:nth-last-child(-n+2){margin-bottom:0}.et_block_row_1-5_1-5_3-5>.et_pb_column.et_pb_column_1_5,.et_block_row_5col>.et_pb_column.et_pb_column_1_5{width:47.25%;margin-right:5.5%}.et_block_row_1-5_1-5_3-5>.et_pb_column.et_pb_column_1_5:nth-child(2n),.et_block_row_5col>.et_pb_column.et_pb_column_1_5:nth-child(2n){margin-right:0}.et_block_row_3-5_1-5_1-5>.et_pb_column.et_pb_column_1_5{width:47.25%;margin-right:5.5%}.et_block_row_3-5_1-5_1-5>.et_pb_column.et_pb_column_1_5:nth-child(odd),.et_block_row_3-5_1-5_1-5>.et_pb_column.et_pb_column_3_5{margin-right:0}.et_block_row_3-5_1-5_1-5 .et_pb_column:nth-last-child(-n+2),.et_block_row_5col .et_pb_column:last-child{margin-bottom:0}.et_block_row_1-6_1-6_1-6_1-2>.et_pb_column.et_pb_column_1_6,.et_block_row_6col>.et_pb_column.et_pb_column_1_6{width:29.666%;margin-right:5.5%}.et_block_row_1-6_1-6_1-6_1-2>.et_pb_column.et_pb_column_1_6:nth-child(3n),.et_block_row_6col>.et_pb_column.et_pb_column_1_6:nth-child(3n){margin-right:0}.et_block_row_1-2_1-6_1-6_1-6>.et_pb_column.et_pb_column_1_6{width:29.666%;margin-right:5.5%}.et_block_row_1-2_1-6_1-6_1-6>.et_pb_column.et_pb_column_1_2,.et_block_row_1-2_1-6_1-6_1-6>.et_pb_column.et_pb_column_1_6:last-child{margin-right:0}.et_block_row_1-2_1-2 .et_pb_column.et_pb_column_1_2,.et_block_row_1-2_1-6_1-6_1-6 .et_pb_column:nth-last-child(-n+3),.et_block_row_6col .et_pb_column:nth-last-child(-n+3){margin-bottom:0}.et_block_row_1-2_1-2 .et_pb_column.et_pb_column_1_2 .et_pb_column.et_pb_column_1_6{width:29.666%;margin-right:5.5%;margin-bottom:0}.et_block_row_1-2_1-2 .et_pb_column.et_pb_column_1_2 .et_pb_column.et_pb_column_1_6:last-child{margin-right:0}.et_block_row_1-6_1-6_1-6_1-6>.et_pb_column.et_pb_column_1_6{width:47.25%;margin-right:5.5%}.et_block_row_1-6_1-6_1-6_1-6>.et_pb_column.et_pb_column_1_6:nth-child(2n){margin-right:0}.et_block_row_1-6_1-6_1-6_1-6:nth-last-child(-n+3){margin-bottom:0}}@media (max-width:479px){.et_pb_row .et_pb_column.et_pb_column_1_4,.et_pb_row .et_pb_column.et_pb_column_1_5,.et_pb_row .et_pb_column.et_pb_column_1_6{width:100%;margin:0 0 30px}.et_pb_row .et_pb_column.et_pb_column_1_4.et-last-child,.et_pb_row .et_pb_column.et_pb_column_1_4:last-child,.et_pb_row .et_pb_column.et_pb_column_1_5.et-last-child,.et_pb_row .et_pb_column.et_pb_column_1_5:last-child,.et_pb_row .et_pb_column.et_pb_column_1_6.et-last-child,.et_pb_row .et_pb_column.et_pb_column_1_6:last-child{margin-bottom:0}.et_pb_row_1-2_1-2 .et_pb_column.et_pb_column_1_2 .et_pb_column.et_pb_column_1_6{width:100%;margin:0 0 30px}.et_pb_row_1-2_1-2 .et_pb_column.et_pb_column_1_2 .et_pb_column.et_pb_column_1_6.et-last-child,.et_pb_row_1-2_1-2 .et_pb_column.et_pb_column_1_2 .et_pb_column.et_pb_column_1_6:last-child{margin-bottom:0}.et_block_row .et_pb_column{width:100%!important}}
.et_pb_code_inner{position:relative}
.et_pb_text{word-wrap:break-word;line-height:var(--et_global_body_font_height,1.7em)}.et_pb_text ol,.et_pb_text ul{padding-bottom:1em}.et_pb_text>:last-child{padding-bottom:0}.et_pb_text_inner{position:relative}
.et_pb_space{box-sizing:content-box;height:23px}.et_pb_divider_hidden{margin-bottom:0!important}.et_pb_divider_internal{display:inline-block;width:100%}.et_pb_divider{margin:0 0 30px;position:relative}.et_pb_divider:before{content:"";width:100%;height:1px;border-top:1px solid rgba(0,0,0,.1);position:absolute;left:0;top:0;z-index:10}.et_pb_divider:after,.et_pb_space:after{content:"";display:table}.et_pb_divider_position_bottom:before{top:auto!important;bottom:0!important}.et_pb_divider_position_center:before{top:50%!important}@media (max-width:980px){.et_pb_divider_position_top_tablet:before{top:0!important;bottom:auto!important}.et_pb_divider_position_bottom_tablet:before{top:auto!important;bottom:0!important}.et_pb_divider_position_center_tablet:before{top:50%!important}.et_pb_space.et-hide-mobile{display:none}}@media (max-width:767px){.et_pb_divider_position_top_phone:before{top:0!important;bottom:auto!important}.et_pb_divider_position_bottom_phone:before{top:auto!important;bottom:0!important}.et_pb_divider_position_center_phone:before{top:50%!important}}.ie .et_pb_divider{overflow:visible}
.et_pb_bg_layout_light.et_pb_module.et_pb_button{color:#2ea3f2}.et_pb_button_module_wrapper.et_pb_button{color:inherit}.et_pb_button{display:inline-block}.et_pb_module.et_pb_button:not(.et_block_module){max-width:-moz-max-content;max-width:max-content}.et_pb_button_module_wrapper.et_pb_button_alignment_left{text-align:left}.et_pb_button_module_wrapper.et_pb_button_alignment_right{text-align:right}.et_pb_button_module_wrapper.et_pb_button_alignment_center{text-align:center}@media (max-width:980px){.et_pb_button_module_wrapper.et_pb_button_alignment_tablet_left{text-align:left}.et_pb_button_module_wrapper.et_pb_button_alignment_tablet_right{text-align:right}.et_pb_button_module_wrapper.et_pb_button_alignment_tablet_center{text-align:center}}@media (max-width:767px){.et_pb_button_module_wrapper.et_pb_button_alignment_phone_left{text-align:left}.et_pb_button_module_wrapper.et_pb_button_alignment_phone_right{text-align:right}.et_pb_button_module_wrapper.et_pb_button_alignment_phone_center{text-align:center}}
.et_pb_button[data-icon]:not([data-icon=""]):after{content:attr(data-icon)}@media (max-width:980px){.et_pb_button[data-icon-tablet]:not([data-icon-tablet=""]):after{content:attr(data-icon-tablet)}}@media (max-width:767px){.et_pb_button[data-icon-phone]:not([data-icon-phone=""]):after{content:attr(data-icon-phone)}}
/*# sourceURL=divi-dynamic-critical-inline-css */


/*FILESTART  /home/wpstaging/web/wp-staging/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css */
.mejs-offscreen{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal}.mejs-container{background:#000;font-family:Helvetica,Arial,serif;position:relative;text-align:left;text-indent:0;vertical-align:top}.mejs-container,.mejs-container *{box-sizing:border-box}.mejs-container video::-webkit-media-controls,.mejs-container video::-webkit-media-controls-panel,.mejs-container video::-webkit-media-controls-panel-container,.mejs-container video::-webkit-media-controls-start-playback-button{-webkit-appearance:none;display:none!important}.mejs-fill-container,.mejs-fill-container .mejs-container{height:100%;width:100%}.mejs-fill-container{background:transparent;margin:0 auto;overflow:hidden;position:relative}.mejs-container:focus{outline:none}.mejs-iframe-overlay{height:100%;position:absolute;width:100%}.mejs-embed,.mejs-embed body{background:#000;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.mejs-fullscreen{overflow:hidden!important}.mejs-container-fullscreen{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1000}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{height:100%!important;width:100%!important}.mejs-background,.mejs-mediaelement{left:0;position:absolute;top:0}.mejs-mediaelement{height:100%;width:100%;z-index:0}.mejs-poster{background-position:50% 50%;background-repeat:no-repeat;background-size:cover;left:0;position:absolute;top:0;z-index:1}:root .mejs-poster-img{display:none}.mejs-poster-img{border:0;padding:0}.mejs-overlay{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;left:0;position:absolute;top:0}.mejs-layer{z-index:1}.mejs-overlay-play{cursor:pointer}.mejs-overlay-button{background:url(https://simplesalon2-dev.10web.cloud/wp-includes/js/mediaelement/mejs-controls.svg) no-repeat;background-position:0 -39px;height:80px;width:80px}.mejs-overlay:hover>.mejs-overlay-button{background-position:-80px -39px}.mejs-overlay-loading{height:80px;width:80px}.mejs-overlay-loading-bg-img{-webkit-animation:a 1s linear infinite;animation:a 1s linear infinite;background:transparent url(https://simplesalon2-dev.10web.cloud/wp-includes/js/mediaelement/mejs-controls.svg) -160px -40px no-repeat;display:block;height:80px;width:80px;z-index:1}@-webkit-keyframes a{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.mejs-controls{bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:40px;left:0;list-style-type:none;margin:0;padding:0 10px;position:absolute;width:100%;z-index:3}.mejs-controls:not([style*="display: none"]){background:rgba(255,0,0,.7);background:-webkit-linear-gradient(transparent,rgba(0,0,0,.35));background:linear-gradient(transparent,rgba(0,0,0,.35))}.mejs-button,.mejs-time,.mejs-time-rail{font-size:10px;height:40px;line-height:10px;margin:0;width:32px}.mejs-button>button{background:transparent url(https://simplesalon2-dev.10web.cloud/wp-includes/js/mediaelement/mejs-controls.svg);border:0;cursor:pointer;display:block;font-size:0;height:20px;line-height:0;margin:10px 6px;overflow:hidden;padding:0;position:absolute;text-decoration:none;width:20px}.mejs-button>button:focus{outline:1px dotted #999}.mejs-container-keyboard-inactive [role=slider],.mejs-container-keyboard-inactive [role=slider]:focus,.mejs-container-keyboard-inactive a,.mejs-container-keyboard-inactive a:focus,.mejs-container-keyboard-inactive button,.mejs-container-keyboard-inactive button:focus{outline:0}.mejs-time{box-sizing:content-box;color:#fff;font-size:11px;font-weight:700;height:24px;overflow:hidden;padding:16px 6px 0;text-align:center;width:auto}.mejs-play>button{background-position:0 0}.mejs-pause>button{background-position:-20px 0}.mejs-replay>button{background-position:-160px 0}.mejs-time-rail{direction:ltr;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;height:40px;margin:0 10px;padding-top:10px;position:relative}.mejs-time-buffering,.mejs-time-current,.mejs-time-float,.mejs-time-float-corner,.mejs-time-float-current,.mejs-time-hovered,.mejs-time-loaded,.mejs-time-marker,.mejs-time-total{border-radius:2px;cursor:pointer;display:block;height:10px;position:absolute}.mejs-time-total{background:hsla(0,0%,100%,.3);margin:5px 0 0;width:100%}.mejs-time-buffering{-webkit-animation:b 2s linear infinite;animation:b 2s linear infinite;background:-webkit-linear-gradient(135deg,hsla(0,0%,100%,.4) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.4) 0,hsla(0,0%,100%,.4) 75%,transparent 0,transparent);background:linear-gradient(-45deg,hsla(0,0%,100%,.4) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.4) 0,hsla(0,0%,100%,.4) 75%,transparent 0,transparent);background-size:15px 15px;width:100%}@-webkit-keyframes b{0%{background-position:0 0}to{background-position:30px 0}}@keyframes b{0%{background-position:0 0}to{background-position:30px 0}}.mejs-time-loaded{background:hsla(0,0%,100%,.3)}.mejs-time-current,.mejs-time-handle-content{background:hsla(0,0%,100%,.9)}.mejs-time-hovered{background:hsla(0,0%,100%,.5);z-index:10}.mejs-time-hovered.negative{background:rgba(0,0,0,.2)}.mejs-time-buffering,.mejs-time-current,.mejs-time-hovered,.mejs-time-loaded{left:0;-webkit-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transition:all .15s ease-in;transition:all .15s ease-in;width:100%}.mejs-time-buffering{-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.mejs-time-hovered{-webkit-transition:height .1s cubic-bezier(.44,0,1,1);transition:height .1s cubic-bezier(.44,0,1,1)}.mejs-time-hovered.no-hover{-webkit-transform:scaleX(0)!important;-ms-transform:scaleX(0)!important;transform:scaleX(0)!important}.mejs-time-handle,.mejs-time-handle-content{border:4px solid transparent;cursor:pointer;left:0;position:absolute;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);z-index:11}.mejs-time-handle-content{border:4px solid hsla(0,0%,100%,.9);border-radius:50%;height:10px;left:-7px;top:-4px;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);width:10px}.mejs-time-rail .mejs-time-handle-content:active,.mejs-time-rail .mejs-time-handle-content:focus,.mejs-time-rail:hover .mejs-time-handle-content{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.mejs-time-float{background:#eee;border:1px solid #333;bottom:100%;color:#111;display:none;height:17px;margin-bottom:9px;position:absolute;text-align:center;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:36px}.mejs-time-float-current{display:block;left:0;margin:2px;text-align:center;width:30px}.mejs-time-float-corner{border:5px solid #eee;border-color:#eee transparent transparent;border-radius:0;display:block;height:0;left:50%;line-height:0;position:absolute;top:100%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:0}.mejs-long-video .mejs-time-float{margin-left:-23px;width:64px}.mejs-long-video .mejs-time-float-current{width:60px}.mejs-broadcast{color:#fff;height:10px;position:absolute;top:15px;width:100%}.mejs-fullscreen-button>button{background-position:-80px 0}.mejs-unfullscreen>button{background-position:-100px 0}.mejs-mute>button{background-position:-60px 0}.mejs-unmute>button{background-position:-40px 0}.mejs-volume-button{position:relative}.mejs-volume-button>.mejs-volume-slider{-webkit-backface-visibility:hidden;background:rgba(50,50,50,.7);border-radius:0;bottom:100%;display:none;height:115px;left:50%;margin:0;position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:25px;z-index:1}.mejs-volume-button:hover{border-radius:0 0 4px 4px}.mejs-volume-total{background:hsla(0,0%,100%,.5);height:100px;left:50%;margin:0;position:absolute;top:8px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:2px}.mejs-volume-current{left:0;margin:0;width:100%}.mejs-volume-current,.mejs-volume-handle{background:hsla(0,0%,100%,.9);position:absolute}.mejs-volume-handle{border-radius:1px;cursor:ns-resize;height:6px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:16px}.mejs-horizontal-volume-slider{display:block;height:36px;position:relative;vertical-align:middle;width:56px}.mejs-horizontal-volume-total{background:rgba(50,50,50,.8);height:8px;top:16px;width:50px}.mejs-horizontal-volume-current,.mejs-horizontal-volume-total{border-radius:2px;font-size:1px;left:0;margin:0;padding:0;position:absolute}.mejs-horizontal-volume-current{background:hsla(0,0%,100%,.8);height:100%;top:0;width:100%}.mejs-horizontal-volume-handle{display:none}.mejs-captions-button,.mejs-chapters-button{position:relative}.mejs-captions-button>button{background-position:-140px 0}.mejs-chapters-button>button{background-position:-180px 0}.mejs-captions-button>.mejs-captions-selector,.mejs-chapters-button>.mejs-chapters-selector{background:rgba(50,50,50,.7);border:1px solid transparent;border-radius:0;bottom:100%;margin-right:-43px;overflow:hidden;padding:0;position:absolute;right:50%;visibility:visible;width:86px}.mejs-chapters-button>.mejs-chapters-selector{margin-right:-55px;width:110px}.mejs-captions-selector-list,.mejs-chapters-selector-list{list-style-type:none!important;margin:0;overflow:hidden;padding:0}.mejs-captions-selector-list-item,.mejs-chapters-selector-list-item{color:#fff;cursor:pointer;display:block;list-style-type:none!important;margin:0 0 6px;overflow:hidden;padding:0}.mejs-captions-selector-list-item:hover,.mejs-chapters-selector-list-item:hover{background-color:#c8c8c8!important;background-color:hsla(0,0%,100%,.4)!important}.mejs-captions-selector-input,.mejs-chapters-selector-input{clear:both;float:left;left:-1000px;margin:3px 3px 0 5px;position:absolute}.mejs-captions-selector-label,.mejs-chapters-selector-label{cursor:pointer;float:left;font-size:10px;line-height:15px;padding:4px 10px 0;width:100%}.mejs-captions-selected,.mejs-chapters-selected{color:#21f8f8}.mejs-captions-translations{font-size:10px;margin:0 0 5px}.mejs-captions-layer{bottom:0;color:#fff;font-size:16px;left:0;line-height:20px;position:absolute;text-align:center}.mejs-captions-layer a{color:#fff;text-decoration:underline}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:400}.mejs-captions-position{bottom:15px;left:0;position:absolute;width:100%}.mejs-captions-position-hover{bottom:35px}.mejs-captions-text,.mejs-captions-text *{background:hsla(0,0%,8%,.5);box-shadow:5px 0 0 hsla(0,0%,8%,.5),-5px 0 0 hsla(0,0%,8%,.5);padding:0;white-space:pre-wrap}.mejs-container.mejs-hide-cues video::-webkit-media-text-track-container{display:none}.mejs-overlay-error{position:relative}.mejs-overlay-error>img{left:0;max-width:100%;position:absolute;top:0;z-index:-1}.mejs-cannotplay,.mejs-cannotplay a{color:#fff;font-size:.8em}.mejs-cannotplay{position:relative}.mejs-cannotplay a,.mejs-cannotplay p{display:inline-block;padding:0 15px;width:100%}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-includes/js/mediaelement/wp-mediaelement.min.css */

.mejs-container{clear:both;max-width:100%}.mejs-container *{font-family:Helvetica,Arial}.mejs-container,.mejs-container .mejs-controls,.mejs-embed,.mejs-embed body{background:#222}.mejs-time{font-weight:400;word-wrap:normal}.mejs-controls a.mejs-horizontal-volume-slider{display:table}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#fff}.mejs-controls .mejs-time-rail .mejs-time-current{background:#0073aa}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.mejs-controls .mejs-time-rail .mejs-time-total{background:rgba(255,255,255,.33)}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.mejs-controls .mejs-time-rail span{border-radius:0}.mejs-overlay-loading{background:0 0}.mejs-controls button:hover{border:none;-webkit-box-shadow:none;box-shadow:none}.me-cannotplay{width:auto!important}.media-embed-details .wp-audio-shortcode{display:inline-block;max-width:400px}.audio-details .embed-media-settings{overflow:visible}.media-embed-details .embed-media-settings .setting span:not(.button-group){max-width:400px;width:auto}.media-embed-details .embed-media-settings .checkbox-setting span{display:inline-block}.media-embed-details .embed-media-settings{padding-top:0;top:28px}.media-embed-details .instructions{padding:16px 0;max-width:600px}.media-embed-details .setting .remove-setting,.media-embed-details .setting p{color:#a00;font-size:10px;text-transform:uppercase}.media-embed-details .setting .remove-setting{padding:5px 0}.media-embed-details .setting a:hover{color:#dc3232}.media-embed-details .embed-media-settings .checkbox-setting{float:none;margin:0 0 10px}.wp-video{max-width:100%;height:auto}.wp_attachment_holder .wp-audio-shortcode,.wp_attachment_holder .wp-video{margin-top:18px}.wp-video-shortcode video,video.wp-video-shortcode{max-width:100%;display:inline-block}.video-details .wp-video-holder{width:100%;max-width:640px}.wp-playlist{border:1px solid #ccc;padding:10px;margin:12px 0 18px;font-size:14px;line-height:1.5}.wp-admin .wp-playlist{margin:0 0 18px}.wp-playlist video{display:inline-block;max-width:100%}.wp-playlist audio{display:none;max-width:100%;width:400px}.wp-playlist .mejs-container{margin:0;max-width:100%}.wp-playlist .mejs-controls .mejs-button button{outline:0}.wp-playlist-light{background:#fff;color:#000}.wp-playlist-dark{color:#fff;background:#000}.wp-playlist-caption{display:block;max-width:88%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.5}.wp-playlist-item .wp-playlist-caption{text-decoration:none;color:#000;max-width:-webkit-calc(100% - 40px);max-width:calc(100% - 40px)}.wp-playlist-item-meta{display:block;font-size:14px;line-height:1.5}.wp-playlist-item-title{font-size:14px;line-height:1.5}.wp-playlist-item-album{font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-playlist-item-artist{font-size:12px;text-transform:uppercase}.wp-playlist-item-length{position:absolute;right:3px;top:0;font-size:14px;line-height:1.5}.rtl .wp-playlist-item-length{left:3px;right:auto}.wp-playlist-tracks{margin-top:10px}.wp-playlist-item{position:relative;cursor:pointer;padding:0 3px;border-bottom:1px solid #ccc}.wp-playlist-item:last-child{border-bottom:0}.wp-playlist-light .wp-playlist-caption{color:#333}.wp-playlist-dark .wp-playlist-caption{color:#ddd}.wp-playlist-playing{font-weight:700;background:#f7f7f7}.wp-playlist-light .wp-playlist-playing{background:#fff;color:#000}.wp-playlist-dark .wp-playlist-playing{background:#000;color:#fff}.wp-playlist-current-item{overflow:hidden;margin-bottom:10px;height:60px}.wp-playlist .wp-playlist-current-item img{float:left;max-width:60px;height:auto;margin-right:10px;padding:0;border:0}.rtl .wp-playlist .wp-playlist-current-item img{float:right;margin-left:10px;margin-right:0}.wp-playlist-current-item .wp-playlist-item-artist,.wp-playlist-current-item .wp-playlist-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-audio-playlist .me-cannotplay span{padding:5px 15px}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/css/flex_grid_tablet.css */
@media only screen and (max-width:980px){.et_flex_column_1_24_tablet{width:calc(4.1667% - var(--horizontal-gap-parent, 5.5%)*23/24)}.et_flex_column_2_24_tablet{width:calc(8.3333% - var(--horizontal-gap-parent, 5.5%)*11/12)}.et_flex_column_3_24_tablet{width:calc(12.5% - var(--horizontal-gap-parent, 5.5%)*7/8)}.et_flex_column_4_24_tablet{width:calc(16.6667% - var(--horizontal-gap-parent, 5.5%)*5/6)}.et_flex_column_5_24_tablet{width:calc(20.8333% - var(--horizontal-gap-parent, 5.5%)*3.8/4.8)}.et_flex_column_6_24_tablet{width:calc(25% - var(--horizontal-gap-parent, 5.5%)*3/4)}.et_flex_column_7_24_tablet{width:calc(29.1667% - var(--horizontal-gap-parent, 5.5%)*2.42857/3.42857)}.et_flex_column_8_24_tablet{width:calc(33.3333% - var(--horizontal-gap-parent, 5.5%)*2/3)}.et_flex_column_9_24_tablet{width:calc(37.5% - var(--horizontal-gap-parent, 5.5%)*1.66667/2.66667)}.et_flex_column_10_24_tablet{width:calc(41.6667% - var(--horizontal-gap-parent, 5.5%)*1.4/2.4)}.et_flex_column_11_24_tablet{width:calc(45.8333% - var(--horizontal-gap-parent, 5.5%)*1.18182/2.18182)}.et_flex_column_12_24_tablet{width:calc(50% - var(--horizontal-gap-parent, 5.5%)*1/2)}.et_flex_column_13_24_tablet{width:calc(54.1667% - var(--horizontal-gap-parent, 5.5%)*0.84615/1.84615)}.et_flex_column_14_24_tablet{width:calc(58.3333% - var(--horizontal-gap-parent, 5.5%)*0.71429/1.71429)}.et_flex_column_15_24_tablet{width:calc(62.5% - var(--horizontal-gap-parent, 5.5%)*0.6/1.6)}.et_flex_column_16_24_tablet{width:calc(66.6667% - var(--horizontal-gap-parent, 5.5%)*0.5/1.5)}.et_flex_column_17_24_tablet{width:calc(70.8333% - var(--horizontal-gap-parent, 5.5%)*0.41176/1.41176)}.et_flex_column_18_24_tablet{width:calc(75% - var(--horizontal-gap-parent, 5.5%)*0.33333/1.33333)}.et_flex_column_19_24_tablet{width:calc(79.1667% - var(--horizontal-gap-parent, 5.5%)*0.26316/1.26316)}.et_flex_column_20_24_tablet{width:calc(83.3333% - var(--horizontal-gap-parent, 5.5%)*0.2/1.2)}.et_flex_column_21_24_tablet{width:calc(87.5% - var(--horizontal-gap-parent, 5.5%)*0.14286/1.14286)}.et_flex_column_22_24_tablet{width:calc(91.6667% - var(--horizontal-gap-parent, 5.5%)*0.09091/1.09091)}.et_flex_column_23_24_tablet{width:calc(95.8333% - var(--horizontal-gap-parent, 5.5%)*0.04348/1.04348)}.et_flex_column_24_24_tablet{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_5_tablet{width:calc(20% - var(--horizontal-gap-parent, 5.5%)*4/5)}.et_flex_column_2_5_tablet{width:calc(40% - var(--horizontal-gap-parent, 5.5%)*1.5/2.5)}.et_flex_column_3_5_tablet{width:calc(60% - var(--horizontal-gap-parent, 5.5%)*0.66667/1.66667)}.et_flex_column_4_5_tablet{width:calc(80% - var(--horizontal-gap-parent, 5.5%)*0.25/1.25)}.et_flex_column_5_5_tablet{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_7_tablet{width:calc(14.2857% - var(--horizontal-gap-parent, 5.5%)*6/7)}.et_flex_column_1_9_tablet{width:calc(11.1111% - var(--horizontal-gap-parent, 5.5%)*8/9)}.et_flex_column_1_10_tablet{width:calc(10% - var(--horizontal-gap-parent, 5.5%)*9/10)}.et_flex_column_1_11_tablet{width:calc(9.0909% - var(--horizontal-gap-parent, 5.5%)*10/11)}}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/css/flex_grid_phone.css */
@media only screen and (max-width:767px){.et_flex_column_1_24_phone{width:calc(4.1667% - var(--horizontal-gap-parent, 5.5%)*23/24)}.et_flex_column_2_24_phone{width:calc(8.3333% - var(--horizontal-gap-parent, 5.5%)*11/12)}.et_flex_column_3_24_phone{width:calc(12.5% - var(--horizontal-gap-parent, 5.5%)*7/8)}.et_flex_column_4_24_phone{width:calc(16.6667% - var(--horizontal-gap-parent, 5.5%)*5/6)}.et_flex_column_5_24_phone{width:calc(20.8333% - var(--horizontal-gap-parent, 5.5%)*3.8/4.8)}.et_flex_column_6_24_phone{width:calc(25% - var(--horizontal-gap-parent, 5.5%)*3/4)}.et_flex_column_7_24_phone{width:calc(29.1667% - var(--horizontal-gap-parent, 5.5%)*2.42857/3.42857)}.et_flex_column_8_24_phone{width:calc(33.3333% - var(--horizontal-gap-parent, 5.5%)*2/3)}.et_flex_column_9_24_phone{width:calc(37.5% - var(--horizontal-gap-parent, 5.5%)*1.66667/2.66667)}.et_flex_column_10_24_phone{width:calc(41.6667% - var(--horizontal-gap-parent, 5.5%)*1.4/2.4)}.et_flex_column_11_24_phone{width:calc(45.8333% - var(--horizontal-gap-parent, 5.5%)*1.18182/2.18182)}.et_flex_column_12_24_phone{width:calc(50% - var(--horizontal-gap-parent, 5.5%)*1/2)}.et_flex_column_13_24_phone{width:calc(54.1667% - var(--horizontal-gap-parent, 5.5%)*0.84615/1.84615)}.et_flex_column_14_24_phone{width:calc(58.3333% - var(--horizontal-gap-parent, 5.5%)*0.71429/1.71429)}.et_flex_column_15_24_phone{width:calc(62.5% - var(--horizontal-gap-parent, 5.5%)*0.6/1.6)}.et_flex_column_16_24_phone{width:calc(66.6667% - var(--horizontal-gap-parent, 5.5%)*0.5/1.5)}.et_flex_column_17_24_phone{width:calc(70.8333% - var(--horizontal-gap-parent, 5.5%)*0.41176/1.41176)}.et_flex_column_18_24_phone{width:calc(75% - var(--horizontal-gap-parent, 5.5%)*0.33333/1.33333)}.et_flex_column_19_24_phone{width:calc(79.1667% - var(--horizontal-gap-parent, 5.5%)*0.26316/1.26316)}.et_flex_column_20_24_phone{width:calc(83.3333% - var(--horizontal-gap-parent, 5.5%)*0.2/1.2)}.et_flex_column_21_24_phone{width:calc(87.5% - var(--horizontal-gap-parent, 5.5%)*0.14286/1.14286)}.et_flex_column_22_24_phone{width:calc(91.6667% - var(--horizontal-gap-parent, 5.5%)*0.09091/1.09091)}.et_flex_column_23_24_phone{width:calc(95.8333% - var(--horizontal-gap-parent, 5.5%)*0.04348/1.04348)}.et_flex_column_24_24_phone{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_5_phone{width:calc(20% - var(--horizontal-gap-parent, 5.5%)*4/5)}.et_flex_column_2_5_phone{width:calc(40% - var(--horizontal-gap-parent, 5.5%)*1.5/2.5)}.et_flex_column_3_5_phone{width:calc(60% - var(--horizontal-gap-parent, 5.5%)*0.66667/1.66667)}.et_flex_column_4_5_phone{width:calc(80% - var(--horizontal-gap-parent, 5.5%)*0.25/1.25)}.et_flex_column_5_5_phone{width:calc(100% - var(--horizontal-gap-parent, 5.5%)*0/1)}.et_flex_column_1_7_phone{width:calc(14.2857% - var(--horizontal-gap-parent, 5.5%)*6/7)}.et_flex_column_1_9_phone{width:calc(11.1111% - var(--horizontal-gap-parent, 5.5%)*8/9)}.et_flex_column_1_10_phone{width:calc(10% - var(--horizontal-gap-parent, 5.5%)*9/10)}.et_flex_column_1_11_phone{width:calc(9.0909% - var(--horizontal-gap-parent, 5.5%)*10/11)}}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/themes/divi-simpleworld/style.css */
/*
 Theme Name:     Simple World Theme - extends Divi
 Theme URI:      http://www.elegantthemes.com/gallery/divi/
 Description:    Simple World Theme - extends Divi
 Author:         Simple World
 Author URI:     http://www.simpleworldhq.com
 Template:       Divi
 Version:        1.0.1
*/
 

 
/* =Theme customization starts here
------------------------------------------------------- */

/* Simple Salon colours */
.et_color_scheme_orange a {
	color: #8EDCE6;
}
.et_color_scheme_orange #et_search_icon:hover, .et_color_scheme_orange .mobile_menu_bar::before, .et_color_scheme_orange .footer-widget h4, .et_color_scheme_orange .et_pb_sum, .et_color_scheme_orange .et_pb_pricing li a, .et_color_scheme_orange .et_pb_pricing_table_button, .et_color_scheme_orange .comment-reply-link, .et_color_scheme_orange .form-submit input, .et_color_scheme_orange .et_pb_bg_layout_light .et_pb_newsletter_button, .et_color_scheme_orange .et_pb_contact_submit, .et_color_scheme_orange .et_password_protected_form .et_submit_button, .et_color_scheme_orange .et_pb_bg_layout_light .et_pb_more_button, .et_color_scheme_orange .et_pb_bg_layout_light .et_pb_promo_button, .et_color_scheme_orange .et_overlay::before, .et_color_scheme_orange .entry-summary p.price ins, .et_color_scheme_orange.woocommerce div.product span.price, .et_color_scheme_orange.woocommerce-page div.product span.price, .et_color_scheme_orange.woocommerce #content div.product span.price, .et_color_scheme_orange.woocommerce-page #content div.product span.price, .et_color_scheme_orange.woocommerce div.product p.price, .et_color_scheme_orange.woocommerce-page div.product p.price, .et_color_scheme_orange.woocommerce #content div.product p.price, .et_color_scheme_orange.woocommerce-page #content div.product p.price, .et_color_scheme_orange #top-menu li.current-menu-ancestor > a, .et_color_scheme_orange #top-menu li.current-menu-item > a {
	color: #8EDCE6 !important;
}
body.et_color_scheme_orange #main-footer a {
   color: #8EDCE6;   /* use faded orange for footer */
}
.et_color_scheme_orange .et_pb_pricing .et_pb_featured_table .et_pb_pricing_heading {
    background: none repeat scroll 0 0 #8EDCE6 !important;
}
.et_color_scheme_orange .et_pb_et_price .et_pb_sum, 
.et_color_scheme_orange .et_pb_pricing_table .et_pb_pricing_table_button, 
.et_color_scheme_orange .et_pb_pricing_table2 .et_pb_pricing_table_button
{
    color: #8EDCE6 !important;
}

#top-menu li.logintopbutton>a {
   border: 2px solid #8EDCE6;
   color: #8EDCE6;
}
#top-menu li.signuptopbutton>a {
   border: 2px solid #8EDCE6;
   background-color: #8EDCE6;
   color: #ffffff;
}
.et_color_scheme_orange #top-menu li.current-menu-item.signuptopbutton > a {
   color:#ffffff !important;
}
.et_color_scheme_orange .nav li ul {
    border-color: #8EDCE6;
}
/* End Simple Salon colours */
li.menu-item.freetrial a {
    color: #ffffff !important;
	border: 10px solid #ef5d60 !important;
    border-radius: 60px;
    letter-spacing: 1px;
    font-size: 14px;
    font-family: 'Montserrat',Helvetica,Arial,Lucida,sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    background-color: #ef5d60;
    padding: 0.1em 0.5em;
	margin-top:-3px;
}
li.menu-item.freetrial a:hover {
    background-color: #8edce6;
    border: 10px solid #8edce6 !important;
}
.et_pb_menu_0_tb_header.et_pb_menu ul li.freetrial a:hover {
	color: #ffffff !important;
}
.et_pb_menu--without-logo .et_pb_menu__menu > nav > ul > li.freetrial {
	margin-top:0;
}
.et_pb_fullwidth_menu--without-logo .et_pb_menu__menu > nav > ul > li.freetrial > a, .et_pb_menu--without-logo .et_pb_menu__menu > nav > ul > li.freetrial > a {
	padding-bottom:0;
}
.et_pb_contact_submit {
	margin-left: 0;
}
#et-top-navigation,
#top-menu .menu-item-has-children > a:first-child::after, .fullwidth-menu .menu-item-has-children > a:first-child::after, #et-secondary-nav .menu-item-has-children > a:first-child::after {
   font-weight:500;
}
.et-menu li li.menu-item-has-children > a:first-child::after {
	top:6px !important;
}
#main-header nav#top-menu-nav {
   padding-top:8px;
}
#main-footer {
    background-color: #0A223E;
}
#footer-bottom {
    background-color: #0A223E;
}
.et_fixed_nav #logo {
   max-height:43px;
}
.et-fixed-header #logo {
   max-height: 30px;
}
article.post a {
	color: #2ea3f2;
}
#top-menu li.signuptopbutton {
	padding-right: 12px;
}
#top-menu li.logintopbutton>a,
#top-menu li.signuptopbutton>a
 {
   border-radius: 3px;
   padding: 5px 19px !important;
   display: inline;
   height: 39px;
}
.et-fixed-header #top-menu > li.logintopbutton > a,
.et-fixed-header #top-menu > li.signuptopbutton > a
{
   padding-bottom: 6px;
}

#footer-widgets {
    padding-top: 30px !important;
}
.contactus-column {
   float:left;
   width:50%;
}
#footer-widgets .fwidget {
   width: 100%;
}
.et_pb_gutters3.et_pb_footer_columns4 .footer-widget {
	width:30%;
	float:right;
}
.et_pb_gutters3.et_pb_footer_columns4 .footer-widget:first-child {
	width:auto;
	float:left;
}
.et_pb_gutters3.et_pb_footer_columns4 .footer-widget:nth-child(2) {
	width:160px;
}
.et_pb_gutters3.et_pb_footer_columns4 .footer-widget .fwidget {
	margin-bottom:0;
}
.et_color_scheme_orange #top-menu li.current-menu-ancestor > a, 
.et_color_scheme_orange #top-menu li.current-menu-item > a {
   color: #666666 !important;
}
.copyright2 {
   text-align:center;
   display:none;
}
body.et_color_scheme_orange #main-footer .copyright1 a, body.et_color_scheme_orange #main-footer .copyright2 a {
   color: #666666;
}
/* small screen styles */
@media only screen and (max-width: 1200px) {
   li.menu-item.freetrial a {
      border:0 none !important;
	  background-color:transparent;
	  padding-left:0;
	  padding-right:0;
	  padding-top:0;
	  letter-spacing:inherit;
	  text-transform:none !important;
	  margin-top:0;
   }
   li.menu-item.freetrial a:hover {
		background-color: transparent;
		border: 0 none !important;
	}
	.et_pb_menu--without-logo .et_pb_menu__menu > nav > ul > li.freetrial {
		margin-top:8px;
	}
   .et_pb_menu_0_tb_header.et_pb_menu ul li.menu-item.freetrial a {
	   color: #ef5d60 !important;
   }
   .et_pb_fullwidth_menu .et-menu>li, .et_pb_menu .et-menu>li {
	   padding-left:6px;
	   padding-right:6px;
   }
}
@media only screen and (max-width: 1100px) {
   .footer-widget {
      margin-right: 40px !important;
   }
}
@media only screen and (max-width: 980px) {
	#footer-widgets .et_pb_widget {
		float:none;
	}
   .et_pb_gutters3.et_pb_footer_columns4 .footer-widget,
   .et_pb_gutters3.et_pb_footer_columns4 .footer-widget:first-child,
   .et_pb_gutters3.et_pb_footer_columns4 .footer-widget:nth-child(2),
	.et_pb_gutters3.et_pb_footer_columns4 .footer-widget:last-child   {
	   float:none;
   }
   #footer-widgets .footer-widget,
#footer-widgets .footer-widget:nth-child(2n),
#footer-widgets .footer-widget:last-child   {
	   margin-bottom:30px !important;
   }
   .et_pb_gutters3.et_pb_footer_columns4 .footer-widget .fwidget {
		margin-bottom:0 !important;
	}
	li.menu-item.freetrial a {
	  padding-left:5%;
	  padding-right:5%;
	  padding-top:10px;
	  padding-bottom:10px;
   }
   .et_pb_menu .et_mobile_menu {
	   left:0;
	   right:0;
	   width:auto;
	   margin-left: -100%;
   }
   .et_pb_menu_0_tb_header.et_pb_menu ul li.first-level:hover a {
	   color: #ffffff !important;
   }
   .et_pb_menu_0_tb_header.et_pb_menu ul li.first-level:hover>a,
   .et_pb_menu_0_tb_header.et_pb_menu ul li.second-level:hover>a   {
	   color: #ef5d60 !important;
   }
   .et_mobile_menu li a {
	   text-align:center;
   }
   .et_mobile_menu li li {
	   padding-left:0;
   }
   .et_pb_menu .et_mobile_menu li ul {
	   padding-left:0;
   }
   .et_mobile_menu .first-level.menu-item-has-children > a:after {
	   top:8px;
   }
}
@media only screen and (max-width: 770px) {
   .et-social-icons {
      width: 100%;
		float:none;
	}
   .et-social-icons li:nth-child(1) {
      margin-left:0;
   }
	.et-social-icons, #footer-info {
		text-align: center;
	}
   .copyright1 {
		display:none;
	}
   .copyright2 {
      display:block;
      width:100%;
   }
}
@media only screen and (max-width:767px) {
	#footer-widgets .footer-widget .fwidget, #footer-widgets .footer-widget:nth-child(n) {
		margin-bottom: 0 !important;
	}
}
/* very small screen styles */
@media only screen and (max-width: 520px) {
   .contactus-column {
      width:100%;
   }
   .et_pb_gutters3.et_pb_footer_columns4 .footer-widget:nth-child(2),
   .footer-widget:nth-child(2) {
      width: 100%;
	  float:left;
   }
}
/* PricingTable2 styles */
@media all and (min-width:981px) and (max-width:1405px){
    .et_vertical_nav .et_pb_column_4_4 .et_pb_pricing_table2{width:33.333%}
    .et_vertical_nav .et_pb_column_2_3 .et_pb_pricing_table2,.et_vertical_nav .et_pb_column_3_4 .et_pb_pricing_table2,.et_vertical_nav .et_pb_pricing_2 .et_pb_pricing_table2{width:50%}
    .et_vertical_nav .et_pb_column_1_2 .et_pb_pricing_table2,.et_vertical_nav .et_pb_column_1_3 .et_pb_pricing_table2,.et_vertical_nav .et_pb_column_1_4 .et_pb_pricing_table2,.et_vertical_nav .et_pb_column_3_8 .et_pb_pricing_table2,.et_vertical_nav .et_pb_pricing_1 .et_pb_pricing_table2{width:100%;margin:0 0 30px}
    .et_vertical_nav .et_pb_column_1_2 .et_pb_pricing_table2.et-last-child,.et_vertical_nav .et_pb_column_1_2 .et_pb_pricing_table2:last-child,.et_vertical_nav .et_pb_column_1_3 .et_pb_pricing_table2.et-last-child,.et_vertical_nav .et_pb_column_1_3 .et_pb_pricing_table2:last-child,.et_vertical_nav .et_pb_column_1_4 .et_pb_pricing_table2.et-last-child,.et_vertical_nav .et_pb_column_1_4 .et_pb_pricing_table2:last-child,.et_vertical_nav .et_pb_column_3_8 .et_pb_pricing_table2.et-last-child,.et_vertical_nav .et_pb_column_3_8 .et_pb_pricing_table2:last-child,.et_vertical_nav .et_pb_pricing_1 .et_pb_pricing_table2.et-last-child,.et_vertical_nav .et_pb_pricing_1 .et_pb_pricing_table2:last-child{margin-bottom:0}
    .et_vertical_nav .et_pb_column_3_4 .et_pb_pricing_table2:nth-child(3n+1),.et_vertical_nav .et_pb_column_4_4 .et_pb_pricing_table2:nth-child(4n+1){clear:none}
    .et_vertical_nav .et_pb_column_3_4 .et_pb_pricing_table2:nth-child(2n+1),.et_vertical_nav .et_pb_column_4_4 .et_pb_pricing_table2:nth-child(3n+1){clear:both}
    .et_vertical_nav .et_pb_column_3_4 .et_pb_pricing_table2:nth-child(n+3),.et_vertical_nav .et_pb_column_4_4 .et_pb_pricing_table2:nth-child(n+4){margin-top:50px}
    .et_vertical_nav .et_pb_column_3_4 .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+3),.et_vertical_nav .et_pb_column_4_4 .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+4){margin-top:30px}
}
.et_pb_all_tabs,.et_pb_counters .et_pb_counter_container,.et_pb_module,.et_pb_portfolio_item,.et_pb_posts_nav a,.et_pb_pricing_table2,.et_pb_row,.et_pb_row_inner,.et_pb_slide,.et_pb_tab,.et_pb_with_background{background-repeat:no-repeat;background-position:center;background-size:cover}
.et_pb_pricing_table2_wrap{display:block;display:-ms-flexbox;display:-webkit-flex;display:flex;flex-direction:row;align-items:flex-start;-webkit-flex-direction:row;-ms-flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}
.et_pb_pricing_table2{float:left;position:relative;width:33.33%;max-width:34%;margin:30px -1px 0 0;padding-bottom:30px;border:1px solid #bebebe;background-color:#fcfcfc;text-align:center;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}
.et_pb_column_4_4 .et_pb_pricing_table2{width:25%;max-width:25.5%}
.et_pb_column_4_4 .et_pb_pricing_3 .et_pb_pricing_table2{width:33.33%;max-width:34%}
.et_pb_column_1_2 .et_pb_pricing_table2,.et_pb_column_2_3 .et_pb_pricing_table2,.et_pb_column_3_5 .et_pb_pricing_table2,.et_pb_pricing_2 .et_pb_pricing_table2{width:50%;max-width:50.5%}
.et_pb_column_1_3 .et_pb_pricing_table2,.et_pb_column_1_4 .et_pb_pricing_table2,.et_pb_column_1_5 .et_pb_pricing_table2,.et_pb_column_1_6 .et_pb_pricing_table2,.et_pb_column_2_5 .et_pb_pricing_table2,.et_pb_column_3_8 .et_pb_pricing_table2,.et_pb_pricing_1 .et_pb_pricing_table2{width:100%;max-width:none;margin:0 0 30px}
.et_pb_column_1_3 .et_pb_pricing_table2.et-last-child,.et_pb_column_1_3 .et_pb_pricing_table2:last-child,.et_pb_column_1_4 .et_pb_pricing_table2.et-last-child,.et_pb_column_1_4 .et_pb_pricing_table2:last-child,.et_pb_column_1_5 .et_pb_pricing_table2.et-last-child,.et_pb_column_1_5 .et_pb_pricing_table2:last-child,.et_pb_column_1_6 .et_pb_pricing_table2.et-last-child,.et_pb_column_1_6 .et_pb_pricing_table2:last-child,.et_pb_column_2_5 .et_pb_pricing_table2.et-last-child,.et_pb_column_2_5 .et_pb_pricing_table2:last-child,.et_pb_column_3_8 .et_pb_pricing_table2.et-last-child,.et_pb_column_3_8 .et_pb_pricing_table2:last-child,.et_pb_pricing_1 .et_pb_pricing_table2.et-last-child,.et_pb_pricing_1 .et_pb_pricing_table2:last-child{margin-bottom:0}
.et_pb_column_1_2>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(2n+1),.et_pb_column_2_3>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(2n+1),.et_pb_column_3_4>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(3n+1),.et_pb_column_3_5>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(2n+1),.et_pb_column_4_4>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(4n+1){clear:both}
.et_pb_column_1_2>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(n+3),.et_pb_column_2_3>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(n+3),.et_pb_column_3_4>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(n+4),.et_pb_column_3_5>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(n+3),.et_pb_column_4_4>.et_pb_pricing>.et_pb_pricing_table2_wrap>.et_pb_pricing_table2:nth-child(n+5){margin-top:50px}
.et_pb_column_1_2 .et_pb_pricing_table2_wrap .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+3),.et_pb_column_2_3 .et_pb_pricing_table2_wrap .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+3),.et_pb_column_3_4 .et_pb_pricing_table2_wrap .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+4),.et_pb_column_3_5 .et_pb_pricing_table2_wrap .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+3),.et_pb_column_4_4 .et_pb_pricing_table2_wrap .et_pb_pricing_table2.et_pb_featured_table:nth-child(n+5){margin-top:30px}
.et_pb_pricing_table2 .et_pb_button_wrapper{padding-right:30px;padding-left:30px}
.et_pb_column_1_2 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_1_2 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_2_3 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_2_3 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_5 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_5 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2){margin-top:0!important}
@media all and (min-width:981px){
    .et_pb_column_3_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(3),.et_pb_column_3_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(3),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(3),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(4){margin-top:0!important}
}
@media all and (max-width:981px){
    .et_pb_column_3_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_4 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_4 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_4_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_4_4 .et_pb_pricing.et_pb_fourth_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_4_4 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_4_4 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_4_4 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(2){margin-top:0!important}
}
#aside-a { color: #777777 !important; text-decoration: none !important; font-size: 16px !important; margin-left: 5px !important; display: inline-flex !important}
@media all and (min-width:767px){
    .et_pb_column_1_2 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_1_2 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_1_2 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_1_2 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_2_3 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_2_3 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_2_3 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_2_3 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_5 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_5 .et_pb_pricing.et_pb_no_featured_in_first_row .et_pb_pricing_table2:nth-child(2),.et_pb_column_3_5 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(1),.et_pb_column_3_5 .et_pb_pricing.et_pb_third_featured .et_pb_pricing_table2:nth-child(2){margin-top:0!important}
}
@media all and (max-width:980px){
    .et_pb_column .et_pb_pricing_table2{width:50%!important;max-width:50.5%!important}
    .et_pb_column .et_pb_pricing_1 .et_pb_pricing_table2{width:100%!important;max-width:none!important}
    .et_pb_column .et_pb_pricing_table2:nth-child(2n+1){clear:both}
    .et_pb_column .et_pb_pricing_table2:nth-child(n+3){margin-top:50px}
    .et_pb_column .et_pb_pricing_table2{width:100%!important;max-width:100%!important;margin:0 0 30px!important}
    .et_pb_column .et_pb_pricing_table2.et-last-child,.et_pb_column .et_pb_pricing_table2:last-child{margin-bottom:0}
}
.et_pb_pricing_table2.et_pb_featured_table {
    position: relative;
    z-index: 10;
    margin-top: 0;
    background-color: #fff;
    -webkit-box-shadow: 0 0 12px rgba(0,0,0,.1);
    -moz-box-shadow: 0 0 12px rgba(0,0,0,.1);
    box-shadow: 0 0 12px rgba(0,0,0,.1);
}
.et_pb_sum sup {
    font-size:15px;
    bottom: 2.2em;
}
@media only screen and (max-width: 980px) {
   .et_pb_sum sup {
        font-size:14px;
        bottom: 1.9em;
    }
	/* move language switcher out of hamburger menu */
	.et_pb_module.et_pb_menu .et-menu-nav li:not(.wpml-ls-menu-item), .et_pb_module.et_pb_menu .et-menu-nav li:not(.wpml-ls-menu-item) {
		display:none;
	}
	.et_pb_module.et_pb_menu .et-menu-nav li.wpml-ls-menu-item.wpml-ls-current-language
	{
		margin-top: 10px;
		padding-right: 10px;
	}
	.et_pb_module.et_pb_menu .et-menu-nav li.wpml-ls-menu-item.wpml-ls-current-language>a
	{
		padding-top: 2px;
	}
	.et_mobile_menu li.wpml-ls-menu-item {
		display:none;
	}
}
    /* move language switcher out of hamburger menu */
.et_pb_fullwidth_menu .et_pb_menu__menu, .et_pb_menu .et_pb_menu__menu {
    display: block!important;
}

@media screen and (max-width: 768px) {
    .et_pb_module.et_pb_menu, .et_pb_module.et_pb_menu li {
        margin-left: auto!important;
        margin-right: auto!important;
    }
}
/* end PricingTable2 styles */
/* WPML language switcher styles */
.nav li.wpml-ls-menu-item ul {
	width: 60px;
	padding:10px 0;
}
.nav li.wpml-ls-menu-item li {
	padding: 0 10px;
}
.et-menu li.wpml-ls-menu-item li a {
	width: 40px;
	padding:10px;
}
.nav ul li.wpml-ls-menu-item a:hover {
	background-color: rgba(239,93,96,.3);
}
#divLanguageSelected {
	display:none;
}
/* end WPML language switcher styles */


/* ================================================================
   iOS Safari fixed header paint fix - Divi 5 migration 2026-07-21
   Root cause: position:fixed + transition:all causes iOS Safari
   to fail painting the header on initial page load.
   Fix: force GPU compositing via translate3d + explicit z-index.
   ================================================================ */
.et_pb_section_0_tb_header {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 999 !important;
}


/* ================================================================
   Page frame - the design's 1440px canvas, restored 2026-08-17
   ----------------------------------------------------------------
   WHAT: caps each Divi Theme Builder layer (.et-l--header, the body
   .et-l--post and .et-l--footer) at 1440px and centres it, so rows
   authored as "100% width" stop tracking the browser viewport once
   the viewport is wider than 1440px. Below 1440px this rule changes
   nothing at all.

   WHY: every Claude Design mockup is wrapped in a hard page frame -
   `max-width:1440px; min-width:1240px; margin:0 auto`
   (managed-agents-design-export/Homepage.dc.html line 20, and the
   same wrapper in Pricing.dc.html, Features.dc.html and Feature Page
   Template.dc.html). Every literal width inside that frame was
   transcribed into Divi faithfully, but the frame itself never was.
   So a block the designer authored as "100% of the canvas" (=1440px)
   became 100% of the VIEWPORT. Measured on the homepage at 2560px
   before this rule: 10 of 20 rows unbounded and growing 1:1 with the
   viewport, widest row 2560px against a narrowest of 451px, 4 of 10
   images upscaled past their natural size (hero 1.739x), body text
   up to 290 characters per line.

   Evidence and full measurements:
   .superpowers/sdd/2026-08-16-sswebsite-wave0-foundations/
   wide-viewport-diagnosis.md and width-fix-report.md

   NOT IN SCOPE: Divi's --content-max-width is still its factory
   1080px where the design specifies 1340px. That is a separate,
   deliberately deferred question - it is identical at every viewport
   and is not part of the wide-screen problem this rule fixes.
   ================================================================ */
#page-container .et-l > .et_builder_inner_content {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}


/* ================================================================
   Mobile pass 1 - stacking, type scale, gutters, mobile menu
   Added 2026-08-17. Appended below the 2026-08-17 page-frame block;
   that block is untouched.
   ----------------------------------------------------------------
   WHY THIS EXISTS AT ALL: measured audit at
   .superpowers/sdd/2026-08-16-sswebsite-wave0-foundations/
   mobile-audit.md (29 defects). Full before/after numbers for this
   change in mobile-fix-wave1-report.md in the same directory.

   BREAKPOINT: 980px throughout, reused from the promoted header and
   footer (which already switch to their mobile treatment at 980 and
   tighten their gutter at 1240). The design export contains no
   @media value anywhere and no tablet canvas, so 980 is an
   inherited invention, not a designed number - it is reused here
   only so the site has ONE breakpoint set instead of two. Still an
   open decision for Jason.

   Every rule below is inside @media (max-width: 980px). Nothing here
   can affect a desktop viewport.
   ================================================================ */

/* ----------------------------------------------------------------
   1. Divi 5 flex rows may wrap below the breakpoint.

   Divi 5.9.0's flex grid (Divi/includes/builder/feature/
   dynamic-assets/assets/css/flex_grid.css, served here inside
   <style id="divi-dynamic-critical-inline-css">) sets
   `.et_flex_row{--flex-direction:row}` unconditionally and never
   sets flex-wrap at all - grepped the whole Divi theme: there is no
   flex-wrap declaration for .et_flex_row anywhere in it.

   Every column that Divi 5 emits on this site carries
   `et_flex_column_24_24` = `width: calc(100% - ...)`. With
   flex-wrap:nowrap those 100%-wide columns cannot wrap, so flex
   shrink squeezes them to min-content instead: the homepage hero's
   four stat columns measured 55.2 / 93.7 / 90.2 / 67.9px at a 390px
   viewport and the fourth one's right edge landed at 397.4, which is
   the whole of the 7px document overflow (30px at 360). Allowing the
   wrap is all that is needed: a 100%-wide column then takes a line
   of its own and the row stacks.

   Deliberately NOT `--flex-direction: column`: wrap keeps Divi's own
   n/24 column-width classes meaningful, so a row whose columns are
   authored (say) 12/24 on phone still renders 2-up instead of being
   force-stacked. It is also a no-op for any row whose columns
   already sum to <=100%, which is why it cannot disturb a layout
   that is currently correct.

   Above 980px nothing changes - desktop still relies on nowrap
   shrink to lay these rows out side by side, which is why this rule
   must stay inside the media query.

   The matching half of this fix is in functions.php, which enqueues
   Divi's own flex_grid_tablet.css / flex_grid_phone.css - Divi ships
   them but its dynamic-asset detector never enqueues them on this
   install, so the `_tablet` / `_phone` width classes in the markup
   have no CSS behind them.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  .et_pb_row.et_flex_row {
    flex-wrap: wrap;
  }
}

/* ----------------------------------------------------------------
   2. One gutter, one rhythm.

   GUTTER: rows measured 39 / 50 / 79px of side gutter on the same
   page at 390px (content 312px) because Divi's --content-width is
   80%. The design's mobile canvas is 390 wide with a 15px gutter and
   360px of content, so --content-width becomes calc(100% - 30px).
   --content-max-width is NOT touched (1080-vs-1340 is a separate
   deferred question).

   The two row/section resets below exist because some rows and
   sections carry an authored width that is narrower still - the
   homepage's "Latest posts" section renders 290px wide at a 390px
   viewport and the rows inside it 232px. On a phone the design has
   no narrow measure: every mobile screen is full width at 15px
   gutters. Scoped to the body layer so the Theme Builder header and
   footer, which manage their own 15px padding, are untouched.

   RHYTHM: four homepage sections carry 140px of vertical padding on
   a phone, from --gvid-space-xl. The design gives no phone-specific
   spacing scale, so rather than invent a number this collapses
   --gvid-space-xl onto the existing --gvid-space-l (70px) below the
   breakpoint. No other token is changed. 70px is the top of the
   35-70px rhythm the mobile mockups use.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  html:root {
    --ss-mobile-gutter: 15px;
    --content-width: calc(100% - 2 * var(--ss-mobile-gutter));
    --gvid-space-xl: var(--gvid-space-l, 70px);
  }

  .et-l--post .et_builder_inner_content .et_pb_section,
  .et-l--body .et_builder_inner_content .et_pb_section {
    width: auto;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  /* The row width is written out from --ss-mobile-gutter rather than read
     from --content-width on purpose. Custom properties inherit, so a Theme
     Builder body layout that redefines --content-width on a closer ancestor
     shadows the :root value: the blog-post template sets 64%, which
     measured as a 250px content column and a 70px gutter at 390px even
     with the :root override in place. --ss-mobile-gutter is defined only
     here, so nothing can shadow it. */
  /* NOT REACHED BY THIS RULE, on purpose: rows the author ticked "Make
     this row full width" in Divi carry `max-width: 100% !important`
     (ten of the homepage's twenty rows do). They stay edge-to-edge at a
     0px gutter. A cap was tried here and cannot win against
     !important without putting !important on every row's width, which
     would overrule an explicit per-row author decision across all 96
     pages. Those rows were already full-bleed before this change, so
     nothing regressed - it is simply not fixed from the child theme.
     Getting them to the design's 15px inset means editing the Divi
     layouts. */
  .et-l--post .et_builder_inner_content .et_pb_row:not(.et_pb_row_nested),
  .et-l--body .et_builder_inner_content .et_pb_row:not(.et_pb_row_nested) {
    width: calc(100% - 2 * var(--ss-mobile-gutter));
    max-width: var(--content-max-width);
    margin-left: auto;
    margin-right: auto;
  }

  /* Blog posts are NOT a Theme Builder body layout - they render through
     Divi's classic single-post template, which wraps the content in
     `.container { width: 80% }` and then narrows the row again with
     `.et_pb_pagebuilder_layout.single-post:not(.et-tb-has-body)
      #main-content .container .et_pb_row { width: 80% }`.
     80% of 80% measured as a 249.6px text column inside 39px + 31px of
     gutter at a 390px viewport - about 31 characters a line once body
     copy is at its proper 16px. The row selector is id-qualified and
     out-reaches any practical class selector, so its width is the one
     !important in this block. */
  #main-content .container {
    width: calc(100% - 2 * var(--ss-mobile-gutter));
    max-width: var(--content-max-width);
  }

  #main-content .container .et_pb_row:not(.et_pb_row_nested) {
    width: 100% !important;
    max-width: none;
  }
}

/* ----------------------------------------------------------------
   3. The design's mobile type scale, and nothing smaller than 16px.

   Design System.dc.html / Divi 5 Build Guide.dc.html mobile scale:
   H1 30 - H2 25 - H3 20 - body 16 - small 14.

   Measured before this rule at 390px: body text inherits 14px from
   Divi's own `body{font-size:14px}` on EVERY page (43 elements on
   the blog post, 16 on the homepage); H2 renders 26px sitewide, 36px
   on /more-bookings/ and 16px on a blog post - smaller there than
   its own H3 at 22px, an inverted hierarchy; H1 renders 53px on
   /more-bookings/.

   `html body` (0,0,2) rather than `body` (0,0,1) because Divi emits
   `body{font-size:var(--et_global_body_font_size)}` in an inline
   <style> AFTER this stylesheet; an equal-specificity rule would
   lose on order. The heading rules need !important to beat
   per-module rules such as
   `.et_pb_text_0 .et_pb_text_inner h1{font-size:53px}` (0,3,1) and
   `.et_pb_post h2{font-size:16px}` (0,1,1). They are scoped to the
   body layer so the header and footer, which set their own sizes
   explicitly, are unaffected.

   Raising the inherited base to 16px also raises text the design
   would call "small" - that is accepted deliberately: the base is
   inherited everywhere and there is no way to tell the two apart in
   CSS, and the brief's floor is that body text is never below 16px.
   Anything authored with an explicit size keeps it.

   Pinch-zoom (`user-scalable=0`) is removed in functions.php - it is
   emitted by Divi's parent theme, not by CSS.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  html body {
    font-size: 16px;
  }

  .et-l--post h1,
  .et-l--body h1 {
    font-size: 30px !important;
  }

  .et-l--post h2,
  .et-l--body h2 {
    font-size: 25px !important;
  }

  .et-l--post h3,
  .et-l--body h3 {
    font-size: 20px !important;
  }
}

/* The older Divi 4 pages (/more-bookings/, /more-tools/, the industry and
   comparison templates) set module heading sizes with !important at
   (0,3,1) - e.g.
   `.et_pb_cta_5.et_pb_promo h2.et_pb_module_header{font-size:40px!important}`
   in et-core-unified-*.min.css, which loads AFTER this stylesheet. The
   block above (0,1,1) loses those on specificity, which measured as H2
   still 40px on /more-bookings/ and 38px on /more-tools/ at 390px. This
   repeat at (0,4,1) is the smallest selector that beats them. Same three
   sizes, same scope - it is the same rule, not a different one. */
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h1,
  .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h1 {
    font-size: 30px !important;
  }

  .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h2,
  .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h2 {
    font-size: 25px !important;
  }

  .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h3,
  .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h3 {
    font-size: 20px !important;
  }
}

/* ----------------------------------------------------------------
   4. The burger opens the navigation that is already in the DOM.

   `.ssh-nav` holds the full 18-link primary navigation and is
   display:none below 980px, so phones AND iPads currently have no
   site navigation at all. No markup is added here: the panel IS that
   nav, re-styled and taken out of the header's flex row.

   The design export draws no open-menu state (audit item C4), so
   this deliberately borrows the footer card's language rather than
   inventing one: the same violet wash gradient over white, the same
   30px --gvid-radius-card, the same 15px inset. Section 3's type
   scale. No animation, no icons, no decoration.

   Every rule is keyed on `.ssh--open` (specificity 0,2,0 or higher)
   so it beats the header code module's own `.ssh-nav{display:none}`
   (0,1,0), which is emitted inline after this stylesheet.

   NOT trapped: the panel is position:absolute, not fixed, and body
   scroll is never locked - the page scrolls normally with the menu
   open and the menu scrolls away with it. There is no max-height and
   no internal scroller, deliberately.

   Tap targets in this panel are 44px, per Divi 5 Build Guide section
   5. The mockups' 36px applies to the header bar's own controls,
   which are unchanged; the 36-vs-44 contradiction between the two
   design documents is still open (audit item C3).
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  /* positioned + above page content; visually identical to static */
  body .et-l--header {
    position: relative;
    z-index: 1000;
  }

  /* nothing in the header chain may clip the panel */
  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_column,
  .et-l--header .et_pb_code,
  .et-l--header .et_pb_code_inner {
    overflow: visible;
  }

  .et-l--header .ssh {
    position: relative;
  }

  .ssh .ssh-burger:focus-visible,
  .ssh .ssh-nav a:focus-visible,
  .ssh .ssh-nav [role="button"]:focus-visible {
    outline: 2px solid var(--gcid-6spcyv8qzp, #FF7043);
    outline-offset: 3px;
    border-radius: 6px;
  }

  .ssh.ssh--open .ssh-nav {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 120;
    margin: 0 15px;
    padding: 25px;
    align-items: stretch;
    gap: 0;
    background-color: #ffffff;
    background-image: linear-gradient(rgba(124, 77, 255, 0.07) -3.92%, rgba(255, 255, 255, 0.07) 176.77%);
    border: 1px solid var(--gcid-vak449rdh1, #EDE7F6);
    border-radius: var(--gvid-radius-card, 30px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.10);
  }

  .ssh.ssh--open .ssh-nav .ssh-dd {
    position: static;
  }

  .ssh.ssh--open .ssh-nav .ssh-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 0;
    font-size: 20px;
    font-weight: 600;
    white-space: normal;
  }

  .ssh.ssh--open .ssh-nav .ssh-link svg {
    display: none;
  }

  .ssh.ssh--open .ssh-nav .ssh-panel {
    display: block;
    position: static;
    padding-top: 0;
  }

  .ssh.ssh--open .ssh-nav .ssh-panel .ssh-panel-in {
    display: block;
    width: auto;
    padding: 0 0 12px 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .ssh.ssh--open .ssh-nav .ssh-panel .ssh-panel-in a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 0;
    font-size: 16px;
    line-height: 1.4;
  }
}


/* ================================================================
   Mobile pass 2 - homepage 390 design match
   Added 2026-08-17. Appended BELOW the 2026-08-17 page-frame block
   and the 2026-08-17 "Mobile pass 1" block; neither is touched.

   GROUND TRUTH for every number below is the rendered mobile design,
   managed-agents-design-export/"Mobile Views.dc.html", column
   data-screen-label="Mobile Homepage" (lines 22-249 of that file).
   It is a self-contained document whose phone frames are authored as
   inline styles, so the values here are transcribed from the design
   source, not eyeballed off a screenshot. A standalone extraction of
   just that column, used as the left-hand side of every comparison,
   is at mobile-match/design-home-390.html in the audit directory.

   SCOPE: every rule is inside @media (max-width: 980px) AND prefixed
   with body.page-id-987489070 (the homepage). Two reasons:
     - desktop cannot move, which is the standing requirement; and
     - Mobile pass 1 explicitly refused to force row widths sitewide
       because that would overrule a per-row author decision on all
       96 pages. Scoping to one page removes that objection: this is
       the page whose design we have. Rolling it out to the other
       templates is a later, per-template decision.

   BREAKPOINT: 980px, reused from Mobile pass 1 and from the promoted
   header/footer, so the site keeps ONE breakpoint set. Still the
   inherited invention that Mobile pass 1 flagged, not a designed
   number - the design export contains no @media value anywhere.

   FRAGILITY, stated plainly: Divi 5 names modules by their position
   in the layout (.et_pb_row_13, .et_pb_column_7, .et_pb_image_6...).
   Several rules below have to name them, because that is the only
   handle Divi gives you on "the CTA row" as opposed to "a row". If
   the homepage layout is re-ordered in the builder those numbers
   shift and the matching rule silently targets the wrong module.
   Every such rule is commented with what it is meant to hit so it
   can be re-derived. Rules that could be written structurally are.
   ================================================================ */

/* ----------------------------------------------------------------
   2.1  Every homepage row honours the 15px gutter.

   Mobile pass 1 left this unfixed and said why: ten of the twenty
   rows carry Divi's "make this row full width" setting, which emits
   `.et_pb_row_N { width:100%!important; max-width:100%!important }`
   inline, and a non-important width cannot beat it. Measured on the
   live page before this change, those rows are exactly
   2, 4, 5, 6, 8, 11, 12, 14, 18, 19 - the hero image, all four
   solutions card rows, the features card row, the testimonial card,
   the CTA banner, the blog post list and the subscribe card. In the
   design every one of them is inset 15px; nothing on the mobile
   homepage is edge-to-edge except the grey hero panel's background.

   The emitted rule is only (0,1,0). The variant of it that carries
   an id is `.et_pb_pagebuilder_layout.single-post:not(.et-tb-has-body)
   #main-content .et_pb_row.et_pb_row_N`, which cannot match here -
   the homepage is a page, not a single-post. So a page-scoped
   selector at (0,4,1) plus !important wins on specificity, and the
   !important is confined to one page rather than imposed on 96.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_row:not(.et_pb_row_nested) {
    width: calc(100% - 2 * var(--ss-mobile-gutter, 15px)) !important;
    max-width: var(--content-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* The "Latest posts" panel is the one place where the design insets
     the SECTION, not the row: `margin: 0 15px` on a #F7F4FE card with
     a 30px radius, then `padding: 70px 15px` inside it. The rule above
     then insets the rows a second 15px, which is exactly the design's
     content position (30px from the viewport edge). */
  body.page-id-987489070 .et-l--post .et_pb_section_5 {
    width: auto;
    margin-left: var(--ss-mobile-gutter, 15px);
    margin-right: var(--ss-mobile-gutter, 15px);
    border-radius: var(--gvid-radius-card, 30px);
  }
}

/* ----------------------------------------------------------------
   2.2  Vertical rhythm.

   The live page is 15623px tall at 390; the design is 8331px. Almost
   all of the difference is spacing, not content: every section is a
   flex column with `gap:60px` and `padding:70px 0`, every row adds
   another `padding-bottom:70px`, and every column inside them has
   `gap:30px`. That is up to 200px between two blocks the design
   separates by 35.

   Design values, read off the homepage column:
     grey panel (header/hero/solutions)   gap 35, padding-bottom 70
     features block                       padding 70 / 35, gap 35
     testimonials block                   padding 35 / 35, gap 35
     CTA block                            padding 35 / 35
     blog panel                           padding 70 / 70 (inside it)
     FAQ block                            padding 70 / 70, gap 35
     subscribe block                      padding 0 / 35
     heading group (eyebrow -> h2 -> p)   gap 25
     card interior                        gap 20
     card stack                           gap 20
     blog post interior                   gap 12
     FAQ stack                            gap 12
     stat number -> stat label            gap 4
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section {
    row-gap: var(--gvid-space-m, 35px);
  }

  /* rows contribute no rhythm of their own; the section gap is the
     rhythm. Re-added below for the three rows that ARE cards - those
     rules come later in this file at equal specificity, so they win.
     !important because Divi emits row padding as
     `.et_pb_row_N.et_pb_row{padding-bottom:70px!important}` in the
     unified stylesheet; without it eight of the twenty rows kept a
     70px tail and every section read ~105px between blocks instead
     of 35. */
  body.page-id-987489070 .et-l--post .et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    row-gap: var(--gvid-space-s, 20px);
  }

  /* Divi puts 10px of padding under every heading, on top of the gap.
     The design has none - the gap is the whole spacing story. */
  body.page-id-987489070 .et-l--post .et_builder_inner_content :is(h1, h2, h3, h4) {
    padding-bottom: 0;
  }

  body.page-id-987489070 .et-l--post .et_pb_column {
    row-gap: 25px;
  }

  /* Modules carry their own vertical margins ON TOP of the column gap, so
     every gap on the page was the sum of two numbers. Divi's own default is
     `@media(max-width:980px){.et_pb_column .et_pb_module{margin-bottom:30px}}`
     and this layout adds an authored
     `.et_pb_text_15,.et_pb_text_18,...{margin-top:var(--gvid-space-m)!important;
      margin-bottom:var(--gvid-space-m)!important}` - 35px top AND bottom on
     most text modules, which is why a 25px gap measured 60-95px. The design
     has no module margins at all: every gap in it is a flex gap. Zeroing the
     margins here makes the gap the only thing that spaces modules, so the
     numbers in 2.2 are the numbers you get. !important is required because
     the authored rule is !important. */
  body.page-id-987489070 .et-l--post .et_pb_column > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Divi gives every image module an authored fixed height (730 desktop /
     420 tablet / 300 phone) which does not move when the <img> inside it is
     re-cropped below, so the hero image overflowed its module and printed
     over the "Solutions" heading. The image's own height is set per-section
     further down; the module just has to follow it. */
  body.page-id-987489070 .et-l--post .et_pb_image {
    height: auto;
  }

  /* section paddings, in layout order:
     0 hero  1 solutions  2 features  3 testimonials  4 CTA
     5 blog  6 FAQ  7 subscribe  8 (empty) */
  body.page-id-987489070 .et-l--post .et_pb_section_0 {
    padding-top: var(--gvid-space-m, 35px);
    padding-bottom: 0;
  }

  /* The four solutions cards are one 20px-gapped stack in the design, but
     the layout splits them across three rows (2 + 1 + 2), so the section
     gap would put 35px between cards 2-3 and 4-5 and 20px everywhere else.
     Dropping the section gap to 20 and giving the first card row a 15px
     top margin restores 35px under the heading and 20px between every
     card. */
  body.page-id-987489070 .et-l--post .et_pb_section_1 {
    padding-top: var(--gvid-space-m, 35px);
    padding-bottom: var(--gvid-space-l, 70px);
    row-gap: var(--gvid-space-s, 20px);
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 > .et_pb_row:nth-child(2) {
    margin-top: 15px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_2 {
    padding-top: var(--gvid-space-l, 70px);
    padding-bottom: var(--gvid-space-m, 35px);
  }

  body.page-id-987489070 .et-l--post .et_pb_section_3,
  body.page-id-987489070 .et-l--post .et_pb_section_4 {
    padding-top: var(--gvid-space-m, 35px);
    padding-bottom: var(--gvid-space-m, 35px);
  }

  body.page-id-987489070 .et-l--post .et_pb_section_7 {
    padding-top: 0;
    padding-bottom: var(--gvid-space-m, 35px);
  }
}

/* ----------------------------------------------------------------
   2.3  Type.

   Mobile pass 1 already fixed the SIZES (30/25/20/16). What it did
   not carry over is the rest of the design's heading treatment:
   Poppins 600 for h1/h2 (live renders 500), -0.03em tracking on
   every heading (live has none), and the design's near-black h1
   (#000000; live is #333333). Body copy is the other half: the
   design sets line-height 1.2-1.35 throughout and the live page
   renders 1.7, which is most of the extra page height that spacing
   does not account for.

   !important is needed on font-size only where a value is being
   changed away from Mobile pass 1's own !important (the CTA h2 and
   the slider quote). Everything else wins on specificity.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_builder_inner_content h1,
  body.page-id-987489070 .et-l--post .et_builder_inner_content h2 {
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
  }

  body.page-id-987489070 .et-l--post .et_builder_inner_content h1 {
    color: #000000;
  }

  body.page-id-987489070 .et-l--post .et_builder_inner_content h2 {
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  body.page-id-987489070 .et-l--post .et_builder_inner_content h3 {
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  body.page-id-987489070 .et-l--post .et_builder_inner_content p {
    line-height: 1.3;
  }

  /* hero sub-headline: 18px/1.2 in the design, 14px/1.4 live. !important
     because the layout authors it as
     `@media(max-width:767px){.et_pb_text_1 p{font-size:14px!important}}`. */
  body.page-id-987489070 .et-l--post .et_pb_text_1 .et_pb_text_inner p {
    font-size: 18px !important;
    line-height: 1.2 !important;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  /* hero reassurance line under the button: 13px #636363 */
  body.page-id-987489070 .et-l--post .et_pb_text_2 .et_pb_text_inner p {
    font-size: 13px;
    line-height: 1.3;
    color: #636363;
  }

  /* card body copy is the tightest thing in the design, 16/1.25 */
  body.page-id-987489070 .et-l--post .et_pb_section_1 .et_pb_text .et_pb_text_inner p,
  body.page-id-987489070 .et-l--post .et_pb_section_2 .et_pb_text .et_pb_text_inner p {
    line-height: 1.25;
  }
}

/* ----------------------------------------------------------------
   2.4  Eyebrow pills.

   Design: centred, 12px, uppercase, 7px/20px inside a 50px pill with
   a rgba(47,47,47,0.5) hairline. Live: left-aligned against the
   gutter, 14px inside a module that is 43px tall, with 35px of
   margin under it that duplicates the column gap.

   Structural selector, not a numbered one: on this page the eyebrow
   is always the first .et_pb_text in the section's first column and
   is the only text module Divi has given a 50px radius.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section_1 > .et_pb_row:first-child .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section_2 > .et_pb_row:first-child .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section_3 > .et_pb_row:first-child .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section_5 > .et_pb_row:first-child .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section_6 > .et_pb_row:first-child .et_pb_text:first-child {
    align-self: center;
    margin-bottom: 0;
    padding: 7px 20px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 > .et_pb_row:first-child .et_pb_text:first-child .et_pb_text_inner p,
  body.page-id-987489070 .et-l--post .et_pb_section_2 > .et_pb_row:first-child .et_pb_text:first-child .et_pb_text_inner p,
  body.page-id-987489070 .et-l--post .et_pb_section_3 > .et_pb_row:first-child .et_pb_text:first-child .et_pb_text_inner p,
  body.page-id-987489070 .et-l--post .et_pb_section_5 > .et_pb_row:first-child .et_pb_text:first-child .et_pb_text_inner p,
  body.page-id-987489070 .et-l--post .et_pb_section_6 > .et_pb_row:first-child .et_pb_text:first-child .et_pb_text_inner p {
    font-size: 12px;
    line-height: 1.25;
  }
}

/* ----------------------------------------------------------------
   2.5  Buttons.

   Design: one button shape everywhere - 18px/500, 15px 30px, a 100px
   pill, and stretched to the full content width for every primary
   and secondary call to action. Live: 20px with 6px 20px of padding,
   auto width, and left/right aligned at random ("More Features"
   renders right-aligned, the trial button under it left-aligned).

   The five "Learn more" buttons inside the solutions cards are the
   one exception. The design has no text button there at all - it
   has a white circular chevron in the card header (see 2.11) - so
   stretching them full width would invent an emphasis the design
   does not give them. They keep an inline pill.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_button {
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    padding: 15px 30px;
    border-radius: 100px;
  }

  body.page-id-987489070 .et-l--post .et_pb_button_module_wrapper {
    align-self: stretch;
  }

  /* `max-width:none` is the load-bearing one. Divi 5 ships
     `.et_pb_module.et_pb_button:not(.et_block_module){max-width:max-content}`
     (0,3,0), so a button given `width:100%` still renders at its text width -
     measured 178px for "More Features" in a 360px row. The margin reset in
     2.2 also undoes the authored
     `.et_pb_button_2_wrapper .et_pb_button_2{margin-left:auto}` that was
     pushing that same button to the right edge while the trial button under
     it sat on the left. */
  body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_button,
  body.page-id-987489070 .et-l--post .et_pb_section_2 .et_pb_button,
  body.page-id-987489070 .et-l--post .et_pb_section_4 .et_pb_button,
  body.page-id-987489070 .et-l--post .et_pb_section_5 .et_pb_button {
    display: block;
    width: 100%;
    max-width: none;
    text-align: center;
  }

  /* the two stacked buttons under the features cards: design gap 15 */
  body.page-id-987489070 .et-l--post .et_pb_section_2 > .et_pb_row:last-child {
    row-gap: 15px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 .et_pb_button_module_wrapper {
    align-self: flex-start;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 .et_pb_button {
    font-size: 16px;
    padding: 10px 22px;
  }
}

/* ----------------------------------------------------------------
   2.6  Hero.

   Four changes, in descending order of how wrong they look:

   a) The stat block is a 2x2 grid in the design (gap 20, number 25px
      in the section's accent colour, label 14px #636363, 4px apart).
      Live it is four full-width rows 91px tall - 364px of hero spent
      on four numbers. Divi gives every column `et_flex_column_24_24`
      = 100% width, and Mobile pass 1 turned on flex-wrap, so pinning
      the four stat columns to 50% is all that is needed.

   b) The hero image is 505px tall, inset 15px, 30px radius, and
      cropped with object-fit:cover in the design. Live it is a
      full-bleed 241px letterbox with square corners - the single
      most "old site" thing above the fold.

   c) The grey panel. In the design the header, hero and solutions
      all sit on one #F4F4F4 field with a 30px bottom radius; the
      white page starts at the features block. Live everything is
      white, so the top third of the page has no shape at all.

   d) Column rhythm inside the hero is 25px, not 30px.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  /* (a) stats 2x2 - .et_pb_row_1 is the stat row, columns 1..4 */
  body.page-id-987489070 .et-l--post .et_pb_row_1 {
    column-gap: 20px;
    row-gap: 20px;
  }

  body.page-id-987489070 .et-l--post .et_pb_row_1 > .et_pb_column {
    width: calc(50% - 10px) !important;
    max-width: calc(50% - 10px) !important;
    flex: 0 0 calc(50% - 10px);
    row-gap: 4px;
    align-items: center;
    text-align: center;
  }

  /* the number is 25/600 in the design (live 28) and the label 14px in
     #636363 (live #A0A0A0, the muted token, which is too light against
     the new grey panel) */
  body.page-id-987489070 .et-l--post .et_pb_row_1 .et_pb_text:first-child .et_pb_text_inner p {
    font-size: 25px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
  }

  body.page-id-987489070 .et-l--post .et_pb_row_1 .et_pb_text:last-child .et_pb_text_inner p {
    font-size: 14px;
    line-height: 1.2;
    color: #636363;
  }

  /* (b) hero image */
  body.page-id-987489070 .et-l--post .et_pb_image_0 img {
    height: 505px;
    object-fit: cover;
    border-radius: var(--gvid-radius-card, 30px);
    display: block;
  }

  /* (c) the grey panel behind header + hero + solutions */
  body.page-id-987489070 .et-l--header .et_pb_section,
  body.page-id-987489070 .et-l--post .et_pb_section_0,
  body.page-id-987489070 .et-l--post .et_pb_section_1 {
    background-color: #F4F4F4;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 {
    border-bottom-left-radius: var(--gvid-radius-card, 30px);
    border-bottom-right-radius: var(--gvid-radius-card, 30px);
  }

  /* (d) */
  body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_column {
    row-gap: 25px;
  }
}

/* ----------------------------------------------------------------
   2.7  Solutions cards.

   Design card: 25px padding, 20px interior gap, 30px radius, tinted
   gradient, and a 180px image with a 20px radius cropped to cover.
   Live: 35px padding, 30px gap, and an uncropped image whose height
   is whatever the source aspect ratio gives (182-240px across the
   five cards, so no two cards line up).

   Numbered selector, unavoidable: .et_pb_column_7 through _11 are
   the five card columns. They are the only columns in section 1 that
   carry padding, which is what the :not() below keys on instead - a
   structural test that survives a re-order, with the numbered list
   kept only as documentation of what it currently resolves to.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section_1 .et_pb_row > .et_pb_column {
    padding: 25px;
    row-gap: var(--gvid-space-s, 20px);
  }

  /* the eyebrow/heading row's column is not a card and must not get
     card padding - it is the only column in the section's FIRST row */
  body.page-id-987489070 .et-l--post .et_pb_section_1 > .et_pb_row:first-child > .et_pb_column {
    padding: 0;
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_1 .et_pb_image img {
    height: 180px;
    object-fit: cover;
    border-radius: var(--gvid-radius-row, 20px);
    display: block;
  }
}

/* ----------------------------------------------------------------
   2.8  Features cards.

   Design: 25px padding, 35px between the icon and the text block,
   30px radius, h3 at 20/1.2 and body at 16/1.25, all white.
   Live: 35px padding and 30px gap. The icons themselves are missing
   from the content and are NOT faked here - see the report.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section_2 .et_pb_row > .et_pb_column {
    padding: 25px;
    row-gap: 15px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_2 > .et_pb_row:first-child > .et_pb_column,
  body.page-id-987489070 .et-l--post .et_pb_section_2 > .et_pb_row:last-child > .et_pb_column {
    padding: 0;
    row-gap: 25px;
  }
}

/* ----------------------------------------------------------------
   2.9  Testimonials.

   Design order inside the card: photo (220px, 20px radius), stars,
   quote, name, dots. Live order: stars, quote, dots, photo - the
   photo is a separate column that Divi emits last, so it lands under
   the pagination. `order:-1` on that column puts it back on top
   without touching the layout.

   The quote is marked up as an h2 inside the slider, so Mobile pass
   1's `h2 {font-size:25px!important}` catches it; the design sets a
   blockquote at 18/1.3. It also carries Divi's dark-layout text
   shadow, which is what makes it look doubled on a light card.

   The pagination dots are 7px white circles on a near-white card -
   invisible in the capture. Design: 10px, #D9D9D9, active #FF7043.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  /* .et_pb_row_12 is the testimonial card itself (the row carries the
     tint and the radius, not a column) */
  /* !important: Divi emits row padding into the unified stylesheet as
     `.et_pb_row_12.et_pb_row{padding:var(--gvid-space-m)!important}`, so a
     plain declaration loses however specific it is. Same for rows 13 and 19
     below. Section padding needs no !important - only rows are emitted this
     way. */
  body.page-id-987489070 .et-l--post .et_pb_row_12 {
    padding: 25px !important;
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_row_12 > .et_pb_column {
    row-gap: 25px;
  }

  /* the photo column, emitted last, belongs first */
  body.page-id-987489070 .et-l--post .et_pb_row_12 > .et_pb_column:last-child {
    order: -1;
  }

  body.page-id-987489070 .et-l--post .et_pb_image_6 img {
    height: 220px;
    object-fit: cover;
    border-radius: var(--gvid-radius-row, 20px);
    display: block;
  }

  /* the selector is long on purpose: the layout authors the quote at
     `.et_pb_slider .et_pb_slide_0.et_pb_slide .et_pb_slide_description
      .et_pb_slide_title{font-size:20px!important}` (0,5,0), so a shorter
     page-scoped selector loses even with !important. */
  body.page-id-987489070 .et-l--post .et_pb_slider .et_pb_slide .et_pb_slide_description .et_pb_slide_title {
    font-size: 18px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.03em;
    text-shadow: none;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  body.page-id-987489070 .et-l--post .et_pb_slide_content,
  body.page-id-987489070 .et-l--post .et_pb_slide_content p {
    text-shadow: none;
    font-size: 16px;
    line-height: 1.3;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  body.page-id-987489070 .et-l--post .et_pb_slider .et_pb_slide_description {
    padding: 0;
  }

  body.page-id-987489070 .et-l--post .et-pb-controllers {
    position: static;
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
  }

  body.page-id-987489070 .et-l--post .et-pb-controllers a {
    width: 10px;
    height: 10px;
    margin: 0;
    border-radius: 200px;
    background-color: #D9D9D9;
    opacity: 1;
  }

  body.page-id-987489070 .et-l--post .et-pb-controllers .et-pb-active-control {
    background-color: var(--gcid-6spcyv8qzp, #ff7043);
  }
}

/* ----------------------------------------------------------------
   2.10  CTA banner.

   Live pads the row 100px left and right, which squeezes the copy to
   a 190px measure and wraps the trial button onto two lines. Design:
   70px 25px, h2 at 30px, body at 16/1.3, button full width.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_row_13 {
    padding: var(--gvid-space-l, 70px) 25px !important;
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_row_13 > .et_pb_column {
    row-gap: 25px;
  }

  /* Mobile pass 1's blanket `h2{font-size:25px!important}` is written at
     (0,4,1); this has to out-specify it, not just repeat !important. The CTA
     is the one h2 the design draws at 30px. */
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_section_4 .et_pb_module h2 {
    font-size: 30px !important;
    color: #ffffff;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_4 .et_pb_text_inner p {
    line-height: 1.3;
    color: var(--gcid-vak449rdh1, #ede7f6);
  }
}

/* ----------------------------------------------------------------
   2.11  Blog panel.

   Panel inset handled in 2.1. Remaining: the featured images are
   220px with a 30px radius in the design and render full-bleed,
   square and at three different heights live; posts are 12px apart
   internally and 25px apart from each other; and "Read more" is the
   violet link colour, not the light blue Divi is using.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section_5 .et_pb_image img {
    height: 220px;
    object-fit: cover;
    border-radius: var(--gvid-radius-card, 30px);
    display: block;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_5 .et_pb_row > .et_pb_column {
    row-gap: 12px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_5 > .et_pb_row:first-child > .et_pb_column {
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_row_15 {
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_5 .et_pb_text_inner a {
    color: var(--gcid-bs9uwvujec, #7c4dff);
    font-weight: 500;
  }

  /* the date/region line is 14px in the design and inherits 18px live.
     Addressed as "the text module straight after the featured image" -
     `.et_pb_text:first-of-type` does NOT work here, because :first-of-type
     keys on the element type (all these modules are DIVs) and the first DIV
     in the column is the image. */
  body.page-id-987489070 .et-l--post .et_pb_row_15 .et_pb_image + .et_pb_text .et_pb_text_inner p {
    font-size: 14px;
    line-height: 1.3;
  }
}

/* ----------------------------------------------------------------
   2.12  FAQ.

   Close: the rows are already inset, radius 20 and tinted. What
   differs is the padding (20px all round vs the design's
   12px 12px 12px 20px), the question size (16 vs 18), the 12px
   stack gap, and the toggle glyph, which the design draws as an
   orange chevron inside a 36px white disc.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_toggle {
    padding: 12px 12px 12px 20px;
    border-radius: var(--gvid-radius-row, 20px);
  }

  body.page-id-987489070 .et-l--post .et_pb_section_6 .et_pb_row > .et_pb_column {
    row-gap: 12px;
  }

  body.page-id-987489070 .et-l--post .et_pb_section_6 > .et_pb_row:first-child > .et_pb_column {
    row-gap: 25px;
  }

  body.page-id-987489070 .et-l--post .et_pb_toggle_title {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    padding-right: 48px;
  }

  body.page-id-987489070 .et-l--post .et_pb_toggle_title::before {
    top: 50%;
    right: 0;
    width: 36px;
    height: 36px;
    margin-top: -18px;
    line-height: 36px;
    text-align: center;
    border-radius: 200px;
    background-color: #ffffff;
    color: var(--gcid-6spcyv8qzp, #ff7043);
  }
}

/* ----------------------------------------------------------------
   2.13  Subscribe card.

   The only place on the page still rendering raw browser chrome: the
   form is a Divi code module with an unstyled <input> and <button>,
   so it shows a grey-bordered field and a native OS button on an
   orange card. Design: heading 20/1.2 left-aligned, then a
   transparent field with a white hairline and a 100px radius, then a
   full-width white pill with orange text, 20px apart.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_row_19 {
    padding: 25px !important;
    row-gap: var(--gvid-space-s, 20px);
    border-radius: var(--gvid-radius-row, 20px);
  }

  body.page-id-987489070 .et-l--post .et_pb_row_19 > .et_pb_column {
    row-gap: var(--gvid-space-s, 20px);
  }

  body.page-id-987489070 .et-l--post form.ss-subscribe {
    display: flex;
    flex-direction: column;
    gap: var(--gvid-space-s, 20px);
  }

  body.page-id-987489070 .et-l--post form.ss-subscribe input[type="email"] {
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.2;
    color: #ffffff;
    background: transparent;
    border: 1px solid #ffffff;
    border-radius: 100px;
    padding: 13px 20px;
    outline: none;
  }

  body.page-id-987489070 .et-l--post form.ss-subscribe input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.75);
  }

  body.page-id-987489070 .et-l--post form.ss-subscribe button {
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    color: var(--gcid-6spcyv8qzp, #ff7043);
    background: #ffffff;
    border: 0;
    border-radius: 100px;
    padding: 15px 30px;
    cursor: pointer;
  }
}


/* ================================================================
   Homepage final - card icons, circular chevrons, "More solutions"
   Added 2026-08-17. Appended BELOW the 2026-08-17 page-frame block,
   the 2026-08-17 "Mobile pass 1" block and the 2026-08-17 "Mobile
   pass 2" block. None of their rules are removed. Revert marker for
   homepage-final/theme_apply.py: "Homepage final".

   GROUND TRUTH for every number here:
     390 numbers - managed-agents-design-export/"Mobile Views.dc.html",
       column data-screen-label="Mobile Homepage", lines 22-249.
     desktop numbers - "Homepage.dc.html", lines 77-194.
   Both are inline-styled design documents, so the numbers are
   transcribed from the design source, not eyeballed off a picture.

   WHY THIS BLOCK HAS DESKTOP RULES, unlike pass 1 and pass 2.
   Those passes only restyled things that already existed, so they
   could be confined to @media (max-width: 980px) and prove desktop
   had not moved. This pass adds CONTENT - five card icons, five
   chevrons, three features icons and one button - and content appears
   at every width. The desktop design draws the same icons at 48px and
   the same white 48px chevron disc, so the desktop rules below
   implement the desktop design rather than leave new modules
   unstyled. Nothing that existed before this pass is restyled at
   desktop widths; see the report's element-by-element fingerprint
   comparison at 1440 and 2560.

   NO POSITIONAL SELECTORS. Every hook is an ss-* class the module
   itself carries, set through Divi's own "CSS ID & Classes" field
   (module.advanced.htmlAttributes.desktop.value.class):
     .ss-card                  the five solutions card columns
     .ss-card-icon             the coloured 36/48px line icon
     .ss-card-heading          the h3 between the icon and the chevron
     .ss-card-chevron          the white circular chevron (an <a>)
     .ss-feature-icon          the white icon above a features h3
     .ss-solutions-button-row  the new row at the foot of Solutions
     .ss-more-solutions        the new outlined pill
   Deliberate: the pass-2 block had to name four rows by Divi's
   positional class, and this pass is precisely what invalidated them.

   ORDINAL SHIFT - recorded because it will happen on every template.
   Inserting the "More solutions" row inside the solutions section
   pushed every later row up by one, so the pass-2 block's
   .et_pb_row_11 / _12 / _14 / _18 selectors were bumped in place to
   _12 / _13 / _15 / _19 (testimonial card, CTA banner, blog cards,
   subscribe). Removing the five "Learn more" buttons also renumbered
   the buttons, so the pass-2 comment's .et_pb_button_6 ("More
   Features") is now _2. The rule Divi follows, verified against the
   rendered page: numbering is per module TYPE, 0-based, in document
   order, within one Theme Builder layout. So adding a module of a
   type the layout did not previously use (the icons) shifts nothing;
   adding a row shifts rows and columns; removing buttons shifts
   buttons.
   ================================================================ */

/* ----------------------------------------------------------------
   3.1  Solutions cards - icon left of the heading, chevron top-right.

   Design:                         mobile   desktop
     card padding                    25       35
     icon                            36       48
     icon -> heading gap             12       20
     white chevron disc              36       48
     chevron glyph                   18       24   (#FF7043)

   The icon and the chevron are taken out of flow instead of being
   spaced by the column's flex gap, because the design puts them on
   the same line as the heading and a Divi 5 column is a single-column
   flex container - every module in it is its own row. The design's
   own markup does the same thing: its card header is a flex row with
   the chevron pushed to the right edge.

   The heading reserves room on BOTH sides. Left is the icon's box;
   right matters because the chevron is out of flow and a long enough
   h3 would otherwise run underneath it.

   DIVI 5 TRAP, worth an hour to anyone who does not know it. Every
   Divi 5 module is ALREADY `display:flex; flex-direction:column`
   (the .et_flex_module class). So on a module:
     align-items    controls the HORIZONTAL axis
     justify-content controls the VERTICAL axis
   The obvious `display:flex; align-items:center` to vertically centre
   the heading text does the opposite - it centres it horizontally and
   shrink-wraps .et_pb_text_inner, which is why the h3 first rendered
   37px right of where the design puts it. The correct pair is
   `justify-content: center` and no align-items at all (leaving Divi's
   stretch, which keeps .et_pb_text_inner full width and the text
   left-aligned at the padding edge). Measured: inner at dx 48, dy 6
   inside a 36px box, which is the design.
   ---------------------------------------------------------------- */
.ss-card {
  position: relative;
}

.ss-card > .ss-card-icon,
.ss-card > .ss-card-chevron {
  position: absolute;
  top: 35px;
  margin: 0;
  line-height: 1;
}

.ss-card > .ss-card-icon {
  left: 35px;
}

/* the disc: background and radius are also set on the module itself
   so it survives being copied into another template without this
   stylesheet; the size is repeated per breakpoint below.
   align-items + justify-content + line-height:1 together centre the
   glyph in the disc - see the trap above for why it is that pair. */
.ss-card > .ss-card-chevron {
  right: 35px;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 200px;
  background: #ffffff;
}

.ss-card > .ss-card-heading {
  padding-left: 68px;
  padding-right: 68px;
  min-height: 48px;
  justify-content: center;
}

/* ----------------------------------------------------------------
   3.2  Features cards - white icon above the heading.

   The 35px gap between the icon and the h3 comes from the module's
   own margin-bottom (the gvid-space-m token, editable in the
   builder) at desktop. It cannot at mobile: pass 2 zeroes every
   module margin with !important so that the column's flex gap is the
   only thing spacing modules, so the 20px that tops that column's
   15px gap up to the design's 35 is re-declared in the media query
   below.
   ---------------------------------------------------------------- */
.ss-feature-icon {
  line-height: 1;
}

/* ----------------------------------------------------------------
   3.3  "More solutions".

   Pass 2 shrank every button in the solutions section to a 16px /
   10px-22px inline pill, correctly: at that time the only buttons
   there were the five "Learn more" pills, which the design does not
   draw at all. Those buttons are gone, so those two rules now aim at
   this button instead and have to be put back to the design's shared
   button shape - 18px/500, 15px 30px, full content width, centred.

   Overridden here rather than deleted from the pass-2 block, so that
   block stays a readable record of what pass 2 did. Every override
   below out-specifies its pass-2 counterpart on real specificity, not
   on source order.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  /* pass 2: `.et_pb_section_1 .et_pb_row > .et_pb_column{padding:25px}`
     gives every column in the section card padding. This row is not a
     card. (0,6,1) vs (0,5,1). */
  body.page-id-987489070 .et-l--post .ss-solutions-button-row.et_pb_row > .et_pb_column.et_flex_column {
    padding: 0;
    row-gap: 0;
  }

  /* pass 2: `.et_pb_section_1 .et_pb_button_module_wrapper{align-self:flex-start}`
     kept the Learn-more pills inline. (0,5,1) vs (0,4,1). */
  body.page-id-987489070 .et-l--post .ss-solutions-button-row > .et_pb_column > .et_pb_button_module_wrapper {
    align-self: stretch;
  }

  /* pass 2: `.et_pb_section_1 .et_pb_button{font-size:16px;padding:10px 22px}`.
     (0,6,1) vs (0,5,1). `max-width:none` is the load-bearing one -
     Divi ships `.et_pb_module.et_pb_button:not(.et_block_module)
     {max-width:max-content}`, so width:100% alone renders at the text
     width. Same trap pass 2 documents for "More Features". */
  body.page-id-987489070 .et-l--post .ss-solutions-button-row .et_pb_button_module_wrapper .et_pb_button.ss-more-solutions {
    display: block;
    width: 100%;
    max-width: none;
    text-align: center;
    font-size: 18px;
    padding: 15px 30px;
  }

  /* ---- 390 geometry for 3.1 and 3.2 ---- */
  body.page-id-987489070 .et-l--post .ss-card > .ss-card-icon {
    top: 25px;
    left: 25px;
  }

  body.page-id-987489070 .et-l--post .ss-card > .ss-card-chevron {
    top: 25px;
    right: 25px;
    width: 36px;
    height: 36px;
  }

  body.page-id-987489070 .et-l--post .ss-card > .ss-card-heading {
    padding-left: 48px;
    padding-right: 48px;
    min-height: 36px;
  }

  /* beats pass 2's
     `.et_pb_column > .et_pb_module{margin-bottom:0!important}` */
  body.page-id-987489070 .et-l--post .ss-feature-icon.et_pb_module {
    margin-bottom: 20px !important;
  }
}

/* ================================================================
   Sticky header vs Divi's entrance-animation overflow guard
   Added 2026-08-17. Observed against Divi 5.9.0 (parent theme).
   Applies sitewide; not scoped to a page id on purpose.

   THE DEFECT
   The Theme Builder header (layout 987493208) is `position: sticky;
   top: 0`. It pinned on 357 of 400 published URLs and was defeated on
   43 (13 pages + 30 posts). Divi 5.9.0's
     wp-content/themes/Divi/includes/builder-5/visual-builder/build/
     script-library-animation.js
   contains, at init:

     i = [].concat(window?.et_animation_data ?? [],
                   window?.diviElementAnimationData ?? []);
     if (void 0 !== i && 0 !== i.length) {
       $("body").css("overflow-x", "hidden"),
       $("#page-container").css("overflow-y", "hidden");

   so ANY page carrying at least one Divi entrance animation gets an
   INLINE `overflow-y: hidden` on #page-container, set once and never
   cleared. Measured consequence, logged out at 1440 on all 43:
   #page-container computes `overflow-x: auto / overflow-y: hidden`
   (per CSS Overflow 3, a `visible` axis beside a non-visible one
   computes to `auto`), so it becomes the nearest scroll container.
   Its scrollHeight equals its clientHeight exactly, so a sticky child
   has zero travel and simply scrolls away. It never showed before
   because the previous header was `position: fixed`, which ignores
   ancestor overflow.

   WHAT DIVI'S GUARD ACTUALLY PROTECTS - AND IT IS REAL
   Divi's own animations.css plus the JS transform builder show which
   entrance styles can extend the SCROLLABLE overflow region (only the
   end direction is scrollable, so downward and rightward count):
     slideBottom  translate3d(0, +2*intensity%, 0)   grows the doc DOWN
     slideRight   translate3d(+2*intensity%, 0, 0)   grows the doc RIGHT
     fadeBottom   translate3d(0, 100%, 0)            grows the doc DOWN
     bounceBottom translate3d(0, 200px, 0)           grows the doc DOWN
   A census of all 400 rendered URLs found slideBottom on 19 of the 43
   and slideRight on 11, so the guard is NOT a no-op on this site and a
   bare override would have been wrong. Measured on
   /what-clients-want/ with the guard neutralised in-browser: document
   height never moved (3200px throughout) but the page became genuinely
   horizontally scrollable during the entrance animations -
   window.scrollX reached 42px. Divi's own `body{overflow-x:hidden}`
   does NOT contain that, because the viewport scroll comes from `html`
   (overflow-x: visible) - the thing that was containing it was
   #page-container's coerced `overflow-x: auto`. So removing the guard
   without replacing it reintroduces horizontal overflow.

   THE FIX: KEEP THE PROTECTION, MOVE IT OFF THE HEADER'S ANCESTOR
   #et-boc has exactly two children: the header layer (.et-l--header)
   and #et-main-area, which holds all page content and the footer.
   Every animated module lives inside #et-main-area; the hand-built
   header layout carries no animation. So the clip is re-homed one
   level down, onto the box that actually contains the moving content,
   and it engages only while an animation is actually running -
   Divi adds `.et_animated` when an entrance animation starts and
   removes it when it ends. Net effect: Divi clipped the whole
   #page-container for the entire page life; this clips a smaller box
   for roughly one second per animation. Strictly less invasive, and
   the header's nearest scrollport is the viewport again.

   `overflow: clip` rather than `hidden` because clip does not create a
   scroll container, so it cannot introduce a scrollbar and cannot
   break `position: sticky` on anything else; `hidden` is left as the
   fallback declaration for engines without `clip`.

   :not(:has(.et-l--header)) makes the rule SELF-DISABLING if a future
   Divi ever renders the header layer inside #et-main-area - it would
   then decline to clip rather than clip the header.

   The whole block is gated on @supports selector(:has(*)) so it is
   ATOMIC: an engine without :has() gets neither rule, i.e. today's
   accepted behaviour (header not sticky on those 43 URLs) instead of
   the override without its replacement guard, which would reintroduce
   the 42px horizontal overflow.

   `!important` is unavoidable on exactly one declaration: Divi sets
   the guard as an INLINE style, and nothing but !important outranks an
   inline style in CSS. It is confined to one property on one selector,
   and it restores the value the header layout itself already declares
   (#page-container{overflow:visible}) rather than inventing one.

   BEHAVIOUR UNDER A DIVI UPGRADE
   - Divi stops setting the inline guard: rule 1 becomes a no-op
     restating `visible`; rule 2 still contains animation overflow, so
     the protection survives Divi dropping its own.
   - Divi renames or removes #page-container: its guard is keyed on the
     same selector, so the guard disappears with it and sticky works
     anyway. Self-cancelling, not a silent break.
   - Divi renames the animation script or the .et_animated class:
     rule 2 stops engaging; rule 1 still keeps the header sticky. The
     residual exposure is a transient horizontal overflow during
     animations - the pre-fix Divi behaviour minus the broken header.
   - Divi moves the guard to a different element (e.g. #et-boc): the
     header would lose sticky again. No CSS can pre-empt that. Detect
     it in about two minutes by re-running
     sticky-fix/s9_sticky_sweep.py after any Divi upgrade -- it reads
     the guard's element and property straight out of the shipped
     script and fails loudly if either moved.

   Verified logged out with ?two_nooptimize=1: sticky pins at top 0 on
   43/43 previously-broken URLs and stays working on 357/357 others;
   zero document-height growth, zero document-width growth and zero
   horizontal scroll on all 43 during animations; all animations still
   play; /fresha-alternative/ (the open D6 float bug, ~25 comparison
   pages) measures byte-for-byte identical before and after, so this
   neither masks nor worsens it.

   REVERT
     cd .../seo-meta/sticky-fix && \
       uv run --with-requirements ../requirements.txt python3 \
       revert_sticky_fix.py --yes
   ---------------------------------------------------------------- */
@supports selector(:has(*)) {

  /* 1. The site's own authored overflow wins over the animation
        script's blanket inline override, so #page-container stops
        being a scroll container and the sticky header regains travel. */
  #page-container {
    overflow-y: visible !important;
  }

  /* 2. Divi's protection, re-homed onto the box that actually holds
        the animated content, and only while one is running. */
  #page-container #et-main-area:has(.et_animated):not(:has(.et-l--header)) {
    overflow: hidden;
    overflow: clip;
  }
}

/* ================================================================
   Homepage hero reel: dim + play button + video dialog
   Added 2026-08-17. Divi 5.9.0 (parent theme), child divi-simpleworld.
   SIXTH appended block. Appended BELOW the sticky-header
   @supports selector(:has(*)) block; the width fix, the mobile
   responsive block, the mobile-match block, the html:root phone-token
   override and that sticky block are all untouched.

   WHAT
   The homepage hero picture gains the treatment the design already
   draws for it -- the image dimmed and a translucent circular play
   button centred on it -- and pressing that button opens the 45-second
   Simple Salon reel in a native <dialog>. The button and the dialog are
   created by js/ss-hero-video.js; everything visual is here.

   WHY THE BUTTON EXISTS NOW WHEN IT DELIBERATELY DID NOT BEFORE
   The homepage build recorded the play button as knowingly omitted:
   "There is no video behind it; a play button that does nothing is
   worse than none." A reel now exists (encoded at three resolutions and
   uploaded to the media library), so the reason for the omission is
   gone. This is the design being completed, not overridden.

   TRANSCRIBED, NOT EYEBALLED
   Every number below is read out of the design source, which is
   inline-styled and therefore literally readable:
     managed-agents-design-export/Homepage.dc.html:69-73  (desktop)
       container  position:relative; border-radius:30px; overflow:hidden
       img        width:100%; height:730px; object-fit:cover;
                  filter: brightness(0.85)
       circle     left:50%; top:50%; translate(-50%,-50%);
                  100px x 100px; border-radius:200px;
                  background: rgba(255,255,255,0.3); cursor:pointer
       glyph      svg 38x40, viewBox "0 0 38 40", fill #000000
     managed-agents-design-export/Mobile Views.dc.html:45-49  (390)
       container  position:relative; height:505px; border-radius:30px
       img        object-fit:cover; filter: brightness(0.85)
       circle     70px x 70px; background: rgba(255,255,255,0.3)
       glyph      svg 27x28, same viewBox and path, fill #2F2F2F

   THE DIM IS brightness(0.85), NOT AN 85% BLACK OVERLAY
   Worth stating because the two are wildly different: the design
   applies `filter: brightness(0.85)` to the image, i.e. it keeps 85% of
   the luminance (roughly a 15% black veil). An "85% dim overlay" would
   be nearly opaque black. This block implements what the design says.

   GLYPH COLOUR IS THE TOKEN, NOT THE DESIGN'S #000000
   The design fills the desktop triangle #000000 and the mobile one
   #2F2F2F -- an internal inconsistency in the export. Both use the
   --text token value (#2F2F2F, gcid-90suxw02k0) here, following the
   precedent already recorded for the features heading, where the design
   also asked for pure #000000 and live deliberately stayed on the text
   token rather than hard-coding an off-system colour.

   NO ORDINAL-KEYED SELECTOR FOR THE NEW FURNITURE
   `.ss-hero-media` is added at runtime by the JS to the hero's
   `.et_pb_image_wrap`, so every rule for the button and the dialog is
   keyed on a class, not on a Divi per-type counter. The one rule that
   does name `.et_pb_image_0` -- the dim -- is additionally qualified by
   `.et_pb_section_0`, because sections do NOT renumber when a row is
   inserted, so the pair survives the edit that would otherwise re-aim a
   bare image ordinal at the wrong picture.

   WHY THE BUTTON ANCHORS TO .et_pb_image_wrap AND NOT THE MODULE
   Measured: the module root `.et_pb_image_0` is 1440x730 at 1440, while
   the picture inside it renders 1440x887.81 and OVERFLOWS the module by
   158px (`.et_pb_image_wrap` is overflow:visible). `.et_pb_image_wrap`
   is already position:relative and is exactly the picture's box, so
   centring on it puts the button on the picture's centre as the design
   does. Centring on the module would sit it 79px high.

   ACCESSIBILITY
   The control is a real <button type="button">, so Enter and Space
   activate it with no key handling of our own. The focus ring is
   --primary (#FF7043) via the gcid custom property, 3px with a 3px
   offset so it reads against both the photograph and the white circle.
   The dialog is opened with showModal(), which supplies focus entry,
   focus trapping, Escape-to-close and focus return from the platform.
   Captions are burnt into the picture, so there is no <track>.

   REVERT
     cd .../seo-meta/hero-video && \
       uv run --with-requirements ../requirements.txt python3 \
       revert_hero_video.py --yes
   ---------------------------------------------------------------- */

/* ----------------------------------------------------------------
   1. The dim. Design: filter: brightness(0.85) on the hero image.
   Applied in CSS rather than by the JS on purpose: a filter added
   after the script runs would visibly darken an already-painted
   hero, and this image is the measured LCP element. The cost of
   the choice is that a visitor whose JS never arrives sees a hero
   dimmed by 15% with no button on it -- a slightly moodier
   photograph, not a broken state.
   ---------------------------------------------------------------- */
body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_image_0 img {
  filter: brightness(0.85);
}

/* ----------------------------------------------------------------
   2. The play button. Desktop geometry (100px circle, 38x40 glyph);
   the phone override is in section 4.

   left/top 50% is the STARTING position and the no-measurement
   fallback; it is exact wherever the wrap and the picture are the
   same box (measured true at 360, 390, 1440 and 2560). Between
   roughly 390 and 980 they are not -- the hero picture is
   `height: 505px` with an auto width, so it is ~360px wide inside a
   full-width flex wrap and sits at its start, which left the button
   19.91px off centre at 430 and 188.95px off at 768. The JS
   overwrites left/top with the measured picture centre and keeps it
   in step via a ResizeObserver. See the `place()` comment in
   js/ss-hero-video.js for why this is not done in CSS.
   ---------------------------------------------------------------- */
.ss-hero-media {
  /* Already position:relative from Divi; restated so this block does
     not silently depend on that staying true. */
  position: relative;
}

.ss-hero-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);

  width: 100px;
  height: 100px;
  border-radius: 200px;
  background: rgba(255, 255, 255, 0.3);

  /* Full reset: the parent theme and the UA both style bare <button>
     (background, border, padding, font), and any of it would distort a
     100px circle. */
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  line-height: 0;
  box-shadow: none;

  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;

  transition: background-color 150ms ease-out, transform 150ms ease-out;
}

.ss-hero-play svg {
  width: 38px;
  height: 40px;
  display: block;
  /* See the header note: the token, not the design's #000000. */
  fill: var(--gcid-90suxw02k0, #2F2F2F);
}

/* Hover/active feedback is NOT in the design -- the design gives the
   circle `cursor: pointer` and nothing else. Added deliberately: a
   45-second reel with sound is a big commitment for one click, and the
   control should acknowledge the pointer before it is pressed. Remove
   these two rules to return to exactly what the design draws. */
.ss-hero-play:hover {
  background: rgba(255, 255, 255, 0.45);
  transform: translate(-50%, -50%) scale(1.04);
}

.ss-hero-play:active {
  transform: translate(-50%, -50%) scale(0.98);
}

/* Keyboard focus only -- a mouse press should not leave a ring behind.
   --primary via its Global Colour custom property rather than the
   literal hex, so a token change carries. */
.ss-hero-play:focus-visible {
  outline: 3px solid var(--gcid-6spcyv8qzp, #FF7043);
  outline-offset: 3px;
  background: rgba(255, 255, 255, 0.45);
}

@media (prefers-reduced-motion: reduce) {
  .ss-hero-play,
  .ss-hero-play:hover,
  .ss-hero-play:active {
    transition: none;
    transform: translate(-50%, -50%);
  }
}

/* ----------------------------------------------------------------
   3. The dialog.

   The UA gives <dialog> a border, padding, background, an auto margin
   and a max-width/max-height of calc(100% - 6px - 2em); all of it has
   to go before the element can be a full-viewport stage.

   dvh before vh: on a phone the URL bar makes vh the LARGER, static
   value, so 100vh alone puts part of the stage under browser chrome.
   The vh line stays first as the fallback for engines without dvh.
   ---------------------------------------------------------------- */
.ss-hero-modal {
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  inset: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  max-height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}

.ss-hero-modal[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ss-hero-modal::backdrop {
  background: rgba(0, 0, 0, 0.85);
}

.ss-hero-modal-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;
}

/* The reel carries BURNT-IN captions that move around the frame, so the
   frame must never be cropped. Sizing the box to 16/9 and capping it on
   BOTH axes means the whole frame is always visible, and object-fit
   contain is the guarantee if a variant's aspect is ever not exactly
   16:9 (480p is 854x480 = 1.7792, not 1.7778). */
.ss-hero-video {
  display: block;
  width: min(92vw, calc(82vh * 16 / 9));
  width: min(92vw, calc(82dvh * 16 / 9));
  aspect-ratio: 16 / 9;
  height: auto;
  max-width: 92vw;
  max-height: 82vh;
  max-height: 82dvh;
  object-fit: contain;
  background: #000000;
  border-radius: var(--gvid-radius-row, 20px);
}

/* Fixed to the viewport rather than to the video's corner: the video is
   centred and capped at 92vw/82vh, so a viewport corner is always clear
   of it at every width measured (at 390 the video is 358.8x201.8 in an
   844-tall viewport; at 1440 it is 1280x720 in 900). Anchoring to the
   video's own corner would instead overlap the picture on small screens.
   44x44 meets the Build Guide's minimum hit target. */
.ss-hero-close {
  position: fixed;
  top: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  border-radius: 200px;

  -webkit-appearance: none;
  appearance: none;
  border: 0;
  margin: 0;
  padding: 0;
  font: inherit;
  line-height: 0;

  background: rgba(0, 0, 0, 0.55);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
}

.ss-hero-close:hover {
  background: rgba(0, 0, 0, 0.75);
}

.ss-hero-close:focus-visible {
  outline: 3px solid var(--gcid-6spcyv8qzp, #FF7043);
  outline-offset: 3px;
}

/* ----------------------------------------------------------------
   4. Phone and tablet. 980px is the child theme's existing shared
   mobile breakpoint -- reused, not a new one, so the site keeps a
   single breakpoint set (see the open decision on 980/1240).
   Design at 390: 70px circle, 27x28 glyph.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  .ss-hero-play {
    width: 70px;
    height: 70px;
  }

  .ss-hero-play svg {
    width: 27px;
    height: 28px;
  }

  .ss-hero-video {
    /* More of the width on a phone: at 390 the frame is only ~202px tall,
       so every pixel of width is legibility for the burnt-in captions. */
    width: min(96vw, calc(82vh * 16 / 9));
    width: min(96vw, calc(82dvh * 16 / 9));
    max-width: 96vw;
  }

  .ss-hero-close {
    top: 10px;
    right: 10px;
  }
}


/* ================================================================
   PERF FIXES -- appended 2026-08-17. BLOCK 7 of this stylesheet.
   Blocks 1-6 above (width fix, mobile responsive, mobile-match, the
   html:root phone-token override, the sticky-header @supports block,
   the hero-video block) are UNTOUCHED -- this file is written as a
   pure byte suffix and that is asserted before it is uploaded.

   Two measured defects on the homepage hero, both pre-existing and
   both reported (not fixed) by the hero-video pass.

   No ordinal-keyed selector is introduced: `.et_pb_image_0` is the
   only ordinal named and it is qualified by `.et_pb_section_0`,
   matching the convention the hero-video block already established --
   sections do not renumber when a row is inserted, image modules do.

   REVERT
     cd .../seo-meta/perf-fixes && \
       uv run --with-requirements ../requirements.txt python3 \
       revert_perf_fixes.py --yes
   ================================================================ */

/* ----------------------------------------------------------------
   7.1  The hero's 30px corner radius, so it is actually visible.

   TRANSCRIBED, not eyeballed. Homepage.dc.html:69 wraps the hero in
     <div style="position: relative; width: 100%;
                 border-radius: 30px; overflow: hidden;">
   so 30px is the design's number and --gvid-radius-card is already
   that value.

   MEASURED before: the module `.et_pb_image_0` carries
   border-radius: 30px and is 1440x730, but the picture inside renders
   1440x888 with `overflow: visible`, so the module's radius clips
   nothing and the <img> itself computed `border-radius: 0px` above
   980. The radius was therefore visible ONLY below 980, where the
   mobile block (2.6b) puts it on the image.

   The fix puts it on the same element the mobile block does, so the
   two agree and there is one mechanism rather than two.

   NOT DONE, deliberately: the design also gives that image
   `height: 730px; object-fit: cover` and live renders it 888px tall
   at its natural aspect, overflowing the 730px module by 158px. That
   is a second, larger discrepancy -- correcting it re-crops the
   measured LCP image and moves every section below it up 158px, which
   is a design decision, not a radius fix. One line changes it: add
   `height: 730px; object-fit: cover;` to the rule below.
   ---------------------------------------------------------------- */
body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_image_0 img {
  border-radius: var(--gvid-radius-card, 30px);
}

/* ----------------------------------------------------------------
   7.2  The hero fills its container between 390 and 980.

   MEASURED before: block 2.6b gives the hero image `height: 505px`
   with an auto width, so its width is dictated by the art-directed
   portrait source's aspect (780x1094) -- 360.05px -- while the wrap
   is the full column width. Left-aligned inside it:

       viewport   wrap width   picture width   empty grey
          390        360.00        360.00           0.00
          430        400.00        360.17          39.83
          768        738.00        360.05         377.89

   `width: 100%` restores the design's own declaration
   (`width: 100%; object-fit: cover`, Homepage.dc.html:70). The
   existing `object-fit: cover` then crops rather than stretches, so
   the photograph is never distorted.

   WHY THE RULE NAMES <picture> AND NOT ONLY THE <img>.  Measured, and
   it cost a deploy round trip: `img { width: 100% }` alone changes
   nothing at all -- computed width stayed 360.109px at 768 with the
   declaration matching and winning the cascade. `.et_pb_image_wrap` is
   `display: flex`, the ss-image-delivery mu-plugin wraps the image in a
   `<picture>`, and that <picture> is therefore a FLEX ITEM: its main-axis
   size is its content size, so it shrink-wraps the img, and the img's
   `width: 100%` then resolves against the picture it is itself sizing.
   Sizing the flex item breaks the circularity; the img rule is kept so
   the pair still works if the <picture> wrapper is ever turned off.

   A SECOND EFFECT WORTH NAMING: this removes the root cause of the
   centring bug the hero-video pass fixed in JavaScript. With the
   picture and the wrap the same box at every width, the button's CSS
   fallback (left/top 50%) is exact everywhere and the ResizeObserver
   has nothing left to correct. The JS is left in place -- it is
   measured correct and is the belt to this braces.
   ---------------------------------------------------------------- */
@media (max-width: 980px) {
  body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_image_0 .et_pb_image_wrap > picture,
  body.page-id-987489070 .et-l--post .et_pb_section_0 .et_pb_image_0 img {
    width: 100%;
  }
}

/* ----------------------------------------------------------------
   7.3  Click-to-play post reel.

   The one rule the poster-plus-click <video> in the two "5 signs"
   posts needs: without it the element renders at its `width="1280"`
   attribute and overflows a 390px viewport by 890px.

   BUILT CENTRALLY ON PURPOSE. Thirteen further published posts still
   carry a `divi/video` module with an inline full-size MP4, so this is
   a class and a shared rule rather than an inline style attribute on
   two elements -- converting the rest is then a content edit with no
   second copy of the styling.

   `height: auto` with the element's own width/height attributes lets
   the browser reserve the 16:9 box before the poster decodes, so the
   swap costs no layout shift.
   ---------------------------------------------------------------- */
.ss-post-reel {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--gvid-radius-row, 20px);
  background-color: #000000;
}

/* ---- ss-yt facade (yt-facade pass, 2026-08-18) ---- */
/* Click-to-play stand-in for a YouTube embed. Nothing reaches Google until
   the visitor presses play; see js/ss-yt-facade.js for the swap.

   16/9 is not a choice -- it is the measured geometry of every embed being
   replaced (390x220, 680x383 and 960x540 all reduce to 16:9), so the facade
   occupies exactly the box the iframe did and nothing below it moves. */
.ss-yt {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 3px;
  background: #000;
}
.ss-yt__poster {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* The control is an <a> to the video on YouTube, upgraded by JS to play in
   place. Without JS it is a working link, not a dead button. */
.ss-yt__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.ss-yt__play::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.15);
  transition: background 0.2s ease;
}
.ss-yt__play:hover::before,
.ss-yt__play:focus-visible::before { background: rgba(0, 0, 0, 0.3); }
.ss-yt__glyph {
  position: relative;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease, background 0.2s ease;
}
.ss-yt__play:hover .ss-yt__glyph { transform: scale(1.06); background: #fff; }
.ss-yt__glyph svg { width: 27px; height: 28px; margin-left: 4px; }
.ss-yt__play:focus-visible {
  outline: 3px solid var(--gcid-6spcyv8qzp, #FF7043);
  outline-offset: 3px;
}
.ss-yt__frame { display: block; width: 100%; height: 100%; border: 0; }
@media (min-width: 981px) {
  .ss-yt__glyph { width: 100px; height: 100px; }
  .ss-yt__glyph svg { width: 38px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .ss-yt__play::before,
  .ss-yt__glyph { transition: none; }
  .ss-yt__play:hover .ss-yt__glyph { transform: none; }
}

/* ---- ss-cta phone heading (shared-sections pass, 2026-08-18) ---- */
/* The shared CTA band's H2 is 60px desktop / 40px tablet / 30px phone in the
   design. Divi emits all three from the module, but the sitewide mobile scale
   above is !important at (0,4,1) and wins on the phone breakpoint. One class
   more (0,5,1) restores the designed size, for every page that references the
   shared band -- see this file's header for why the scale itself is left
   alone. Desktop and tablet are untouched: they already measure 60px and 40px. */
@media (max-width: 767px) {
  .et-l--post .et_builder_inner_content .et_pb_section .ss-cta .et_pb_module h2,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-cta .et_pb_module h2 {
    font-size: 30px !important;
  }
}

/* ---- shared FAQ band -------------------------------------------------
   The homepage's FAQ styling is scoped to `body.page-id-987489070` -- as are
   103 other rules in this file. Lifting the section into a global layout
   moves the markup but not the CSS, so on every other page the toggle title
   lost `padding-right: 48px` and the question text ran underneath the chevron
   disc (measured: title padding `0 48px 0 0` on the homepage vs `0 0 10px`
   elsewhere, title left edge 36px vs 15px).

   These are the same declarations, re-keyed on the section's own class so
   they travel with the shared layout. The homepage's page-id copies are left
   in place: they are identical in effect, and removing them is a separate
   change that would need the homepage re-verified.

   Keyed on a CLASS, not `.et_pb_section_6` as the homepage rules are --
   Divi renumbers per-type ordinals whenever a section is inserted, and this
   band is now inserted into six different pages at different positions. */
@media (max-width: 980px) {
  .ss-faq .et_pb_toggle {
    padding: 12px 12px 12px 20px;
    border-radius: var(--gvid-radius-row, 20px);
  }

  .ss-faq .et_pb_row > .et_pb_column {
    row-gap: 12px;
  }

  .ss-faq > .et_pb_row:first-child > .et_pb_column {
    row-gap: 25px;
  }

  .ss-faq .et_pb_toggle_title {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    padding-right: 48px;
  }

  .ss-faq .et_pb_toggle_title::before {
    top: 50%;
    right: 0;
    width: 36px;
    height: 36px;
    margin-top: -18px;
    line-height: 36px;
    text-align: center;
    border-radius: 200px;
    background-color: #ffffff;
    color: var(--gcid-6spcyv8qzp, #ff7043);
  }
}

/* ---- sticky header on phones ----------------------------------------
   The header held at the top on desktop and scrolled away on every phone.
   Measured at 390: `position: relative`, top -1500 after scrolling; at 1440:
   `position: sticky`, top 0. The site owner spotted it in review.

   Cause was self-inflicted, not Divi. The mobile-nav pass set

       @media (max-width: 980px) { body .et-l--header { position: relative } }

   to give the dropdown panel a stacking context, with the comment "visually
   identical to static" — true for a page at rest, and it silently removed
   stickiness for exactly the viewport the owner cares most about.

   `sticky` is a positioned element too, so it establishes the same stacking
   context and keeps the z-index working; the header chain is already forced
   to `overflow: visible` by the block above, which is what sticky needs.
   Same selector and specificity as the rule it supersedes, later in the
   file, so it wins on order without touching the original block. */
@media (max-width: 980px) {
  body .et-l--header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
}

/* ---- shared testimonial carousel -------------------------------------
   Same two problems as the FAQ, plus a third. The homepage's version is
   keyed on `body.page-id-987489070` AND on per-type ordinals
   (`.et_pb_row_12`, `.et_pb_image_6`) — and Divi renumbers those per page,
   so on any other page they address the wrong module entirely. These are the
   same declarations re-keyed on the section's class.

   `.et-l--post` is kept in front of `.ss-testimonials` deliberately: the
   layout emits the quote at
   `.et_pb_slider .et_pb_slide_0.et_pb_slide .et_pb_slide_description
    .et_pb_slide_title{font-size:20px!important}` (0,5,0) into
   et-core-unified-*.min.css, which loads AFTER this file. A class-only
   selector ties on specificity and loses on order, so it needs the extra
   class to win. */
@media (max-width: 980px) {
  .et-l--post .ss-testimonials .et_pb_row,
  .et-l--body .ss-testimonials .et_pb_row {
    padding: 25px !important;
    row-gap: 25px;
  }

  .et-l--post .ss-testimonials .et_pb_row > .et_pb_column,
  .et-l--body .ss-testimonials .et_pb_row > .et_pb_column {
    row-gap: 25px;
  }

  /* the photo column is emitted last and belongs first on a phone */
  .et-l--post .ss-testimonials .et_pb_row > .et_pb_column:last-child,
  .et-l--body .ss-testimonials .et_pb_row > .et_pb_column:last-child {
    order: -1;
  }

  .et-l--post .ss-testimonials .et_pb_image img,
  .et-l--body .ss-testimonials .et_pb_image img {
    height: 220px;
    object-fit: cover;
    border-radius: var(--gvid-radius-row, 20px);
    display: block;
  }

  .et-l--post .ss-testimonials .et_pb_slider .et_pb_slide .et_pb_slide_description .et_pb_slide_title,
  .et-l--body .ss-testimonials .et_pb_slider .et_pb_slide .et_pb_slide_description .et_pb_slide_title {
    font-size: 18px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.03em;
    text-shadow: none;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  .et-l--post .ss-testimonials .et_pb_slide_content,
  .et-l--post .ss-testimonials .et_pb_slide_content p,
  .et-l--body .ss-testimonials .et_pb_slide_content,
  .et-l--body .ss-testimonials .et_pb_slide_content p {
    text-shadow: none;
    font-size: 16px;
    line-height: 1.3;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  .et-l--post .ss-testimonials .et_pb_slider .et_pb_slide_description,
  .et-l--body .ss-testimonials .et_pb_slider .et_pb_slide_description {
    padding: 0;
  }

  .et-l--post .ss-testimonials .et-pb-controllers,
  .et-l--body .ss-testimonials .et-pb-controllers {
    position: static;
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
  }
}

/* ---- mobile submenu collapse (nav-submenu pass, 2026-08-18) ---- */
/* The burger panel showed all 19 rows flat, which put Pricing at y=908 on a
   390px phone -- below the fold, under 16 submenu links. These rules collapse
   the two submenus and give the parents a working expand affordance.

   SPECIFICITY, because every rule here supersedes one in the 2026-08-17
   mobile-nav block above and both live inside @media (max-width: 980px):
     .ssh.ssh--open .ssh-nav .ssh-panel            (0,4,0)  <- collapsed by
     .ssh.ssh--open .ssh-nav .ssh-dd .ssh-panel    (0,5,0)
     .ssh.ssh--open .ssh-nav .ssh-link svg         (0,4,1)  <- beaten by
     .ssh.ssh--open .ssh-nav .ssh-dd > .ssh-link svg  (0,5,1)
   Later in the file AND higher specificity, so neither ordering nor a future
   re-order of the appended blocks can flip the result. The original block is
   left untouched, so desktop and the open-menu styling need no re-verification.

   `.is-open` is toggled by js/ss-mobile-nav.js. CSS alone would hide the
   submenus with no way to open them, which is worse than the flat list -- the
   two halves of this pass ship together or not at all. */
@media (max-width: 980px) {
  /* Collapsed is the resting state. */
  .ssh.ssh--open .ssh-nav .ssh-dd .ssh-panel {
    display: none;
  }

  .ssh.ssh--open .ssh-nav .ssh-dd.is-open .ssh-panel {
    display: block;
  }

  /* The parent row becomes a disclosure: label left, chevron hard right, the
     whole 44px row tappable. `.ssh-link` is plain markup from the header code
     module and is display:flex in ROW direction, so justify-content is the
     horizontal axis here -- this is not a Divi module, so landmine C1's
     flex-column inversion does not apply. */
  .ssh.ssh--open .ssh-nav .ssh-dd > .ssh-link {
    justify-content: space-between;
  }

  /* The 2026-08-17 block hides every chevron in the open panel. Restore it for
     the two dropdown parents only -- Pricing is a leaf and carries no svg. */
  .ssh.ssh--open .ssh-nav .ssh-dd > .ssh-link svg {
    display: block;
    flex: 0 0 auto;
    transition: transform 0.18s ease;
  }

  .ssh.ssh--open .ssh-nav .ssh-dd.is-open > .ssh-link svg {
    transform: rotate(180deg);
  }

  /* Divi's FAQ accordion rotates its caret the same way; the design export
     draws no open-menu state, so the site's own existing affordance is the
     reference rather than an invented one. */
  @media (prefers-reduced-motion: reduce) {
    .ssh.ssh--open .ssh-nav .ssh-dd > .ssh-link svg {
      transition: none;
    }
  }
}

/* ---- pricing plan cards (pricing pass 1, 2026-08-18) ---- */
/* See pricing/build_theme.py for the measured cause of each defect and for
   the transcribed design values. Every selector keys on a class the pricing
   PLUGIN owns, or :has() of one -- never on a Divi ordinal, which renumbers
   when a row is inserted. Scoped to the Pricing page id because
   /compareplans/ shares some of these hooks and is not verified here. */

/* ---- 1. the three stray blue rectangles ------------------------------
   Divi's factory --gcid-primary-color (#2ea3f2) still backs these CTA
   modules. The design puts the button straight on the card. */
body.page-id-987491327 .btn_starter_signup.et_pb_promo,
body.page-id-987491327 .btn_pro_signup.et_pb_promo,
body.page-id-987491327 .btn_max_signup.et_pb_promo {
  background-color: transparent;
  padding: 0;
}

/* The button itself is already #FF7043 at the design's 16px/500. Only its
   width is wrong: the design runs it the full width of the card, and Divi
   caps a button at max-content (landmine C7 -- max-width is the load-bearing
   declaration, not width). */
body.page-id-987491327 .btn_starter_signup .et_pb_button_wrapper,
body.page-id-987491327 .btn_pro_signup .et_pb_button_wrapper,
body.page-id-987491327 .btn_max_signup .et_pb_button_wrapper {
  width: 100%;
}

body.page-id-987491327 .btn_starter_signup .et_pb_promo_button.et_pb_button,
body.page-id-987491327 .btn_pro_signup .et_pb_promo_button.et_pb_button,
body.page-id-987491327 .btn_max_signup .et_pb_promo_button.et_pb_button {
  max-width: none;
  width: 100%;
  justify-content: center;
}

/* ---- 2 + 3. legibility on the violet cards ---------------------------
   ONE rule, not three overrides: every text module inside a violet card is
   white, so a module added later is legible by default. `:has()` reaches the
   card through a hook the plugin owns, so this survives a Divi renumber.

   !important is required and is not laziness: the rules being beaten are
   themselves `color:#636363!important` / `#2F2F2F!important` emitted by Divi
   into et-core-unified-*.min.css, which loads AFTER this stylesheet. */
body.page-id-987491327 .et_pb_column:has(> .pro_price) .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .pro_price) .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .pro_price) .et_pb_text_inner h3,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner h3 {
  color: #ffffff !important;
}

/* Links on the violet cards (Compare Plan Features, ADLA) stay legible but
   remain visibly links -- white with an underline rather than the cyan that
   disappears into the gradient. */
body.page-id-987491327 .et_pb_column:has(> .pro_price) .et_pb_text_inner a,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner a {
  color: #ffffff !important;
  text-decoration: underline;
}

/* ---- 4. the card shells ---------------------------------------------
   The violet cards are a flat #7C4DFF today; the design draws a gradient.
   Transcribed exactly from the export (179.923deg, not 180). */
body.page-id-987491327 .et_pb_column:has(> .pro_price),
body.page-id-987491327 .et_pb_column:has(> .max_price) {
  background-color: var(--gcid-bs9uwvujec, #7C4DFF);
  background-image: linear-gradient(179.923deg,
                    rgb(237, 231, 246) -108.09%, rgb(124, 77, 255) 125.27%);
  border-radius: var(--gvid-radius-card, 30px);
}

/* Starter is drawn as a white card of the same shape. Live leaves it as a
   bare column, which is why it reads as unfinished next to the other two. */
body.page-id-987491327 .et_pb_column:has(> .starter_price) {
  background-color: #ffffff;
  border-radius: var(--gvid-radius-card, 30px);
  padding: 25px;
}

@media (max-width: 980px) {
  /* The design's phone padding is 25px; the violet cards are authored at
     35px. Only the phone value is changed -- desktop keeps what was authored,
     because the desktop mockup was not consulted in this pass. */
  body.page-id-987491327 .et_pb_column:has(> .pro_price),
  body.page-id-987491327 .et_pb_column:has(> .max_price) {
    padding: 25px;
  }
}

/* ---- pricing controls (pricing pass 2, 2026-08-18) ---- */
/* Compare accordion, staff slider, and the card/toggle ordering. The two
   controls are built at runtime by js/ss-pricing.js; every rule below is
   keyed on a class that either the pricing PLUGIN owns, the matrix's own
   markup owns, or that script adds -- never on a Divi ordinal.

   The accordion rules are NOT scoped to the Pricing page id: /compareplans/
   carries the same .ss-compare-wrap matrix and wants the same behaviour. The
   card, slider and toggle rules ARE page-scoped, because those controls only
   exist here. */

/* ---- compare matrix: an accordion, first category open ---------------- */
.ss-compare-wrap .ss-compare-cat > .ss-compare-body {
  display: none;
}

.ss-compare-wrap .ss-compare-cat.is-open > .ss-compare-body {
  display: block;
  padding-bottom: 10px;
}

.ss-compare-wrap .ss-compare-cat-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  cursor: pointer;
  min-height: 44px;
  user-select: none;
}

.ss-compare-wrap .ss-compare-cat-title:focus-visible {
  outline: 2px solid var(--gcid-6spcyv8qzp, #FF7043);
  outline-offset: -2px;
}

/* The disc-and-chevron the design draws, and the same affordance the FAQ
   accordion already uses on this site. */
.ss-compare-wrap .ss-compare-chev {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.75);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gcid-6spcyv8qzp, #FF7043);
  transition: transform 0.18s ease;
}

.ss-compare-wrap .ss-compare-cat.is-open .ss-compare-chev {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .ss-compare-wrap .ss-compare-chev { transition: none; }
}

/* ---- the matrix on a phone -------------------------------------------
   The authored grid is `1fr 18% 18% 18%`, which gives each value 70px at
   390 and wraps "Not included" onto three lines. The design stacks it
   instead: the feature name, then the three values inline underneath as
   "Starter X - Pro Y - Max Z". The plan labels come from ::before so the
   column headings can be dropped without the values losing their meaning. */
@media (max-width: 980px) {
  .ss-compare-wrap .ss-compare-head {
    display: none;
  }

  .ss-compare-wrap .ss-compare-line {
    display: block;
    padding: 12px 20px;
  }

  .ss-compare-wrap .ss-compare-line > span:first-child {
    display: block;
    font-weight: 500;
    margin-bottom: 2px;
  }

  .ss-compare-wrap .ss-compare-line > span.ss-c {
    text-align: left;
  }

  .ss-compare-wrap .ss-compare-line > span.ss-c::before {
    color: var(--gcid-90suxw02k0, #2F2F2F);
    font-weight: 400;
  }

  .ss-compare-wrap .ss-compare-line > span.ss-c:nth-child(2)::before {
    content: "Starter ";
  }

  .ss-compare-wrap .ss-compare-line > span.ss-c:nth-child(3)::before {
    content: " \00b7  Pro ";
  }

  .ss-compare-wrap .ss-compare-line > span.ss-c:nth-child(4)::before {
    content: " \00b7  Max ";
  }

  .ss-compare-wrap .ss-compare-cat-title {
    padding: 12px 20px;
    font-size: 18px;
  }
}

/* ---- the staff slider -------------------------------------------------
   The <select> is hidden, never removed: the plugin's updateSSDome()
   rewrites its innerHTML and its change handler is what recomputes every
   price on the page. */
body.page-id-987491327 #ddlOperatorCount {
  display: none;
}

body.page-id-987491327 .ss-staff-host {
  margin-bottom: 10px;
}

/* The design draws this label as a filled orange pill. The WORDING is left
   as the page had it -- that is content, not styling. */
body.page-id-987491327 .ss-staff-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gcid-6spcyv8qzp, #FF7043);
  color: #ffffff;
  border-radius: 100px;
  padding: 12px 28px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
}

body.page-id-987491327 .ss-staff {
  max-width: 620px;
  margin: 0 auto;
  padding: 0 5px;
}

body.page-id-987491327 .ss-staff-range {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 8px;
  border-radius: 100px;
  background: #D9D9D9;   /* replaced inline with the fill gradient by the JS */
  outline: none;
  margin: 0;
}

body.page-id-987491327 .ss-staff-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--gcid-90suxw02k0, #2F2F2F);
  border: 0;
  cursor: pointer;
}

body.page-id-987491327 .ss-staff-range::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--gcid-90suxw02k0, #2F2F2F);
  border: 0;
  cursor: pointer;
}

body.page-id-987491327 .ss-staff-range:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 112, 67, 0.45);
}

body.page-id-987491327 .ss-staff-ticks {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}

/* nowrap matters: "Just Me" is the widest label and wrapped onto two lines
   at 390 with equal-width ticks, which pushed the whole row taller and left
   it ragged. Sized to fit the narrowest supported viewport. */
body.page-id-987491327 .ss-staff-tick {
  font-size: 14px;
  font-weight: 400;
  color: #636363;
  cursor: pointer;
  flex: 0 1 auto;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 430px) {
  body.page-id-987491327 .ss-staff-tick { font-size: 13px; }
}

body.page-id-987491327 .ss-staff-tick:first-child { text-align: left; }
body.page-id-987491327 .ss-staff-tick:last-child  { text-align: right; }

body.page-id-987491327 .ss-staff-tick.is-active {
  font-weight: 600;
  color: #000000;
}

/* ---- period toggle: the design orders it Yearly | Monthly ------------- */
/* `#divPricePeriod` is the module itself and the page sets it
   `display:inline-block`, which only centres if its COLUMN is text-align
   center -- and this pass left-aligns card text nearby. Centre it explicitly
   with auto margins instead of depending on inherited alignment. */
body.page-id-987491327 #divPricePeriod {
  display: flex !important;
  width: max-content;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-987491327 #divPricePeriod .et_pb_text_inner > p {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: center;
  margin: 0;
}

/* ---- "See All Features" ----------------------------------------------- */
body.page-id-987491327 .ss-see-features {
  display: block;
  width: calc(100% - 30px);
  max-width: 620px;
  margin: 25px auto 0;
  padding: 16px 30px;
  border: 0;
  border-radius: 100px;
  background: var(--gcid-6spcyv8qzp, #FF7043);
  color: #ffffff;
  font-family: 'Nunito', Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-size: 16px;
  cursor: pointer;
}

body.page-id-987491327 .ss-see-features:hover {
  background: var(--gcid-hv4rq8m2ns, #E85F35);
}

/* ---- the plan cards, against the design's transcribed values ----------
   Every number below is read from the export's inline styles, not eyeballed:
     card      border-radius:30px; padding:25px; display:flex;
               flex-direction:column; gap:15px          (LEFT aligned)
     name      Poppins 500 20px / 1.2, -0.03em
     price row display:flex; gap:8px; align-items:flex-end
     price     Poppins 600 30px / 1, -0.03em
     unit      12px, uppercase, #636363  (#F4F4F4 on violet)
     SMS       16px, #000000             (#F4F4F4 on violet)
     CTA       500 16px / 1, #fff on #FF7043, radius 100px, padding 14px 24px
     desc      16px / 1.25               (#ffffff on violet)
     footnote  15px / 1.35, #636363
     chip      radius 54px, rgba(255,255,255,0.25), #fff, 10px 500, 5px 14px

   The card selector is `:has(> .starter_price)` and NOT `:has(> .starter_price)`
   because ss-pricing.js moves the price into a `.ss-price-row` wrapper, so it
   is no longer a direct child. */
body.page-id-987491327 .et_pb_column:has(> .starter_price),
body.page-id-987491327 .et_pb_column:has(> .pro_price),
body.page-id-987491327 .et_pb_column:has(> .max_price) {
  display: flex;
  flex-direction: column;
  gap: 15px;
  text-align: left;
}

/* The modules carry `style="text-align:center"` INLINE from the page content,
   and Divi emits `.et_pb_text_N{text-align:center}` on top. The design
   left-aligns every card. Inline styles need !important to beat.

   `.et_pb_text_inner` is in the list, not just `p`/`h3`/`span`: the plugin
   REPLACES the inner html of the SMS and price hooks with a bare string, so
   those modules have no <p> left to align and were the only three still
   centred after the first attempt. */
body.page-id-987491327 .et_pb_column:has(> .starter_price) :is(p, h3, span, .et_pb_text_inner),
body.page-id-987491327 .et_pb_column:has(> .pro_price) :is(p, h3, span, .et_pb_text_inner),
body.page-id-987491327 .et_pb_column:has(> .max_price) :is(p, h3, span, .et_pb_text_inner) {
  text-align: left !important;
}

/* Divi's own module bottom margins would stack on top of the 15px flex gap
   (landmine C6): the gap is the only spacing mechanism here. */
body.page-id-987491327 .et_pb_column:has(> .starter_price) > *,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > *,
body.page-id-987491327 .et_pb_column:has(> .max_price) > * {
  order: 6;
  margin-bottom: 0 !important;
}

/* EVERY rule below repeats the full `.et_pb_column:has(...)` prefix. Not
   redundancy: the blanket `> *` rule above carries the column selector, so a
   bare `body.page-id-987491327 .starter_price{order:2}` is LESS specific and
   loses to it. Measured on the live page before this was fixed -- every child
   computed to order 6 and the cards did not reorder at all. */
body.page-id-987491327 .et_pb_column:has(> .starter_price) > .ss-plan-head,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .ss-plan-head,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .ss-plan-head {
  order: 1;
  display: flex;
  gap: 12px;
  align-items: center;
}

body.page-id-987491327 .et_pb_column:has(> .starter_price) > .starter_price,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .pro_price,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .max_price {
  order: 2;
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

body.page-id-987491327 .et_pb_column:has(> .starter_price) > .starter_sms_text,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .pro_sms_text,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .max_sms_text {
  order: 3;
}

body.page-id-987491327 .et_pb_column:has(> .starter_price) > .btn_starter_signup,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .btn_pro_signup,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .btn_max_signup {
  order: 4;
}

body.page-id-987491327 .et_pb_column:has(> .starter_price) > .adla_price_text,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .adla_price_text,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .adla_price_text {
  order: 7;
}

/* --- card typography --- */
body.page-id-987491327 .ss-plan-head h3 {
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 500 !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em;
  margin: 0;
  padding: 0;
}

/* "MOST POPULAR" becomes the design's translucent chip */
body.page-id-987491327 .ss-plan-chip .et_pb_text_inner p {
  display: inline-block;
  margin: 0;
  border-radius: 54px;
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  padding: 5px 14px;
  line-height: 1.2;
  white-space: nowrap;
}

body.page-id-987491327 .starter_price.ss-price-row > .et_pb_text_inner,
body.page-id-987491327 .pro_price.ss-price-row > .et_pb_text_inner,
body.page-id-987491327 .max_price.ss-price-row > .et_pb_text_inner,
body.page-id-987491327 .starter_price.ss-price-row > .et_pb_text_inner p,
body.page-id-987491327 .pro_price.ss-price-row > .et_pb_text_inner p,
body.page-id-987491327 .max_price.ss-price-row > .et_pb_text_inner p {
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 30px !important;
  line-height: 1 !important;
  letter-spacing: -0.03em;
  margin: 0;
  padding: 0;
}

body.page-id-987491327 .ss-price-row .permth .et_pb_text_inner,
body.page-id-987491327 .ss-price-row .permth p {
  font-size: 12px !important;
  line-height: 1.2 !important;
  text-transform: uppercase;
  color: #636363 !important;
  margin: 0;
  padding: 0;
}

body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-price-row .permth .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-price-row .permth .et_pb_text_inner {
  color: #F4F4F4 !important;
}

/* The design sets the SMS line in body text, not the accent colour. */
body.page-id-987491327 .starter_sms_text .et_pb_text_inner,
body.page-id-987491327 .starter_sms_text p {
  font-size: 16px !important;
  color: #000000 !important;
  margin: 0;
}

body.page-id-987491327 .pro_sms_text .et_pb_text_inner,
body.page-id-987491327 .max_sms_text .et_pb_text_inner,
body.page-id-987491327 .pro_sms_text p,
body.page-id-987491327 .max_sms_text p {
  font-size: 16px !important;
  margin: 0;
}

/* description (order 6, the first of the two prose blocks) and footnote */
body.page-id-987491327 .et_pb_column:has(> .starter_price) > .et_pb_text .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .et_pb_text .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .et_pb_text .et_pb_text_inner p {
  line-height: 1.25;
  margin: 0;
}

body.page-id-987491327 .adla_price_text .et_pb_text_inner p {
  font-size: 15px !important;
  line-height: 1.35 !important;
  color: #636363 !important;
}

body.page-id-987491327 .et_pb_column:has(> .pro_price) .adla_price_text .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) .adla_price_text .et_pb_text_inner p {
  color: #F4F4F4 !important;
}

/* ---- breadcrumb (built by ss-pricing.js) ------------------------------
   The page already carries a BreadcrumbList JSON-LD block, which is the
   signal Google actually consumes; this is the visible counterpart. It is
   built at runtime rather than written into the page because this pass does
   not touch post_content -- see the work order for the content-pass version. */
body.page-id-987491327 .ss-crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #636363;
  margin-bottom: 15px;
}

body.page-id-987491327 .ss-crumbs a {
  color: #636363;
  text-decoration: none;
}

body.page-id-987491327 .ss-crumbs a:hover {
  color: var(--gcid-6spcyv8qzp, #FF7043);
}

body.page-id-987491327 .ss-crumbs [aria-current="page"] {
  color: var(--gcid-90suxw02k0, #2F2F2F);
  font-weight: 600;
}



/* ---- the compare section heading --------------------------------------
   The design sets this one H2 in the primary orange. Reached through the
   section that CONTAINS the matrix, so no ordinal is involved. */
body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) h2 {
  color: var(--gcid-6spcyv8qzp, #FF7043) !important;
}

/* ---- the hero -------------------------------------------------------
   The page wraps the H1 in a large grey rounded panel. The design draws the
   breadcrumb, H1 and intro straight on the page background with no panel at
   all, and much less air beneath them. Reached through the section that
   CONTAINS the h1, so no ordinal is involved. */
/* `> .et_builder_inner_content` is load-bearing, not decoration. Divi emits
   `.et-l--post>.et_builder_inner_content .et_pb_section.et_pb_section_0
    {background-color:#F4F4F4!important}` at (0,4,0). The first attempt here
   was (0,3,2) and LOST on class count despite also being !important -- an
   injected copy of it changed nothing, which is what proved it. Matching
   Divi's own chain takes this to (0,4,2). */
body.page-id-987491327 .et-l--post > .et_builder_inner_content .et_pb_section:has(h1) {
  background-color: transparent !important;
  background-image: none !important;
  border-radius: 0 !important;
  padding-top: var(--gvid-space-m, 35px) !important;
  padding-bottom: var(--gvid-space-s, 20px) !important;
}

/* The calculator block then follows immediately, as it does in the design,
   rather than after a second full section's worth of padding. */
body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) {
  padding-top: var(--gvid-space-s, 20px) !important;
}

/* ---- vertical rhythm ---------------------------------------------------
   Measured design-vs-live at 390 (pricing/verify_rhythm.py). The card
   INTERNALS already matched exactly -- price +0, SMS +0 against the design's
   15px gaps -- but three gaps were far too airy, all of them Divi section and
   row padding rather than anything the design asks for:

       before the staff pill   design 93   live 307   +214
       before the first card   design 50   live 187   +137
       around the card CTA     design 15   live  35    +20

   Divi emits row padding as `!important` (landmine C5), so the override has
   to be !important at equal-or-higher specificity to land.

   Scoped to <=980px because 390 is the only width the design specifies. The
   desktop mockup exists (Pricing.dc.html) but was not measured in this pass,
   so desktop spacing is deliberately left as authored rather than changed on
   a guess. */
@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 12px !important;
  }

  /* 0, not 25: the row above it already contributes its own bottom spacing,
     and 25 here put the first card 26px below the design's position. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) {
    padding-top: 0 !important;
  }

  /* The CTA module wraps its button in a promo shell whose description block
     and button wrapper both carry margins; the design has a flat 15px gap. */
  body.page-id-987491327 :is(.btn_starter_signup, .btn_pro_signup, .btn_max_signup) .et_pb_promo_description,
  body.page-id-987491327 :is(.btn_starter_signup, .btn_pro_signup, .btn_max_signup) .et_pb_button_wrapper {
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* ---- the last two gaps, both measured ---------------------------------
   `.et_pb_cta_N.et_pb_promo{padding:20px}` is Divi's own module padding, and
   pass 1's `padding: 0` was written WITHOUT !important, so it never landed --
   the CTA sat 20px below where the design puts it, top and bottom.

   The plan row then adds `padding: 30px 0` on top of the section's 25px, so
   the first card started 55px lower than the design's 25px. The card's OWN
   25px padding is correct and is left alone -- the design has it too. */
body.page-id-987491327 :is(.btn_starter_signup, .btn_pro_signup, .btn_max_signup).et_pb_promo {
  padding: 0 !important;
}

@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) > .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* the design stacks the three cards with a 20px gap */
  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) > .et_pb_row.et_pb_row {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
  }

  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) > .et_pb_row > .et_pb_column {
    margin-bottom: 0 !important;
  }
}

/* ---- testimonials ------------------------------------------------------
   The mobile design frame draws NO testimonial section on Pricing at all;
   the desktop document does (four quotes, one at a time, dots #FF7043 active
   / #D9D9D9 idle). The owner's standing decision is that mobile keeps the
   content the design drops, so all four quotes stay and are restyled instead
   of being cut or swapped for the shared layout -- the shared testimonial
   layout carries the HOMEPAGE's quote, and pointing Pricing at it would
   silently replace four page-specific quotes with one.

   The old look here was the same defect as the CTA panels: a `#2EA3F2` left
   border on every blockquote, i.e. Divi's factory accent, never rebound to
   the site's palette. Each quote becomes a white card in the design's own
   language -- radius 30, 25px padding, 16px/1.25 text -- on the existing
   violet wash. Reached through the section that CONTAINS a blockquote, so no
   ordinal is involved. */
body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) blockquote {
  border-left: 0 !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
  text-align: left !important;
}

/* The stars are their own Divi module immediately before the quote's, so
   without this they float in the gap above the card instead of belonging to
   it. `:has(+ ...)` joins the two into one visual card without a wrapper. */
body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text:has(+ .et_pb_text blockquote) {
  background: #ffffff;
  border-radius: var(--gvid-radius-card, 30px) var(--gvid-radius-card, 30px) 0 0;
  padding: 25px 25px 0;
  margin-bottom: 0 !important;
}

body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text:has(blockquote) {
  background: #ffffff;
  border-radius: 0 0 var(--gvid-radius-card, 30px) var(--gvid-radius-card, 30px);
  padding: 10px 25px 25px;
  margin-bottom: 20px !important;
}

/* the star row belongs to the card below it, not floating above the gap */
body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text_inner p {
  text-align: left !important;
}

@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ---- hero type + plan names, against the design source -----------------
   Transcribed from the Mobile Pricing frame:
     h1     Poppins 600 30px / 1, -0.03em
     intro  18px / 1.2
     Starter name   h3 Poppins 500 20px / 1.2
     PRO / MAX name 13px 500 UPPERCASE #ffffff   <- NOT the 20px h3
   The design deliberately shrinks the violet cards' names because the PRICE
   is the hero there; only the white Starter card gets a prominent name.

   Measured live before this block: h1 was weight 500 and #333, the intro
   14px, and both violet names 20px sentence-case.

   COLOUR: the design writes #000000 for the h1 and the Starter name. Live was
   #333 -- Divi's PARENT THEME baseline (`h1..h6{color:#333}`), i.e. neither
   the design nor this site's palette. It goes to the site's text token, not to
   #000, following the recorded decision on the Features heading: stay on the
   token rather than hard-code an off-system colour (open-decisions §9).

   SPECIFICITY: the sitewide mobile heading scale is !important at (0,4,1) and
   exists to beat Divi 4 pages' own !important sizes -- it must not be relaxed.
   These are class-scoped at (0,5,1)+ so they win locally without touching it. */
body.page-id-987491327 .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h1 {
  font-weight: 600 !important;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
  letter-spacing: -0.03em;
}

body.page-id-987491327 .et-l--post .et_pb_section:has(h1) .et_pb_text_inner p {
  font-size: 18px !important;
  line-height: 1.2 !important;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
}

body.page-id-987491327 .et_pb_column:has(> .starter_price) .ss-plan-head h3 {
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
}

body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-plan-head h3,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-plan-head h3 {
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-transform: uppercase;
  color: #ffffff !important;
}

/* ---- footnote on one line, and the toggle pill at the design's size -----
   ss-pricing.js moves the ADLA module inside the footnote module; these run
   the two together as the design's single 15px grey line rather than the
   three stacked lines the page had. The ADLA module keeps its own <p>,
   because simplesalon.js rewrites that <p>'s contents per region. */
body.page-id-987491327 .ss-foot .et_pb_text_inner > p {
  display: inline;
}

body.page-id-987491327 .ss-foot .ss-foot-part,
body.page-id-987491327 .ss-foot .ss-foot-part .et_pb_text_inner,
body.page-id-987491327 .ss-foot .ss-foot-part p {
  display: inline;
}

body.page-id-987491327 .ss-foot .ss-foot-part::before {
  content: " \00b7  ";
}

/* The ADLA link renders in Divi's link blue against a grey footnote. The
   design shows the whole line in one colour; the link keeps an underline so
   it is still discoverably a link. */
body.page-id-987491327 .ss-foot a {
  color: inherit !important;
  text-decoration: underline;
}

/* The design's toggle shell is `border:1px; border-radius:100px; display:flex`
   with NO padding; the page adds 4px all round, which is why the pill read
   taller than the design even after the inner padding matched. */
body.page-id-987491327 #divPricePeriod {
  padding: 0 !important;
}

/* the whole line is the design's muted footnote, not body text */
body.page-id-987491327 .ss-foot .et_pb_text_inner,
body.page-id-987491327 .ss-foot .et_pb_text_inner p {
  font-size: 15px !important;
  line-height: 1.35 !important;
  color: #636363 !important;
}

body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-foot .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-foot .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-foot .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-foot .et_pb_text_inner p {
  color: #F4F4F4 !important;
}

/* Design: padding 9px 24px, 16px/1. The page authors 10px 30px !important. */
body.page-id-987491327 #divPricePeriod .lnkPricePeriod,
body.page-id-987491327 #divPricePeriod a.lnkPricePeriod {
  padding: 9px 24px !important;
  font-size: 16px !important;
  line-height: 1 !important;
}

/* ---- the last of the dead space at the top ----------------------------
   With the duplicate H2 gone, what remains between the intro and the staff
   pill is the region picker's own row padding. The design has no region
   picker at all, so there is no design number to match - this just stops the
   row contributing a full section's worth of air. */
@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section:has(.region_switcher) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.page-id-987491327 .et-l--post .et_pb_row.et_pb_row:has(.region_switcher) {
    padding-top: 0 !important;
    padding-bottom: 8px !important;
  }
}

/* ---- lower-section rhythm --------------------------------------------
   Measured design-vs-live (pricing/verify_rhythm2.py): three consistent
   overshoots, all Divi row padding stacked above a heading --
       before the compare heading      design 140  live 170  +30
       heading -> first category       design  25  live  61  +36
       FAQ chip -> FAQ heading         design  25  live  68  +43
   The rows contribute the air; the heading's own margin is the only spacing
   mechanism kept, so the numbers are set in one place rather than summed
   from three. Phone only - 390 is the only width the design specifies. */
@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) {
    padding-top: 70px !important;   /* 40 measured 30px tight against the design */
  }

  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) > .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) h2 {
    margin-bottom: 25px;
    padding-bottom: 0;
  }

  /* Scoped to this page rather than to .ss-faq, which is the SHARED layout on
     six templates - tightening it there is right but wants its own measured
     pass across all six, not a side effect of the Pricing work. */
  /* Not row padding after all: the "FAQ" chip module carries margin-bottom
     35px on top of its own 7px padding, which is where the extra 43px came
     from. Reached as "the module immediately before the heading's module",
     so no ordinal is involved. */
  body.page-id-987491327 .ss-faq .et_pb_text:has(+ .et_pb_text h2) {
    margin-bottom: 0 !important;
  }
}

/* ---- design-token fallbacks (tokens-fallback pass, 2026-08-18) ---- */
/* Divi emits design variables SELECTIVELY: it scans a page's content plus the
   Theme Builder templates for the literal prefix `gvid-` and emits only the
   ids it finds (landmine A2). Every page mentions space-s/m/l and the two
   radii, so every page takes the selective path -- and only the HOMEPAGE
   mentions `gvid-space-xl`, so on the other 95 it never reaches :root.

   Divi's own emitted rules reference it WITHOUT a fallback, e.g.
       .et_pb_row_15.et_pb_row{padding-top:var(--gvid-space-xl)!important}
   and an undefined custom property makes the whole declaration invalid at
   computed-value time -- so the padding computes to 0, not to something
   sensible. Measured at 1440: the shared CTA banner and the shared FAQ had
   0px top and bottom padding on every page except the homepage, against the
   design's 140px.

   Mobile never showed it, because the alias further down this file defines
   the token inside @media (max-width:980px). That is also why a session of
   mobile-first work could not surface it.

   These are NOT new values. 140px is what `et_divi_global_variables` already
   stores, and the two colours are what `et_divi.et_global_data.global_colors`
   already stores. This only makes the stored values reachable on the pages
   Divi leaves them out of. Divi's own :root loads after this one, so wherever
   Divi DOES emit them its value still wins. */
:root {
  --gvid-space-xl: 140px;
  --gcid-2oou2aqy2u: #26c6da;   /* accent cyan   */
  --gcid-bs9uwvujec: #7c4dff;   /* accent violet */
}

/* ---- shared sections: the DESKTOP half (shared-desktop pass, 2026-08-18) ---- */
/* The block at style.css:2423-2587 styles the three shared sections for
   phones and stops there: 14 of 14 rules are inside @media (max-width:980px)
   or (max-width:767px). Above 980 the shared Testimonials, CTA and FAQ have
   been rendering with Divi's factory styling on every page that carries them
   -- measured identically at 1440 on /, /how-much/, /more-freedom/ and
   /more-bookings/, which is what makes it one component bug and not four
   page bugs.

   Everything below is transcribed from
   managed-agents-design-export/"Feature Page Template.dc.html", whose
   sections are inline-styled, so these are the design's own numbers.

   BREAKPOINT. min-width:981px is the exact complement of the 980 the rest of
   this file uses; no new breakpoint is introduced (open-decisions section 1).
   It is not cosmetic: the phone rules are class-only (0,2,0) and these
   desktop selectors are (0,3,0) and sit later in the file, so writing them
   unconditionally would beat the phone rules at 390 and wipe the mobile
   design.

   SPECIFICITY. Every Divi stylesheet loads AFTER this file (child style.css
   at line 105 of the served HTML; et-critical-inline-css and the two
   et-core-unified-*.min.css at 168-169), so a tie is a loss. Each rule below
   names the competitor it was measured against. */

@media (min-width: 981px) {

  /* ============ shared accordion: FAQ + Benefits ============
     One component. The design's Benefits row markup is byte-identical to the
     FAQ row apart from `color:#2F2F2F` on the answer, so both classes share
     every selector list here. .ss-benefits is not on any page yet; it is
     included so the section arrives styled rather than needing a second copy
     of these rules later.

     Competitors, all Divi core in divi-dynamic-critical-inline-css:
       .et_pb_toggle_close{background-color:#f4f4f4;padding:20px}      (0,1,0)
       .et_pb_toggle_open{padding:20px;background-color:#fff}          (0,1,0)
       .et_pb_toggle{border:1px solid #d9d9d9}                         (0,1,0)
       .et_pb_toggle .et_pb_toggle_title{padding:0 50px 0 0}           (0,2,0)
       .et_pb_toggle_title:before{font-size:16px;color:#ccc;...}       (0,1,1)
       .et_pb_toggle_content{position:relative;padding-top:20px}       (0,1,0)
       .et_pb_accordion.et_block_module .et_pb_toggle{margin-bottom:10px}(0,3,0)
     and one per-module emission in et-core-unified-tb-*-deferred-*.min.css:
       .et_pb_accordion_0 .et_pb_toggle_close:not(.et_pb_toggle_empty)
         .et_pb_toggle_title:before{font-family/content/font-weight !important;
         color:var(--gcid-6spcyv8qzp)}                                 (0,4,1)
     -- that last one's colour is the same orange this block asks for, and
     the three !important declarations are the glyph itself, which is
     deliberately Divi's down-chevron (open-decisions section 9: the homepage
     kept the standard accordion affordance rather than the design's
     right-chevron; matched here on purpose). */

  .et-l--post .ss-faq .et_pb_toggle,
  .et-l--body .ss-faq .et_pb_toggle,
  .et-l--post .ss-benefits .et_pb_toggle,
  .et-l--body .ss-benefits .et_pb_toggle {
    padding: 15px 15px 15px 25px;                 /* design 15px 15px 15px 25px */
    border: 0;                                    /* design draws no border; Divi core adds 1px #d9d9d9 */
    border-radius: var(--gvid-radius-row, 20px);  /* design 20 */
  }

  /* The stack gap, and landmine C6 caught in the act. `.et_pb_accordion` is
     an `.et_flex_module`, i.e. `display:flex; flex-direction:column` with
     `row-gap: var(--vertical-gap)` resolving to 10px, and Divi ALSO puts
     `margin-bottom:10px` on every toggle at (0,3,0). The two do not
     override each other, they add. Setting margin-bottom:15px measured 25px
     between rows -- worse than the 10px it replaced. So: zero the margin and
     let the flex gap be the only spacing mechanism, which is C6's own fix.
     Measured before: 10px at BOTH 390 and 1440, i.e. the phone block's
     `row-gap:12px` on the COLUMN never governed this either -- it addresses
     the column that holds the accordion module, not the accordion's items. */
  .et-l--post .ss-faq .et_pb_accordion,
  .et-l--body .ss-faq .et_pb_accordion,
  .et-l--post .ss-benefits .et_pb_accordion,
  .et-l--body .ss-benefits .et_pb_accordion {
    row-gap: 15px;                                /* design stack gap 15 */
  }
  .et-l--post .ss-faq .et_pb_accordion .et_pb_toggle,
  .et-l--body .ss-faq .et_pb_accordion .et_pb_toggle,
  .et-l--post .ss-benefits .et_pb_accordion .et_pb_toggle,
  .et-l--body .ss-benefits .et_pb_accordion .et_pb_toggle {
    margin-bottom: 0;                             /* C6: the gap is the gap */
  }

  .et-l--post .ss-faq .et_pb_toggle_title,
  .et-l--body .ss-faq .et_pb_toggle_title,
  .et-l--post .ss-benefits .et_pb_toggle_title,
  .et-l--body .ss-benefits .et_pb_toggle_title {
    font-family: var(--et_global_heading_font, 'Poppins'), sans-serif;  /* design Poppins */
    font-size: 25px;                              /* design 25 (live 16) */
    font-weight: 500;                             /* design 500 */
    line-height: 1.2;                             /* design 1.2 */
    letter-spacing: -0.03em;                      /* design -0.03em */
    padding-right: 68px;                          /* 48 disc + 20 design gap */
    padding-bottom: 0;
  }

  /* The chevron disc. Design: a 48px white circle, radius 200px, orange
     glyph, vertically centred against the right edge. Divi core draws a bare
     #ccc glyph at 16px with no box at all.
     GLYPH SIZE is the one number here not read straight off the design: the
     design's chevron is an SVG (14x24 desktop, 10x18 phone) and the live
     build uses a FontAwesome glyph instead. The shipped phone version sets
     no font-size and renders 16px inside its 36px disc; the design keeps
     glyph height at exactly half the disc on both frames, so the desktop
     equivalent is 16 x 48/36 = 21.3 -> 21px. Stated because it is derived,
     not transcribed. */
  .et-l--post .ss-faq .et_pb_toggle_title::before,
  .et-l--body .ss-faq .et_pb_toggle_title::before,
  .et-l--post .ss-benefits .et_pb_toggle_title::before,
  .et-l--body .ss-benefits .et_pb_toggle_title::before {
    top: 50%;
    right: 0;
    width: 48px;                                  /* design 48 */
    height: 48px;                                 /* design 48 */
    margin-top: -24px;
    line-height: 48px;
    font-size: 21px;                              /* derived, see above */
    text-align: center;
    border-radius: 200px;                         /* design 200 */
    background-color: #ffffff;                    /* design #ffffff */
    color: var(--gcid-6spcyv8qzp, #ff7043);       /* design #FF7043 */
  }

  /* The answer panel. The design's `padding:0 90px 25px 25px` is measured
     from the ROW edge and sits beside a header bar that carries the row's
     own padding. Divi has no header bar: `.et_pb_toggle` is the row AND the
     panel's ancestor, so the design number written literally would give
     left 25+25 and right 15+90. Solving for the design's absolute insets
     against `.et_pb_toggle{padding:15px 15px 15px 25px}`:
         left   25 = 25 + 0        -> padding-left  0
         right  90 = 15 + 75       -> padding-right 75px
         bottom 25 = 10 + 15       -> padding-bottom 10px
         gap under the question 15 -> padding-top    15px  */
  .et-l--post .ss-faq .et_pb_toggle_content,
  .et-l--body .ss-faq .et_pb_toggle_content,
  .et-l--post .ss-benefits .et_pb_toggle_content,
  .et-l--body .ss-benefits .et_pb_toggle_content,
  .et-l--post .ss-faq .et_pb_toggle_content p,
  .et-l--body .ss-faq .et_pb_toggle_content p,
  .et-l--post .ss-benefits .et_pb_toggle_content p,
  .et-l--body .ss-benefits .et_pb_toggle_content p {
    font-size: 18px;                              /* design 18 (live 14) */
    line-height: 1.35;                            /* design 1.35 */
    color: var(--gcid-90suxw02k0, #2f2f2f);       /* design #2F2F2F */
  }
  .et-l--post .ss-faq .et_pb_toggle_content,
  .et-l--body .ss-faq .et_pb_toggle_content,
  .et-l--post .ss-benefits .et_pb_toggle_content,
  .et-l--body .ss-benefits .et_pb_toggle_content {
    padding: 15px 75px 10px 0;                    /* see the arithmetic above */
  }

  /* ============ shared testimonial carousel ============ */

  /* The quote itself is ALREADY right on desktop: the module emits
     Poppins 500 / 25px / 1.2em / -0.03em / var(--gcid-90suxw02k0), all
     !important, at (0,5,0). The 20px !important the build plan warns about
     now only exists inside @media (max-width:767px). The single missing
     declaration is the shadow: `.et_pb_bg_layout_dark .et_pb_slide_description
     {text-shadow:0 1px 3px rgba(0,0,0,.3)}` (0,2,0) is live and inherited by
     the quote and the author line. The design has no shadow anywhere.
     Killing it on the description covers every descendant in one rule; the
     phone block already does the same thing on two child selectors. */
  .et-l--post .ss-testimonials .et_pb_slider .et_pb_slide_description,
  .et-l--body .ss-testimonials .et_pb_slider .et_pb_slide_description {
    text-shadow: none;                            /* design: no shadow */
    padding: 0;                                   /* design: the CARD's 35px is
                                                     the only inset; Divi core's
                                                     `.et_pb_slide_description
                                                     {padding:16% 8%}` (0,1,0)
                                                     measured 91px / 46px */
  }

  /* Pagination dots. Divi core paints them white at 50% opacity on a
     near-white wash, so on desktop the carousel has no visible controls at
     all. Competitors: `.et-pb-controllers{position:absolute;bottom:5%;
     height:14px}` (0,1,0), `.et-pb-controllers a{...7px...}` (0,2,0),
     `.et_pb_bg_layout_light .et-pb-controllers a{background:rgba(0,0,0,.3)}`
     (0,2,0) and `.et_pb_bg_layout_light .et-pb-controllers
     .et-pb-active-control{background:#333}` (0,3,0) -- hence (0,4,0) on the
     active dot. The phone block already ships this; these are the desktop
     numbers. */
  .et-l--post .ss-testimonials .et-pb-controllers,
  .et-l--body .ss-testimonials .et-pb-controllers {
    position: static;
    display: flex;
    justify-content: center;
    gap: 8px;                                     /* design 8 */
    margin-top: 35px;                             /* design 35 */
    width: auto;
    height: auto;
    bottom: auto;
  }
  .et-l--post .ss-testimonials .et-pb-controllers a,
  .et-l--body .ss-testimonials .et-pb-controllers a {
    width: 12px;                                  /* design 12 */
    height: 12px;                                 /* design 12 */
    margin: 0;                                    /* the 8px gap is the only spacing */
    border-radius: 200px;                         /* design 200 */
    background-color: #D9D9D9;                    /* design #D9D9D9 */
    opacity: 1;
  }
  .et-l--post .ss-testimonials .et-pb-controllers .et-pb-active-control,
  .et-l--body .ss-testimonials .et-pb-controllers .et-pb-active-control {
    background-color: var(--gcid-6spcyv8qzp, #ff7043);   /* design #FF7043 */
  }

  /* The photo. Design: radius 30, object-fit cover. Divi emits the radius on
     the module wrapper, not on the <img>, so the image itself renders square
     and stretched. The phone block uses radius 20 because the phone frame
     draws no testimonial photo at all -- the desktop frame does, at 30. */
  .et-l--post .ss-testimonials .et_pb_image img,
  .et-l--body .ss-testimonials .et_pb_image img {
    border-radius: var(--gvid-radius-card, 30px); /* design 30 */
    object-fit: cover;                            /* design cover */
    display: block;
  }
}

/* ============ section header cluster: chip / H2 / intro ============
   17 occurrences sitewide. These key on classes NO page carries yet, so they
   are inert until build-plan steps 3 and 6 add them; both breakpoints are
   written because the design gives both values and mobile is the priority
   breakpoint -- a class that is styled on desktop and naked on a phone is
   the defect this whole pass exists to fix.

   The chip's border is `rgba(47,47,47,0.5)` in BOTH page templates. The
   Design System document says #EDE7F6; the templates are the operative
   source (skill section 1.4). On the six pages that already carry the shared
   layouts the chip is styled by module settings and already measures 14px /
   7px 20px / radius 50 / rgba(47,47,47,0.5) at desktop, so this is a
   backstop, not a change. */
.et-l--post .ss-chip,
.et-l--body .ss-chip {
  display: inline-block;
  border: 1px solid rgba(47, 47, 47, 0.5);        /* design rgba(47,47,47,0.5) */
  border-radius: 50px;                            /* design 50 */
  padding: 7px 20px;                              /* design 7px 20px */
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 14px;                                /* design 14 */
  font-weight: 500;                               /* design 500 */
  line-height: 1;
  text-transform: uppercase;                      /* design uppercase */
  color: var(--gcid-90suxw02k0, #2f2f2f);
  background: transparent;
}
@media (max-width: 980px) {
  .et-l--post .ss-chip,
  .et-l--body .ss-chip {
    font-size: 12px;                              /* design mobile 12 */
  }
}

/* SECTION H2. Design: Poppins 600 / 35px / line-height 1 / -0.03em /
   #000000. Live measures 26px / 500 / #333 / normal / line-height 1 /
   padding-bottom 10px, all from the Divi parent's `h2{font-size:26px}` and
   `h1..h6{color:#333;font-weight:500;line-height:1em;padding-bottom:10px}`,
   both (0,0,1).
   NO mobile size is written here on purpose: the sitewide (0,4,1)!important
   scale at style.css:649 already supplies the design's 25px, and a size
   written here would tie-and-lose anyway.
   THE CTA IS SAFE, and it was checked rather than assumed. The shared CTA
   banner's H2 is 60px (H1 scale) in the design, and `.ss-sec` lands on its
   section in step 3. Divi emits `.et_pb_text_N .et_pb_text_inner h2
   {color:#ffffff!important;font-size:60px}` at (0,3,1) -- the same
   specificity as this rule and LATER in the cascade, so 60px and white both
   survive. Measured by adding .ss-sec to the live CTA section: 60px before
   and after. What this rule does add to the CTA is weight 600, line-height 1
   and -0.03em, which is what the design specifies for it. */
.et-l--post .et_builder_inner_content .ss-sec h2,
.et-l--body .et_builder_inner_content .ss-sec h2 {
  font-family: var(--et_global_heading_font, 'Poppins'), sans-serif;
  font-size: 35px;                                /* design 35 */
  font-weight: 600;                               /* design 600 */
  line-height: 1;                                 /* design 1 */
  letter-spacing: -0.03em;                        /* design -0.03em */
  color: #000000;                                 /* design #000000 */
  padding-bottom: 0;                              /* kills Divi's 10px */
}

/* SECTION INTRO. Design 18px/1.2 desktop, 16px/1.25 mobile. Live inherits
   `--et_global_body_font_size:14px`. */
.et-l--post .ss-sec .ss-intro,
.et-l--body .ss-sec .ss-intro,
.et-l--post .ss-intro,
.et-l--body .ss-intro {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 18px;                                /* design 18 */
  line-height: 1.2;                               /* design 1.2 */
  color: var(--gcid-90suxw02k0, #2f2f2f);
}
@media (max-width: 980px) {
  .et-l--post .ss-sec .ss-intro,
  .et-l--body .ss-sec .ss-intro,
  .et-l--post .ss-intro,
  .et-l--body .ss-intro {
    font-size: 16px;                              /* design mobile 16 */
    line-height: 1.25;                            /* design mobile 1.25 */
  }
}

/* ============ primary button ============
   Design: #FF7043 pill, radius 100, padding 12px 30px, 20px/500 #ffffff,
   hover #E85F35. Mobile has TWO sizes -- hero and CTA banner 18px/15px 30px,
   Values and Benefits 16px/14px 24px -- so `.ss-btn-section` exists to carry
   the second.

   A CORRECTION TO THE PLAN'S SPECIFICITY TABLE, measured in the served CSS:
   the competitor is `body #page-container .et_pb_section .et_pb_button_N`,
   which contains an ID and scores (1,3,2), not (0,3,2). No class-only
   selector beats an ID. Verified by adding .ss-btn-primary to a real
   `.et_pb_button_0` on /more-freedom/: nothing moves.
   That is the right outcome, not a failure. For a `divi/button` bound to
   preset pnz1xu614p Divi already emits the design's own values -- the live
   shared CTA button measures `background-color:var(--gcid-6spcyv8qzp);
   border-radius:100px;border-width:0` from exactly that path. This rule is
   the backstop for a button Divi emits nothing for, which is what the plan's
   own closing note says it is.
   `max-width` is the load-bearing declaration, not `width` (landmine C7:
   `.et_pb_module.et_pb_button:not(.et_block_module){max-width:max-content}`
   at (0,3,0)); padding carries !important only because Divi core's
   `.et_button_no_icon .et_pb_button{padding:.3em 1em!important}` (0,2,0)
   does. */
.et-l--post .et_builder_inner_content .et_pb_section .ss-btn-primary,
.et-l--body .et_builder_inner_content .et_pb_section .ss-btn-primary {
  background-color: var(--gcid-6spcyv8qzp, #ff7043);   /* design #FF7043 */
  border: 0;
  border-radius: 100px;                           /* design 100 */
  padding: 12px 30px !important;                  /* design 12px 30px */
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 20px;                                /* design 20 */
  font-weight: 500;                               /* design 500 */
  line-height: 1;                                 /* design 1 */
  letter-spacing: normal;
  text-transform: none;
  color: #ffffff;                                 /* design #ffffff */
}
.et-l--post .et_builder_inner_content .et_pb_section .ss-btn-primary:hover,
.et-l--body .et_builder_inner_content .et_pb_section .ss-btn-primary:hover {
  background-color: var(--gcid-hv4rq8m2ns, #E85F35);   /* design #E85F35 */
  padding: 12px 30px !important;                  /* Divi core re-pads on hover */
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .et_pb_section .ss-btn-primary,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-btn-primary {
    display: block;
    width: 100%;
    max-width: none;                              /* landmine C7 */
    text-align: center;
    font-size: 18px;                              /* design mobile hero + CTA 18 */
    padding: 15px 30px !important;                /* design mobile 15px 30px */
  }
  .et-l--post .et_builder_inner_content .et_pb_section .ss-btn-primary.ss-btn-section,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-btn-primary.ss-btn-section {
    font-size: 16px;                              /* design mobile Values/Benefits 16 */
    padding: 14px 24px !important;                /* design mobile 14px 24px */
  }
}

/* ============ link colour ============
   Design: a{color:#7C4DFF}, a:hover{color:#FF7043}. Divi's factory
   `a{color:#2ea3f2}` (0,0,1) is live and unoverridden.

   SCOPED TO .ss-sec, WHICH IS A DELIBERATE NARROWING OF THE PLAN. The plan
   calls this guard latent. It is not, once it lands in the SHARED
   stylesheet: measured at 1440, its selector matches 61 visible links on
   /blog/ (currently rgba(47,56,84,*) by design), 14 on /more-tools/, 8 on
   /more-bookings/ and 6 on /how-much/ -- three of them WHITE links on
   coloured surfaces, on the page that currently passes 51/51 design checks.
   Repainting those is a sitewide change nobody asked for. `.ss-sec` exists
   on no page today, so this reaches exactly the sections the rebuild builds
   and nothing else, which is what "latent" was supposed to mean.
   Do NOT redefine --gcid-primary-color: it is Divi's factory slot and Divi
   internals read it. */
.et-l--post .et_builder_inner_content .ss-sec a:not([class*="et_pb_button"]):not([class*="ssh-"]),
.et-l--body .et_builder_inner_content .ss-sec a:not([class*="et_pb_button"]):not([class*="ssh-"]) {
  color: var(--gcid-bs9uwvujec, #7c4dff);         /* design #7C4DFF */
}
.et-l--post .et_builder_inner_content .ss-sec a:not([class*="et_pb_button"]):not([class*="ssh-"]):hover,
.et-l--body .et_builder_inner_content .ss-sec a:not([class*="et_pb_button"]):not([class*="ssh-"]):hover {
  color: var(--gcid-6spcyv8qzp, #ff7043);         /* design #FF7043 */
}

/* ---- shared fixups (shared-fixups pass, 2026-08-18) ---- */
/* 1. The OPEN accordion row keeps its chevron disc.
   Divi core hides it: `.et_pb_toggle_open .et_pb_toggle_title::before
   {display:none}`. Measured at 1440 on /more-freedom/: the open row computed
   display:none while all nine closed rows computed display:block with the
   48x48 disc, so the strip read as nine discs and one hole. Pre-existing Divi,
   but only conspicuous once the disc grew from an invisible 16px #ccc glyph
   to a white circle - so it is this pass's to fix.

   Rotated 180deg, not the design script's 90deg: that number was measured
   against the design's RIGHT-chevron closed state, and this site keeps Divi's
   DOWN-chevron by decision (open-decisions §9). Down -> up is the same
   affordance the compare accordion already uses. */
.ss-faq .et_pb_toggle_open .et_pb_toggle_title::before,
.ss-benefits .et_pb_toggle_open .et_pb_toggle_title::before {
  /* !important is required, not cosmetic: Divi hides this with an
     !important declaration, and !important beats any specificity. A
     non-important rule here measured display:none unchanged; an injected
     !important copy flipped it to block, which is what proved the cause. */
  display: block !important;
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: no-preference) {
  .ss-faq .et_pb_toggle_title::before,
  .ss-benefits .et_pb_toggle_title::before {
    transition: transform 0.2s ease;
  }
}

/* 2. Carousel dots on phones. The shared block styles `.et-pb-controllers`
   below 980 but never the `a` inside it, so phones kept Divi's 7px pips -
   rgba(255,255,255,0.5) inactive, #ffffff active - on a near-white card, i.e.
   invisible. These mirror the desktop rules the last pass shipped. Mobile is
   the priority breakpoint; it should not be the half that is left undone. */
@media (max-width: 980px) {
  .ss-testimonials .et-pb-controllers a {
    width: 12px;
    height: 12px;
    border-radius: 200px;
    background-color: #D9D9D9;
    margin: 0;
    display: inline-block;
    text-indent: -9999px;
    overflow: hidden;
  }

  .ss-testimonials .et-pb-controllers .et-pb-active-control {
    background-color: var(--gcid-6spcyv8qzp, #FF7043);
  }
}


/* ---- feature page template (featurepage pass, 2026-08-18) ---- */
/* Everything below is transcribed from the inline style= text of
   managed-agents-design-export/"Feature Page Template.dc.html" (desktop) and
   mobile-match/design-featurepage-390.html (390). Numbers are the design's
   own; the comment on each line is the design value it came from. */

/* ============ 1. SECTION GUTTERS ============
   Design: every section is `padding: <vertical> 50px`, content bounded at
   max-width 1340. 1440 page frame - 2 x 50 = 1340 exactly, so padding the
   SECTION is what produces the design's content width -- and it does it
   without touching --content-max-width, which is Divi's factory 1080px and
   moves all 96 pages including the 53 still on Divi 4 (open-decisions
   section 5).

   Why pad the section rather than bound the row: the shared-section rows
   carry the author's "make this row full width" toggle, which emits
   `width:100%!important; max-width:100%!important` per row (landmine C8) and
   cannot be beaten without !important on every row across 96 pages.
   `width:100%` resolves against the padded parent's CONTENT box, so padding
   the section moves the card and never fights the row.

   Competitor: `.et_pb_section_N.et_pb_section` (0,2,0) sets padding-top and
   padding-bottom ONLY -- there is no horizontal competitor at all. (0,3,0)
   below is headroom, not necessity. */
.et-l--post .et_builder_inner_content .ss-sec,
.et-l--body .et_builder_inner_content .ss-sec {
  padding-left: 50px;                              /* design 50 */
  padding-right: 50px;                             /* design 50 */
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-sec,
  .et-l--body .et_builder_inner_content .ss-sec {
    padding-left: 15px;                            /* design mobile 15 */
    padding-right: 15px;
  }
}

/* THE SECTION-LEVEL RHYTHM, and landmine C6 caught a second time.
   A Divi 5 section is `.et_flex_section`, i.e. `display:flex;
   flex-direction:column` with `row-gap: var(--vertical-gap)` resolving to
   60px. Authoring the design's 70px as a row margin-bottom does not replace
   that gap, it ADDS to it: measured at 1440, breadcrumb row ended at y=113
   and the copy row began at y=243 -- 130px, against the design's 70.
   Same +60 between the Values header and its card grid.
   The fix is C6's own: zero the row margins and let the gap be the only
   spacing mechanism, so the design's number is the number you get.
   Row margins are emitted !important (landmine C5), so this must be too. */
.et-l--post .et_builder_inner_content .ss-sec,
.et-l--body .et_builder_inner_content .ss-sec {
  row-gap: var(--gvid-space-l, 70px);              /* design section gap 70 */
}
.et-l--post .et_builder_inner_content .ss-sec > .et_pb_row,
.et-l--body .et_builder_inner_content .ss-sec > .et_pb_row {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-sec,
  .et-l--body .et_builder_inner_content .ss-sec {
    /* The mobile frame's section-internal rhythm is 25px, which is NOT on the
       token scale (20/35/70/140) -- one of the four values the design leaves
       unnamed. Mapping it to 20 or 35 would be inventing a number. */
    row-gap: 25px;                                 /* design mobile 25 */
  }
}

/* ============ 2. HERO BAND ============
   Design: `border-radius:0 0 30px 30px; padding-bottom:140px` (70 at 390),
   padding-top ZERO -- the breadcrumb butts against the sticky header, which
   is what makes the header read as part of the band.

   THE FILL IS #F4F4F4 BY THE OWNER'S RULING, 2026-08-22, NOT #E5E5EA.
   The Feature Page and Industry Page documents (and the Feature Page 390
   frame) draw the hero band `#E5E5EA`; every other frame in the export draws
   it `#F4F4F4` -- counted, not eyeballed:

     design frame            E5E5EA   F4F4F4
     Feature Page 390            1        0
     Comparison 390              0        1   <- the band
     Homepage / Features /       0        1   each
       Blog / Blog Post 390
     Pricing 390                 0       12

   i.e. #E5E5EA is the outlier in one template pair, and #F4F4F4 is also the
   site's `--surface` Global Colour. The owner ruled the darker grey a slip in
   the design file and asked for one hero grey across the site, so this line
   now DIVERGES FROM THE FEATURE / INDUSTRY DOCUMENTS DELIBERATELY. Do not
   "restore" it to the transcribed #E5E5EA -- that is the change being undone.
   Moves 26 pages: 7 Feature/Industry + 18 comparison + the /compare/ hub.

   NOT A GLOBAL COLOUR REFERENCE, still. #F4F4F4 IS `--surface` in
   et_divi.et_global_data.global_colors, but this file has no recorded gcid id
   for it (tooling-and-facts section 3: "provisioned; gcid ids not recorded --
   read them off the option rather than assuming"). Writing a var() whose id
   was guessed renders as nothing, which is a bug this project has shipped
   before. The literal stays until someone reads the id off the option; the
   one line to change is this one.

   The hero section carries `ss-sec` too, so it takes the 50/15 gutters from
   block 1; only the vertical padding, the fill and the radius are here.
   Competitor, read off the live CSSOM at 390 and 1440: `div` (0,0,1)
   `transparent` and `.et_pb_section` (0,1,0) `rgb(255,255,255)`, both from
   Divi's inline critical CSS, neither !important. (0,3,0) below wins outright. */
.et-l--post .et_builder_inner_content .ss-hero,
.et-l--body .et_builder_inner_content .ss-hero {
  background-color: #F4F4F4;                       /* owner 2026-08-22 (was #E5E5EA) */
  border-bottom-left-radius: 30px;                 /* design 0 0 30px 30px */
  border-bottom-right-radius: 30px;
  padding-top: 0;                                  /* design 0 */
  padding-bottom: var(--gvid-space-xl, 140px);     /* design 140 / 70 at 390 */
}
/* The H1's typography comes from the H1 preset on a real divi/heading module.
   These two declarations are what a preset cannot reach: Divi's parent theme
   puts `padding-bottom:10px` on every h1-h6 at (0,0,1), and the OLD hero left
   a text-shadow behind that must not survive onto black-on-grey type. */
.et-l--post .ss-hero h1,
.et-l--body .ss-hero h1 {
  color: #000000;                                  /* design #000000 */
  padding-bottom: 0;
  text-shadow: none;
}

/* The hero sub-paragraph is 20px, one step ABOVE the 18px `.ss-intro` the
   other four sections use, and it is #000000 rather than the --text token.
   Both are the design's values, so it gets its own class rather than being
   forced through `.ss-intro`. */
.et-l--post .ss-hero .ss-hero-sub,
.et-l--body .ss-hero .ss-hero-sub {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 20px;                                 /* design 20 */
  line-height: 1.2;                                /* design 1.2 */
  color: #000000;                                  /* design #000000 */
}
@media (max-width: 980px) {
  .et-l--post .ss-hero .ss-hero-sub,
  .et-l--body .ss-hero .ss-hero-sub {
    font-size: 18px;                               /* design mobile 18 */
  }
}

/* ============ 3. BREADCRUMB ============
   Design desktop: `display:flex; gap:7px; align-items:center; font-size:16px;
   line-height:1.2`, non-current items #636363, current item #000000.
   Design at 390: gap 6, font-size 14, and `Home` demoted to a plain <span>.
   THE DEMOTION IS NOT FOLLOWED -- Home stays a real link on both breakpoints.
   Dropping it costs an internal link and its anchor text, which is an
   SEO-gate item, not a styling choice. Reported as a deliberate divergence.

   See the module docstring for why this is scoped `.ss-hero .ss-crumbs`. */
.et-l--post .ss-hero .ss-crumbs,
.et-l--body .ss-hero .ss-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;                                        /* design 7 */
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 16px;                                 /* design 16 */
  line-height: 1.2;                                /* design 1.2 */
  color: #636363;                                  /* design #636363 */
}
/* Beats the .ss-sec link guard above (0,4,0 vs 0,3,0) so breadcrumb links
   stay the design's grey rather than taking the violet body-link colour. */
/* MEASURED, not assumed. The first version of this rule was
   `.et-l--post .et_builder_inner_content .ss-hero .ss-crumbs a` = (0,4,1) and
   the Home link still rendered violet: the shared link guard is
   `.ss-sec a:not([class*="et_pb_button"]):not([class*="ssh-"])`, and each
   :not() contributes its argument's specificity, so that guard is (0,5,1),
   not the (0,3,1) it looks like. The two :not()s below make this (0,6,1). */
.et-l--post .et_builder_inner_content .ss-hero .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]),
.et-l--body .et_builder_inner_content .ss-hero .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]) {
  color: #636363;                                  /* design #636363 */
  text-decoration: none;
}
.et-l--post .et_builder_inner_content .ss-hero .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]):hover,
.et-l--body .et_builder_inner_content .ss-hero .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]):hover {
  color: var(--gcid-6spcyv8qzp, #ff7043);
}
.et-l--post .ss-hero .ss-crumbs [aria-current="page"],
.et-l--body .ss-hero .ss-crumbs [aria-current="page"] {
  color: #000000;                                  /* design #000000 */
}
/* The separator chevron. The design draws a 7x14 stroked SVG; an inline SVG
   inside a Divi text module is stripped by the editor's own sanitiser on the
   next save, so it is drawn with a border instead -- same shape, nothing to
   strip, and no dependence on an icon font that maps carets into the ASCII
   range (landmine C4). aria-hidden is on the span in the content. */
.et-l--post .ss-hero .ss-crumbs .ss-crumb-sep,
.et-l--body .ss-hero .ss-crumbs .ss-crumb-sep {
  display: inline-block;
  width: 6px;                                      /* design 7x14 glyph */
  height: 6px;
  border-top: 1.5px solid #636363;                 /* design stroke-width 1.5 */
  border-right: 1.5px solid #636363;
  transform: rotate(45deg);
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .et-l--post .ss-hero .ss-crumbs,
  .et-l--body .ss-hero .ss-crumbs {
    gap: 6px;                                      /* design mobile 6 */
    font-size: 14px;                               /* design mobile 14 */
  }
  .et-l--post .ss-hero .ss-crumbs .ss-crumb-sep,
  .et-l--body .ss-hero .ss-crumbs .ss-crumb-sep {
    width: 5px; height: 5px;                       /* design mobile 6x12 glyph */
  }
}

/* ============ 4. HERO IMAGE ============
   Design: wrapper `border-radius:20px; overflow:hidden; height:730px`
   (280 at 390) with `<img style="width:100%; height:100%; object-fit:cover">`.
   Competitor: Divi core `.et_pb_image img{...}` (0,2,1); (0,3,1) below wins.
   NOT `.ss-hero-media` -- see the module docstring. */
.et-l--post .ss-hero-img img,
.et-l--body .ss-hero-img img {
  display: block;
  width: 100%;
  height: 730px;                                   /* design 730 */
  object-fit: cover;                               /* design cover */
  border-radius: var(--gvid-radius-row, 20px);     /* design 20 */
}
@media (max-width: 980px) {
  .et-l--post .ss-hero-img img,
  .et-l--body .ss-hero-img img {
    height: 280px;                                 /* design mobile 280 */
  }
}

/* ============ 5. VALUE CARDS ============
   Design: `display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px`; card
   `border-radius:30px; padding:35px; height:306px; display:flex;
   flex-direction:column; gap:35px` with a nested 20px group holding H3 + P.
   At 390: single column, padding 25, FLAT gap 20, no fixed height.

   THE GRID IS BUILT AS FLEX, NOT GRID. A Divi row is already
   `display:flex` (`.et_pb_row.et_flex_row`) and its columns get their width
   from Divi's n/24 `et_flex_column_*` classes. Overriding flex-basis is one
   declaration; converting the row to a grid would mean fighting every column
   width rule Divi emits. Competitor is `.et_flex_column_*` (0,1,0); (0,4,0)
   below is comfortable.

   FIVE CARDS, NOT THREE. This page has five features and the design's grid
   is a 3-column track, not a 3-item limit -- the homepage ships five
   solutions cards against a mobile frame that drew four for exactly the same
   reason (open-decisions section 9). Five cards wrap 3 + 2. */
.et-l--post .et_builder_inner_content .ss-cards-3,
.et-l--body .et_builder_inner_content .ss-cards-3 {
  flex-wrap: wrap;
  column-gap: 20px;                                /* design gap 20 */
  row-gap: 20px;
  align-items: stretch;
}
.et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
.et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column {
  flex: 0 0 calc((100% - 40px) / 3);               /* 3-up with two 20px gaps */
  max-width: calc((100% - 40px) / 3);
  width: auto;
  margin: 0;
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  .et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column {
    flex-basis: 100%;                              /* design 390: single column */
    max-width: 100%;
  }
}

.et-l--post .et_builder_inner_content .ss-value-card,
.et-l--body .et_builder_inner_content .ss-value-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--gvid-radius-card, 30px);    /* design 30 */
  padding: 35px;                                   /* design 35 */
  row-gap: 35px;                                   /* design 35 */
  min-height: 306px;                               /* design fixed 306 */
  box-sizing: border-box;
}
/* The design nests H3 + P in a 20px group inside the card's 35px gap. One
   flex level with two gap values is not expressible, so the 35px lives on the
   card and the 20px is restored by pulling the paragraph up. Measured
   equivalent: icon -> H3 is 35, H3 -> P is 20, exactly as drawn. */
.et-l--post .et_builder_inner_content .ss-value-card > .et_pb_module:last-child,
.et-l--body .et_builder_inner_content .ss-value-card > .et_pb_module:last-child {
  margin-top: -15px;                               /* 35 - 20 = design nested 20 */
}
/* The icon module shrink-wraps to the glyph and Divi centres it inside the
   card: measured at 1440, card content ran 85..448 and the 48px module sat at
   243, i.e. dead centre, while the design puts it hard left above the H3.
   `text-align:left` on the module (which is what the icon module's own align
   setting emits) does NOT move it, because the module is a flex ITEM of the
   card and it is the item that is centred, not the text inside it -- so the
   declaration that moves it is `align-self`, on the item. Landmine C1 in its
   other guise: on a Divi 5 module the flexbox axes are not the ones the
   property names suggest. */
.et-l--post .et_builder_inner_content .ss-value-card .ss-value-icon,
.et-l--body .et_builder_inner_content .ss-value-card .ss-value-icon {
  align-self: flex-start;                          /* design: icon hard left */
  margin-left: 0;
  margin-right: 0;
}

/* The design centres the section button (`align-items:center` on the hero
   text cluster and on the Values and Benefits sections).
   MEASURED, and the obvious rule does not work. `margin-left/right:auto` on
   `.ss-btn-primary` computed to 0px: the class lands on the <a>, which is
   `display:inline-block` with `max-width:max-content`, and auto margins do
   nothing to an inline-block. Divi's OWN centred button (the shared CTA
   banner's) is centred by `text-align:center` on the button's WRAPPER, which
   is what its alignment setting emits -- so that is the declaration copied
   here. It is keyed on `.ss-sec` rather than on the wrapper's
   `.et_pb_button_N_wrapper` ordinal (which renumbers whenever a button is
   added or removed) or on the preset-derived wrapper class (which would
   centre every button bound to that preset sitewide, including the header's
   Free Trial button). */
.et-l--post .et_builder_inner_content .ss-sec .et_pb_button_module_wrapper,
.et-l--body .et_builder_inner_content .ss-sec .et_pb_button_module_wrapper {
  text-align: center;                              /* design: centred button */
}

/* Divi's parent theme sets h1-h6 colour #333 / padding-bottom 10px at (0,0,1)
   and the H3 preset cannot carry a colour that differs per surface, so white
   is set here rather than as a literal hex in post_content. */
.et-l--post .et_builder_inner_content .ss-value-card h3,
.et-l--body .et_builder_inner_content .ss-value-card h3 {
  color: #ffffff;                                  /* design #ffffff */
  padding-bottom: 0;
}
.et-l--post .et_builder_inner_content .ss-value-card p,
.et-l--body .et_builder_inner_content .ss-value-card p {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 18px;                                 /* design 18 */
  line-height: 1.2;                                /* design 1.2 */
  color: #ffffff;                                  /* design #ffffff */
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-value-card,
  .et-l--body .et_builder_inner_content .ss-value-card {
    padding: 25px;                                 /* design mobile 25 */
    row-gap: 20px;                                 /* design mobile flat 20 */
    min-height: 0;                                 /* design mobile: content-sized */
  }
  .et-l--post .et_builder_inner_content .ss-value-card > .et_pb_module:last-child,
  .et-l--body .et_builder_inner_content .ss-value-card > .et_pb_module:last-child {
    margin-top: 0;                                 /* design mobile gap is flat */
  }
  .et-l--post .et_builder_inner_content .ss-value-card p,
  .et-l--body .et_builder_inner_content .ss-value-card p {
    font-size: 16px;                               /* design mobile 16 */
    line-height: 1.25;                             /* design mobile 1.25 */
  }
}

/* THE CARD WASHES.
   The design's stops are rgb(237,231,246) -> rgb(124,77,255) / rgb(38,198,218)
   at 179.961deg, -108.52% and 125.50%. All four stop colours ARE Global
   Colours (--border #ede7f6, --accent-violet, --accent-cyan, --primary), so
   they are referenced as the custom properties Divi emits from the Global
   Colours store -- owner decision 8, "by gcid, never literal hex", satisfied
   without writing a hex into post_content.

   WHY THE WASH IS IN CSS AND NOT ON THE MODULE, which is a deliberate
   deviation from the build plan's section 2.4. Divi's gradient-stop field
   takes a colour string, and NOTHING on this site puts a $variable() marker
   in one: the shared CTA banner uses #b9a0fa/#885efe literals, the shared FAQ
   uses rgba() literals, and a site-wide search for a `stops` array containing
   `gcid-` returns zero rows. Authoring the stops on the module would
   therefore mean either an unproven Divi feature (blank cards if it does not
   resolve) or literal hex in content. In CSS both problems disappear and the
   three washes are defined once for all seven pages.
   Cost, stated plainly: changing a card's colour is now a stylesheet edit,
   not a builder edit. The one line to change is the modifier class on the
   column.

   CARD 3 IS ORANGE. The design draws cards 2 AND 3 in the same cyan on both
   frames and both templates; owner decision 4 overrules it to restore the
   site's orange / cyan / violet rhythm. */
.et-l--post .et_builder_inner_content .ss-value-card--violet,
.et-l--body .et_builder_inner_content .ss-value-card--violet {
  background-image: linear-gradient(179.961deg,
    var(--gcid-vak449rdh1, #ede7f6) -108.52%,
    var(--gcid-bs9uwvujec, #7c4dff) 125.50%);
}
.et-l--post .et_builder_inner_content .ss-value-card--cyan,
.et-l--body .et_builder_inner_content .ss-value-card--cyan {
  background-image: linear-gradient(179.961deg,
    var(--gcid-vak449rdh1, #ede7f6) -108.52%,
    var(--gcid-2oou2aqy2u, #26c6da) 125.50%);
}
.et-l--post .et_builder_inner_content .ss-value-card--orange,
.et-l--body .et_builder_inner_content .ss-value-card--orange {
  background-image: linear-gradient(179.961deg,
    var(--gcid-vak449rdh1, #ede7f6) -108.52%,
    var(--gcid-6spcyv8qzp, #ff7043) 125.50%);
}

/* ============ 6. BENEFITS: THE 2-UP ============
   Design: `display:flex; gap:20px; align-items:stretch`; LEFT `flex:1` holds
   the accordion; RIGHT is `width:660px; flex-shrink:0; border-radius:20px;
   min-height:636px`. At 390 the image moves ABOVE the list at height 220 and
   full width -- hence order:-1 rather than a second markup order.
   Competitor: `.et_flex_column_*` (0,1,0). */
.et-l--post .et_builder_inner_content .ss-benefits-2up,
.et-l--body .et_builder_inner_content .ss-benefits-2up {
  flex-wrap: wrap;
  column-gap: 20px;                                /* design 20 */
  row-gap: 25px;                                   /* design mobile section gap 25 */
  align-items: stretch;
}
.et-l--post .et_builder_inner_content .ss-benefits-2up > .et_pb_column,
.et-l--body .et_builder_inner_content .ss-benefits-2up > .et_pb_column {
  margin: 0;
  width: auto;
}
.et-l--post .et_builder_inner_content .ss-benefits-list,
.et-l--body .et_builder_inner_content .ss-benefits-list {
  flex: 1 1 400px;                                 /* design flex:1 */
  max-width: 100%;
}
.et-l--post .et_builder_inner_content .ss-benefits-media,
.et-l--body .et_builder_inner_content .ss-benefits-media {
  flex: 0 0 660px;                                 /* design 660 */
  max-width: 660px;
}
.et-l--post .ss-benefits-media img,
.et-l--body .ss-benefits-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 636px;                               /* design min-height 636 */
  object-fit: cover;                               /* design cover */
  border-radius: var(--gvid-radius-row, 20px);     /* design 20 */
}
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-benefits-media,
  .et-l--body .et_builder_inner_content .ss-benefits-media {
    flex-basis: 100%;                              /* design 390: full width */
    max-width: 100%;
    order: -1;                                     /* design 390: image ABOVE the list */
  }
  .et-l--post .et_builder_inner_content .ss-benefits-list,
  .et-l--body .et_builder_inner_content .ss-benefits-list {
    flex-basis: 100%;
  }
  .et-l--post .ss-benefits-media img,
  .et-l--body .ss-benefits-media img {
    height: 220px;                                 /* design mobile 220 */
    min-height: 0;
  }
}

/* ============ 7. THE BENEFITS ACCORDION BELOW 981px ============
   The shared-desktop pass wrote `.ss-benefits` into the DESKTOP half only.
   The phone half at style.css:2453 is keyed `.ss-faq` and mentions
   `.ss-benefits` ZERO times, so below 981px a Benefits accordion would render
   with Divi's factory styling -- 20px padding, 16px title, a #ccc inline
   glyph and no white disc -- on the breakpoint the owner cares most about.

   The build plan says to extend that block's selector list. These are the
   same declarations copied verbatim instead, keyed on `.ss-benefits`, so not
   one byte of the existing block changes and the FAQ needs no
   re-verification. The two selectors differ in class name, so they cannot
   collide; if the phone FAQ values are ever retuned, both lists must move
   together and this comment is the pointer.
   Values are byte-for-byte the design's mobile numbers already recorded at
   style.css:2453: row padding 12 12 12 20, stack gap 12, title 18/1.2/-0.03em,
   disc 36px white with the primary glyph. */
@media (max-width: 980px) {
  .ss-benefits .et_pb_toggle {
    padding: 12px 12px 12px 20px;
    border-radius: var(--gvid-radius-row, 20px);
    /* The design draws the rows as clean pills with NO outline; the desktop
       half sets `border:0` but it was written inside @media (min-width:981px),
       so below that Divi core's `.et_pb_toggle{border:1px solid #d9d9d9}`
       (0,1,0, no !important, emitted inline) was unopposed and every row
       carried a grey outline at 390 and 768 -- visible in the design-vs-live
       board, and the phone is the priority breakpoint. `.ss-benefits
       .et_pb_toggle` is (0,2,0), so it wins without !important.
       `.ss-faq` has the IDENTICAL defect and the identical one-line fix, but
       that class is on six pages, so it is deliberately not changed here. */
    border: 0;
  }
  .ss-benefits .et_pb_accordion {
    row-gap: 12px;
  }
  .ss-benefits .et_pb_accordion .et_pb_toggle {
    margin-bottom: 0;
  }
  .ss-benefits .et_pb_toggle_title {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    padding-right: 48px;
  }
  .ss-benefits .et_pb_toggle_title::before {
    top: 50%;
    right: 0;
    width: 36px;
    height: 36px;
    margin-top: -18px;
    line-height: 36px;
    text-align: center;
    border-radius: 200px;
    background-color: #ffffff;
    color: var(--gcid-6spcyv8qzp, #ff7043);
  }
}

/* An accordion answer may carry the row's own photograph. The design's
   answers are text only, but this page has five captioned photographs and
   the design offers exactly one alt-less decorative slot for them; putting
   each photograph with its own alt inside its own row is what keeps all five
   alts. Radius and top margin only -- nothing else about the answer moves. */
.et-l--post .ss-benefits .et_pb_toggle_content img,
.et-l--body .ss-benefits .et_pb_toggle_content img {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 20px;                                /* design token space-s */
  border-radius: var(--gvid-radius-row, 20px);     /* design 20 */
}

/* ============ button height ============
   The design sets `line-height: 1` on every CTA, so a button is exactly its
   font-size plus its padding: 44px desktop (20 + 12 + 12), 48px for the phone
   hero/CTA (18 + 15 + 15) and 44px for the phone section CTAs (16 + 14 + 14).
   Live measured 58 / 61 / 55 -- every button on the page 11-17px too tall.

   The `.ss-btn-primary` block already declares `line-height: 1` and it was
   LOSING. Divi core emits `.et_pb_button{line-height:1.7em !important}` in an
   inline <style>, and !important beats any specificity -- (0,1,0) with
   !important defeats the existing (0,4,0) without it. This is landmine trap
   number two in the handoff's own list ("!important DOES beat any
   specificity"), and the file's earlier note about needing MORE CLASSES is the
   other trap; only the !important matters here.

   Confirmed by reading the CSSOM for the winning declaration rather than
   inferring: the only two rules setting line-height on a `.ss-btn-primary`
   are Divi's 1.7em !important and ours at 1, at both 390 and 1440.

   Appended after the existing block, so it also wins on order. */
.et-l--post .et_builder_inner_content .et_pb_section .ss-btn-primary,
.et-l--body .et_builder_inner_content .et_pb_section .ss-btn-primary {
  line-height: 1 !important;                       /* design 1 */
}

/* ==================================================================== */
/* ---- feature page template, PASS 2 (design-match round 2, 2026-08-19) ----
   APPEND-ONLY. Nothing above this line is edited, so the diff against the
   applied file is exactly these additions and zero lines are removed.
   Where a rule below supersedes one written above, that is stated inline.

   Blast radius, measured on the staging DB rather than assumed
   (`post_content LIKE '%"globalModule":"<id>"%'`, post_type=page,
   post_status=publish):
     .ss-hero-sub  .ss-values  .ss-cards-3  .ss-benefits  -> 4 pages
       (CORRECTED in pass 7, 2026-08-19. This read "1 page (/more-freedom/)"
        when it was written, because /more-freedom/ was then the only rebuilt
        Feature Page. The selectors were always CLASS-based and never
        page-scoped, so they reached /more-bookings/, /more-clients/ and
        /more-enrolment/ the moment those pages were rebuilt. Re-counted on
        the staging DB: post_content LIKE '%ss-hero-sub%' (and the same for
        the other three classes), post_type=page, post_status=publish -> the
        four Feature Pages, no global layout. Comment only; no rule below
        changed.)
     .ss-testimonials (global 987493353)                  -> 4 pages
     .ss-faq          (global 987493336)                  -> 7 pages
       (/, /how-much/, /more-bookings/, /more-clients/,
        /more-enrolment/, /more-freedom/, /more-tools/)
   One further page, 987491185 /hair-salon-software/, carries the literal
   string `ss-faq` — an UNRELATED <details>-based component defined by an
   inline <style> in its own content. It contains zero `.et_pb_toggle`
   descendants, so every selector below is inert on it. Verified, not assumed. */

/* ============ P2.1 THE HERO SUB-LINE IS 14px BELOW 768 ============
   Design: 20px/1.2 desktop, 18px/1.2 at 390 (both frames, transcribed).
   Live measured 20px at 1440 and 768, but 14px/19.6px at 390.

   THE CAUSE IS NOT WHAT IT LOOKS LIKE, so it is recorded here in full.
   The losing value comes from

     @media only screen and (max-width:767px){
       .et_pb_text_1 p{font-size:14px!important;line-height:1.4em!important} }

   in `et-core-unified-987489313.min.css`. That filename looks like Divi's
   generated per-module sheet, and the rule looks like a generated ordinal
   rule -- for which the correct fix is a MODULE SETTING, so Divi re-emits it.
   It is neither. `et-core-unified-<post-id>.min.css` is the sitewide THEME
   OPTIONS Custom CSS blob (the same file also carries
   `.pa-multi-line-highlight h2`, `a[href*="book-a-demo"]{display:none}` and
   several `body.page-id-…` rules for other pages); Divi's generated per-module
   CSS is the `…-deferred-<post-id>.min.css` beside it. This is the hazard the
   build plan section 3 rule 3 names: hand-written sitewide CSS aimed at an
   ordinal that lands on this page by accident.

   Consequence: a module setting CANNOT fix it. Divi emits text-module
   typography as `.et_pb_text_N .et_pb_text_inner{font-size:…}` with NO
   !important (see `.et_pb_text_11 .et_pb_text_inner{…font-size:14px}` in the
   deferred sheet), and !important beats any specificity. Read off the CSSOM
   at 390: the only two declarations reaching this <p> are Divi's
   `p{font-size:100%}` and the 14px!important above. So the fix belongs in
   this stylesheet, and it needs !important AND more specificity, because
   among !important declarations ordinary specificity still applies:
     competitor `.et_pb_text_1 p`                                    (0,1,1)!
     this rule  `.et-l--post .ss-hero .ss-hero-sub .et_pb_text_inner p` (0,4,1)!

   `inherit` rather than the literal numbers on purpose: the module already
   carries the design's 20/18 responsive pair (block 2 above), so inheriting
   keeps ONE source of truth and introduces no new breakpoint -- Divi's 767 is
   a third breakpoint this project has deliberately not adopted
   (open-decisions section 1). */
.et-l--post .ss-hero .ss-hero-sub .et_pb_text_inner p,
.et-l--body .ss-hero .ss-hero-sub .et_pb_text_inner p {
  font-size: inherit !important;                   /* = the module: design 20 / 18 */
  line-height: inherit !important;                 /* = the module: design 1.2 */
}

/* ============ P2.2 ACCORDION ROW HEIGHT ============
   Design row, transcribed from the header <div> of both accordions:
     390    `padding:12px 12px 12px 20px`, disc `width:36px;height:36px`,
            `align-items:center`      -> row height 12 + 36 + 12 = 60
     desktop `padding:15px 15px 15px 25px`, disc 48x48
                                      -> row height 15 + 48 + 15 = 78
   Live measured 46 at 390 and 60 at 1440 -- every row 18px short at both.

   Why: in the design the disc is an in-flow flex child, so IT sets the row's
   content height. In Divi the disc is `.et_pb_toggle_title::before` with
   `position:absolute`, so it contributes nothing and the row collapses onto
   the title's line box (18 x 1.2 = 21.6 at 390, 25 x 1.2 = 30 at desktop).
   46 = 21.6 + 24 and 60 = 30 + 30 exactly.

   So the number to restore is the DISC's height, not a row height: give the
   title a min-height equal to the disc and the design's padding does the
   rest. `display:flex; align-items:center` reproduces the design's own
   `align-items:center` so a short title is centred against the disc instead
   of sitting 7px above it, and a two-line title still grows the row (measured
   at 390: the 2-line FAQ row stays 67, the 1-line rows go 48 -> 60).

   Competitors, read off the CSSOM: nothing sets `min-height` or `display` on
   `.et_pb_toggle_title` at all; the only height input is Divi core's
   `.et_pb_toggle .et_pb_toggle_title{padding:0 50px 0 0}` (0,2,0). (0,3,0)
   below is ample, and it is appended after this file's own (0,3,0) title
   block so it also wins on order.

   SHARED: `.ss-faq` reaches 7 published pages, `.ss-benefits` 1. Both are in
   the list because they are the SAME component in the design (the two row
   markups are byte-identical apart from one `color` on the answer) and they
   sit on the same page -- fixing only `.ss-benefits` would put 60px rows and
   46px rows on /more-freedom/ at 390, which is worse than leaving both wrong.
   TO REVERSE: delete the two `.ss-faq` selectors from each list below. */
.et-l--post .ss-faq .et_pb_toggle_title,
.et-l--body .ss-faq .et_pb_toggle_title,
.et-l--post .ss-benefits .et_pb_toggle_title,
.et-l--body .ss-benefits .et_pb_toggle_title {
  display: flex;                                   /* design: the header is a flex row */
  align-items: center;                             /* design align-items:center */
  min-height: 48px;                                /* design desktop disc 48 -> row 78 */
}
@media (max-width: 980px) {
  .et-l--post .ss-faq .et_pb_toggle_title,
  .et-l--body .ss-faq .et_pb_toggle_title,
  .et-l--post .ss-benefits .et_pb_toggle_title,
  .et-l--body .ss-benefits .et_pb_toggle_title {
    min-height: 36px;                              /* design 390 disc 36 -> row 60 */
  }
}

/* ============ P2.3 THE FAQ ROW BORDER BELOW 981 ============
   The identical defect the `.ss-benefits` phone block above already fixes,
   and its comment names this as the twin. The desktop half sets `border:0`
   but it lives inside `@media (min-width:981px)`, so below that Divi core's
   inline `.et_pb_toggle{border:1px solid #d9d9d9}` (0,1,0, no !important) is
   unopposed. Measured at 390: border-top-width 1px, colour rgb(217,217,217);
   at 1440: 0. The design draws no outline on any accordion row.
   (0,3,0) beats (0,1,0) without !important. SHARED: 7 pages. */
@media (max-width: 980px) {
  .et-l--post .ss-faq .et_pb_toggle,
  .et-l--body .ss-faq .et_pb_toggle {
    border: 0;                                     /* design: no row outline */
  }
}

/* ============ P2.4 THE OPEN ROW USED A DIFFERENT ICON FONT ============
   Measured on every closed row:  content '\f078', font-family FontAwesome,
                                  weight 900   (Divi's emission of the
                                  accordion's own `closedToggleIcon`)
   Measured on the open row:      content '\e04f', font-family ETmodules,
                                  weight 400, transform rotate(180deg)
   i.e. two different typefaces and two different shapes in one strip. The
   180deg is this file's own rule above; on ETmodules' \e04f (a filled
   circle-with-minus, radially symmetric) it is a visual no-op, which is why
   the rotation looked broken rather than the glyph.

   Divi 5.9.0's Accordion module has NO open-icon setting to fix this with:
   `AccordionModule.php` declares only `closedToggleIcon` (line 347); the
   `openToggleIcon` sitting in this page's accordion attributes is a divi/TOGGLE
   attribute (`ToggleModule.php:382`) and the accordion renderer never reads
   it. So the open glyph falls through to Divi core's
   `.et_pb_toggle_open > .et_pb_toggle_title::before{content:'\e04f'}` (0,2,1)
   and `.et_pb_toggle_title::before{font-family:ETmodules!important}` (0,1,1).
   Both are beaten by (0,4,1) + !important below.

   The result is the SAME glyph in both states: Divi's down-chevron closed,
   the same chevron rotated 180deg (i.e. pointing up) open. Divi's down-chevron
   is kept deliberately over the design's right-chevron -- open-decisions
   section 9, matching the homepage. SHARED: 7 pages (`.ss-faq`) + 1
   (`.ss-benefits`); every one of the 7 gets its closed glyph from the same
   shared FAQ layout, so the pair stays consistent everywhere. */
.et-l--post .ss-faq .et_pb_toggle_open .et_pb_toggle_title::before,
.et-l--body .ss-faq .et_pb_toggle_open .et_pb_toggle_title::before,
.et-l--post .ss-benefits .et_pb_toggle_open .et_pb_toggle_title::before,
.et-l--body .ss-benefits .et_pb_toggle_open .et_pb_toggle_title::before {
  font-family: "FontAwesome" !important;           /* = the closed rows' font */
  font-weight: 900 !important;                     /* = the closed rows' weight */
  content: "\f078" !important;                     /* = the closed rows' glyph */
}

/* ============ P2.5 THE VALUES GRID ORPHANED ITS SHORT ROW ============
   The design's grid is `grid-template-columns:1fr 1fr 1fr`, so a 5-item grid
   would leave slot 6 empty and slots 4-5 hard left. Block 5 above builds the
   3-up as flex (with its reason), and flex's default `justify-content:normal`
   reproduces the same left-packed orphan: measured at 1440 the second row's
   two cards started at x=50 and x=503 under a three-card row spanning
   50..1390, leaving a 454px hole on the right.
   Five cards is the CONTENT (this page has five features) and the design's
   3-column track is a track, not a limit -- the same call the homepage made
   with five solutions cards against a four-card mobile frame.
   Centring the short row is the minimal reading of "3-up grid, gap 20" that
   does not delete a feature. Competitor: nothing else sets justify-content on
   this row; this is (0,3,0) and the block-5 rule it extends is also (0,3,0),
   appended later so it wins the tie on order.
   No effect at <=980, where every card is 100% wide. PAGE-LOCAL. */
.et-l--post .et_builder_inner_content .ss-cards-3,
.et-l--body .et_builder_inner_content .ss-cards-3 {
  justify-content: center;                         /* design: centred cluster */
}

/* ============ P2.6 THE VALUES SECTION HAD NO BACKGROUND ============
   Design (identical text on the desktop template and the 390 frame):
     position:absolute; inset:0; background:
       linear-gradient(180deg, rgba(255,255,255,0) 55.10%, rgba(255,255,255,0.1) 85.51%),
       linear-gradient(180deg, rgb(255,255,255) 14.13%, rgba(255,255,255,0.7) 39.85%),
       url('https://simplesalon2-dev.10web.cloud/wp-content/themes/divi-simpleworld/assets/features-bg.jpg') 0% 45% / cover no-repeat
   Live: flat white, which is why Values and Benefits read as one undivided
   block -- the wash is the only thing that separates them.

   IS THIS COVERED BY OWNER DECISION 3 ("different images per page / each page
   keeps its own media")? NO, and the call is stated so it can be reversed:
   `features-bg.jpg` is a grey halftone DOT PATTERN on white (opened and
   looked at, not inferred), drawn under a 70-100% white wash, carrying no
   subject, no alt and no meaning. It is section decoration in the same class
   as the hero's #E5E5EA panel, not page media. Decision 3 is about the two
   stock PHOTOGRAPHS the design points all seven pages at.
   TO REVERSE: delete this rule; nothing else depends on it.

   WHY CSS AND NOT THE SECTION'S BACKGROUND FIELD, which is what the work
   order asked for. Divi's background field holds ONE gradient; the design
   stacks TWO over the image. They can be composited into a single equivalent
   gradient (white 1.0 @14.13%, 0.7 @39.85%, 0.7 @55.10%, 0.73 @85.51%) but
   those four stops are numbers I derived, not numbers the design contains,
   and this file's own block 5 already records the same trade-off for the card
   washes. In CSS the design's declaration is reproduced verbatim, and it is
   written once for all seven Feature Pages instead of seven times.
   Cost, stated plainly: changing this texture is now a stylesheet edit, not a
   builder edit. TO MOVE IT ONTO THE MODULE: use the composite stops above.

   The image is a 2048x2048 / 162,132-byte re-encode of the design's
   4096x4096 / 1,093,530-byte original (featurepage/upload_texture.py records
   the derivation and the sha256). Root-relative URL, never absolute: an
   absolute one would pin the staging hostname into the theme.

   The design also puts `overflow:hidden` on this section. NOT copied: it
   exists to clip the design's absolutely-positioned background LAYER, and a
   background on the section itself has nothing to clip. Adding it would
   establish a new block formatting context for no benefit.

   Competitor: none. Nothing sets background-image on this section -- measured
   `background-image: none` before. (0,3,0) is headroom. PAGE-LOCAL. */
.et-l--post .et_builder_inner_content .ss-values,
.et-l--body .et_builder_inner_content .ss-values {
  background-image:
    linear-gradient(180deg, rgba(255,255,255,0) 55.10%, rgba(255,255,255,0.1) 85.51%),
    linear-gradient(180deg, rgb(255,255,255) 14.13%, rgba(255,255,255,0.7) 39.85%),
    url('https://simplesalon2-dev.10web.cloud/wp-content/uploads/2026/08/ss-features-bg-2026-08.jpg');
  background-position: 0 0, 0 0, 0% 45%;           /* design 0% 45% on the image */
  background-size: auto, auto, cover;              /* design cover */
  background-repeat: no-repeat, no-repeat, no-repeat;   /* design no-repeat */
}

/* ============ P2.6b THE CTA BANNER H2 -- A REGRESSION THIS PASS CAUSED ============
   Adding `ss-sec` to the CTA global layout's section (which is what gives the
   violet card the design's 50px gutters and its 1340px width) also brought
   this file's `.ss-sec h2` rule onto the CTA heading, and it took it from the
   design's 60px down to 35px at 1440 on all SIX pages carrying the banner.
   Caught by measuring after the write, not predicted.

   The shared-desktop block's own comment says the CTA is safe because the two
   rules tie on specificity. THAT COMMENT MISCOUNTS, and the correction is
   recorded here so the claim is not trusted again:
     Divi's emission  `.et_pb_text_N .et_pb_text_inner h2`             = (0,2,1)
     the .ss-sec rule `.et-l--post .et_builder_inner_content .ss-sec h2` = (0,3,1)
   (0,3,1) beats (0,2,1) in the class column; it is not a tie. The "measured
   60px before and after" note in that comment was taken while `ss-sec` was
   NOT yet on the CTA section, i.e. it measured a selector matching nothing.

   Restored on `.ss-cta`, the ROW carrying the violet card, which exists only
   inside this banner. (0,3,1), appended after the `.ss-sec h2` rule so it
   wins the tie on order.

   ONLY the desktop value is written. Below 981 the sitewide
   `.et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h2
    {font-size:25px!important}` (0,4,1) and, below 768, the CTA's own
   `... .ss-cta .et_pb_module h2{30px!important}` (0,5,1) still govern; both
   measured unchanged through this pass (390: 30px before and after).
   Design: CTA H2 60px desktop / 30px at 390. SHARED: 6 pages. */
.et-l--post .et_builder_inner_content .ss-cta h2,
.et-l--body .et_builder_inner_content .ss-cta h2 {
  font-size: 60px;                                 /* design 60 */
}

/* ============ P2.7 THE TESTIMONIAL PHOTO DID NOT FILL ITS COLUMN ============
   Design: the photo column is `width:512px; align-self:stretch` and the <img>
   inside it is `width:100%; height:100%; object-fit:cover` -- it fills the
   card top to bottom.
   Live: the image module already carries explicit responsive heights as
   MODULE settings in the shared layout (Divi emits
   `.et_pb_image_N{height:560px}` desktop, 420 tablet, 300 phone) but the
   <img> inside kept its intrinsic aspect ratio, so it measured 647x432 in a
   647x560 box at 1440 (128px of dead space under the photo) and 330x220 in a
   340x300 box at 390 (10px beside it, 80px under it).

   Competitors on the <img>: Divi's `img{height:auto}` and `img{max-width:100%}`
   (inline, 0,0,1) and the layout's own `.et_pb_image_N img{width:100%;
   max-width:100%!important}` (0,2,0) -- none sets height, so (0,3,1) below
   carries it without !important. `max-width` is deliberately not touched, so
   the layout's !important on it still stands.

   The `height:100%` here SUPERSEDES this file's earlier
   `@media (max-width:980px){ .ss-testimonials .et_pb_image img{height:220px} }`
   -- same specificity, later in the file. That 220 was written before the
   module's own 300px phone height was read off the emitted CSS; taking the
   module's height is what removes the gap instead of adding a second one.

   The wrap and <picture> need the height too or the percentage has nothing to
   resolve against: the chain is
   `.et_pb_image` (flex column, definite height) > span.et_pb_image_wrap >
   picture > img. Verified by injecting these exact rules and re-measuring:
   1440 img 432 -> 560, 390 img 220 -> 300, both flush with the module box.

   SHARED: 4 published pages (global layout 987493353). The design's CARD
   around this photo -- `min-height:660px`, `padding:35px`, radius 30, the
   violet-to-grey wash, and a 512px fixed photo column -- is still not built;
   that is reported, not shipped here. */
.et-l--post .ss-testimonials .et_pb_image .et_pb_image_wrap,
.et-l--body .ss-testimonials .et_pb_image .et_pb_image_wrap {
  display: block;
  height: 100%;
}
.et-l--post .ss-testimonials .et_pb_image picture,
.et-l--body .ss-testimonials .et_pb_image picture {
  display: block;
  height: 100%;
}
.et-l--post .ss-testimonials .et_pb_image img,
.et-l--body .ss-testimonials .et_pb_image img {
  width: 100%;                                     /* design width:100% */
  height: 100%;                                    /* design height:100% */
  object-fit: cover;                               /* design cover */
}

/* ==================================================================== */
/* ---- feature page template, PASS 3 (design-match round 3, 2026-08-19) ---- */
/* APPEND-ONLY. Nothing above this line is edited, so the diff against the
   applied file is exactly these additions and zero lines are removed. Where a
   rule below supersedes one written above, that is stated inline.

   WHAT THIS PASS IS. Passes 1 and 2 rebuilt Hero, Values and Benefits to the
   design. The three INHERITED sections -- Testimonials, CTA and FAQ, which
   arrive from global layouts -- carry the right classes and colours but were
   never brought onto the design's spacing and type scale. This block does
   that, and it is deliberately shared: every rule below is keyed on the
   section's own class, so all seven consuming pages move together.

   BLAST RADIUS, measured on the staging DB, not assumed
   (`post_content LIKE '%"globalModule":"<id>"%'`, post_type=page, publish):
     .ss-testimonials (987493353)  4 pages  more-bookings, more-clients,
                                            more-enrolment, more-freedom
     .ss-cta          (987493326)  6 pages  the four above + more-tools, how-much
     .ss-faq          (987493336)  7 pages  the six above + the homepage
     .ss-sec                       the three sections above on those pages,
                                   plus this page's own six sections
   987491185 /hair-salon-software/ carries the literal string `ss-faq` on an
   unrelated <details> component with zero `.et_pb_toggle` descendants, so
   every accordion selector below is inert on it. Verified, not assumed.

   THE HALF THAT IS NOT HERE. Four of this pass's eleven findings are MODULE
   settings, not stylesheet values, and are fixed in the global layouts by
   featurepage/patch_globals.py -- because Divi emits them keyed on a per-type
   ordinal (`.et_pb_text_11`), which is exactly the case the method says to fix
   at the module and never with a hand-written ordinal selector:
     A  seven text modules carried `margin-bottom: gvid-space-m` (35px)
     C  `ss-intro` onto the Testimonials and FAQ intro modules
     F  `ss-chip`  onto the Testimonials and FAQ chip modules
     I  section padding: Testimonials top 70 -> 0 and phone bottom 70 -> 35;
        CTA phone 70 -> 35.  (The FAQ's half of I is P3.9 below, in CSS, and
        that is argued there.)
     K  the testimonial image module's desktop height 560px -> 100%
   and one is an image-delivery value fixed in the existing
   wp-content/mu-plugins/ss-image-delivery.php (J). */

/* ============ P3.1 THE CLUSTER GAP IS TWO NUMBERS ADDED TOGETHER ============
   Design cluster gap (chip -> H2 -> intro, and inside the testimonial card
   stars -> quote): 35px desktop, 25px at 390. Both transcribed: the desktop
   document's header cluster is `display:flex; flex-direction:column; gap:35px`
   and the 390 frame's is `gap:25px`.
   Measured live before: 65px at 1440 and 60px at 390, on Testimonials
   chip->H2, H2->intro and stars->quote; on CTA H2->sub and sub->button; and on
   FAQ chip->H2 and H2->intro.

   65 = 30 + 35 and 60 = 25 + 35. Landmine C6 for the third time on this page.
   The 35 is a MODULE margin-bottom (`.et_pb_text_11{margin-bottom:
   var(--gvid-space-m)!important}` in the generated deferred sheet, (0,1,0)
   AND !important -- checked on the CSSOM rather than assumed, because C5 says
   row padding is !important and it was an open question whether module margin
   is too. It is.) That half is removed at the module by patch_globals.py.
   The 30/25 is the COLUMN's flex `row-gap`, which resolves to Divi's
   `--vertical-gap` (30px) above 981 because nothing sets it on these three
   sections -- `.ss-values`' header column gets 35px from its own module
   gutter setting, which is why the rebuilt sections already measure 35.

   So the design's 35 has to come back as the gap, not as a margin. Below 981
   two of the three are already right (`.ss-testimonials .et_pb_row >
   .et_pb_column{row-gap:25px}` and `.ss-faq > .et_pb_row:first-child >
   .et_pb_column{row-gap:25px}` in the shared-sections block above); the CTA
   has no such rule and measures Divi's 30, so it is added here.

   Competitor, read off the CSSOM: `.et_flex_column{row-gap:var(--vertical-gap)}`
   (0,1,0), no !important, from Divi's inline critical CSS. (0,3,0) below wins
   without !important. SHARED: 4 / 6 / 7 pages. */
@media (min-width: 981px) {
  .et-l--post .ss-testimonials .et_pb_row > .et_pb_column,
  .et-l--body .ss-testimonials .et_pb_row > .et_pb_column,
  .et-l--post .ss-faq .et_pb_row > .et_pb_column,
  .et-l--body .ss-faq .et_pb_row > .et_pb_column,
  .et-l--post .ss-cta > .et_pb_column,
  .et-l--body .ss-cta > .et_pb_column {
    row-gap: var(--gvid-space-m, 35px);            /* design cluster gap 35 */
  }
}
@media (max-width: 980px) {
  .et-l--post .ss-cta > .et_pb_column,
  .et-l--body .ss-cta > .et_pb_column {
    row-gap: 25px;                                 /* design 390 cluster gap 25 */
  }
}

/* ============ P3.2 THE FAQ ACCORDION IS BOUND AT DIVI'S FACTORY 1080 ============
   Design: the FAQ list is `width:100%` inside a section whose own box is
   `max-width:1340px; padding:70px 50px 140px 50px`, i.e. 1340 at x=50 in a
   1440 frame -- the same measure as every other section on the page.
   Measured live at 1440: 1072 wide at x=184. Every other row on the page is
   1340 at x=50.

   Competitors, read off the CSSOM, BOTH of which have to go -- and the first
   rehearsal of this fix changed only the second and moved nothing, which is
   why both are named:
     `.et_pb_row:not([class*="et_flex_column"]){width: var(--content-width)}`
        (0,2,0), Divi inline critical CSS, `--content-width: 80%` -> 1072
     `.et_pb_row:not([class*="et_flex_column"]){max-width: var(--content-max-width)}`
        (0,2,0), same sheet, the factory 1080
   1072 is 80% of the 1340 section box, so the WIDTH is the binding constraint
   at 1440 and the max-width only becomes binding above ~1350 of section box.
   The Values and Benefits rows escape both only because their author ticked
   "make this row full width", which emits a per-row `width/max-width:100%
   !important` (landmine C8); the shared FAQ rows did not.
   (0,4,0) below beats (0,2,0) without !important.

   `--content-max-width` itself is NOT touched: it is Divi's factory 1080 on
   all 96 pages including the 53 still on the Divi 4 build, and changing it is
   a recorded open decision (open-decisions section 5).

   SCOPED TO THE ROW THAT HOLDS THE ACCORDION, not to `.ss-faq .et_pb_row`.
   The FAQ HEADER row is a second row in the same section and its 780px is the
   design's own cluster measure (`max-width: 780px` on the header div), carried
   as a module width setting. A rule on every row in the section would widen it
   to 1340 and lose that. `:has()` is the same mechanism this stylesheet
   already uses for the Pricing cards and for the testimonial photo column
   below; the design's FAQ section contains exactly one accordion.
   SHARED: 7 pages. */
.et-l--post .et_builder_inner_content .ss-faq .et_pb_row:has(.et_pb_accordion),
.et-l--body .et_builder_inner_content .ss-faq .et_pb_row:has(.et_pb_accordion) {
  width: 100%;                                     /* design width:100% */
  max-width: 100%;                                 /* design: inside the 1340 box */
}

/* ============ P3.3 EVERY HEADER CLUSTER ROW IS INSET TWICE AT 390 ============
   Design at 390: every section is `padding: <v> 15px` and its content is
   360 wide at x=15. Measured live: the card, accordion and button rows are
   360 at x=15, but every header-cluster row -- Values, Benefits,
   Testimonials, FAQ -- and the FAQ list row are 330 at x=30.

   The competitor is this stylesheet's OWN sitewide mobile gutter, read off
   the CSSOM:
     `.et-l--post .et_builder_inner_content .et_pb_row:not(.et_pb_row_nested)
      {width: calc(100% - 2 * var(--ss-mobile-gutter))}`   (0,4,0) @<=980
   and, on the homepage only, the same declaration !important at (0,5,1)
   (`body.page-id-987489070 …`, style.css section 2.1).
   That rule is correct where a section has no padding of its own -- it is what
   gives the un-rebuilt pages their 15px gutter. `.ss-sec` now supplies that
   15px as SECTION padding, so inside a `.ss-sec` the two stack and the content
   lands at 30. The rows that look right only look right because the "make this
   row full width" per-row `!important` beat the gutter rule.

   Written at (0,5,1) + !important so it also wins on the homepage, where the
   competitor is itself !important at (0,5,1): among !important declarations
   ordinary specificity still applies, and on a tie the later rule wins -- this
   block is appended at the end of the file. `body` is in the selector purely
   to make the element count 1 and reach that tie.
   SHARED: this page's six sections + the three inherited sections on all
   seven consuming pages. */
@media (max-width: 980px) {
  body .et-l--post .et_builder_inner_content .ss-sec .et_pb_row:not(.et_pb_row_nested),
  body .et-l--body .et_builder_inner_content .ss-sec .et_pb_row:not(.et_pb_row_nested) {
    width: 100% !important;                        /* design 360 at x=15 in a 390 frame */
    max-width: 100% !important;
  }
}

/* ============ P3.4 THE CTA H2 GETS SMALLER AS THE SCREEN GETS BIGGER ============
   Measured: 30px at 360/390/430, **25px at 768 and 980**, 60px at 1440. A
   heading that shrinks as the viewport grows is a bug, not a scale.

   Cause, read off the CSSOM at 768: the shared-sections block above writes the
   design's 30px inside `@media (max-width: 767px)`, so the 768-980 band falls
   through to the sitewide mobile scale
   `.et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h2
    {font-size:25px!important}` (0,4,1). The module's own authored tablet value
   (`.et_pb_text_15 .et_pb_text_inner h2{font-size:40px}` at (0,2,1), no
   !important) loses to it, so fixing this at the module is impossible.

   The same selector as the 767 rule, at (0,5,1) + !important, in a
   `max-width: 980px` window: it supersedes the 767 rule (identical value,
   wider range) rather than replacing it, so no line above is edited.
   Design: 60px desktop, 30px at 390; the design has NO tablet canvas
   (open-decisions section 1), so 30 is carried across the whole phone/tablet
   band rather than inventing a fourth size.
   TO PREFER THE MODULE'S OWN 40px IN 768-980 INSTEAD: change the query below
   to `(max-width: 767px)` and add
   `@media (min-width:768px) and (max-width:980px){ …same selector… 40px }`.
   SHARED: 6 pages. */
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .et_pb_section .ss-cta .et_pb_module h2,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-cta .et_pb_module h2 {
    font-size: 30px !important;                    /* design 390 30 */
  }
}

/* ============ P3.5 THE ACCORDION ANSWER KEEPS DIVI'S BODY LEADING BELOW 981 ==
   Design answer: `padding: 0 90px 25px 25px` with `font-size:18px;
   line-height:1.35`. The desktop half of this stylesheet already carries 1.35
   (`.et-l--post .ss-faq .et_pb_toggle_content p`, inside `@media (min-width:
   981px)`), and measured 24.3px at 1440. Below 981 nothing sets it, so the p
   inherits Divi's `--et_global_body_font_height: 1.7em` and measured 27.2px
   on a 16px answer -- 1.7, which is Divi's default body leading and not a
   design number anywhere on this site.

   The design's 25px bottom padding is added in the same window: measured
   `padding: 20px 0 0` at 390, i.e. no bottom padding at all, so an open
   answer's last line sits flush on the row's 12px edge.

   Competitors, read off the CSSOM at 390: for line-height, only the
   `min-width:981px` rule above (not in play) and inheritance -- nothing else
   sets it, so (0,3,1) carries without !important. For padding-bottom, only
   Divi's `div{padding:0}` reset (0,0,1).
   SHARED: `.ss-faq` 7 pages, `.ss-benefits` 1. Both are the SAME component in
   the design and sit on the same page; fixing one would put two leadings on
   /more-freedom/.
   NOTE FOR THE GATE: shared-desktop/verify_shared.py's phone branch asserts
   `answer line-height 27.2px`, i.e. it encodes this defect as the expectation.
   That expectation is updated in the same change, with this comment as its
   reason. The 1440 run the gate defaults to is unaffected. */
@media (max-width: 980px) {
  /* The CONTAINER is in the list as well as the `p`, because the desktop half
     above sets font-size, line-height and colour on both -- and because a
     `p`-only rule leaves the container reading 1.7, which is what a reviewer
     (and shared-desktop/verify_shared.py, which measures the container) sees.
     The rendered answers contain only `p` plus inline `strong`/`em`/`a`, so
     today the two agree; the container is included so they still agree if an
     answer ever gains a block that is not a paragraph. */
  .et-l--post .ss-faq .et_pb_toggle_content,
  .et-l--body .ss-faq .et_pb_toggle_content,
  .et-l--post .ss-benefits .et_pb_toggle_content,
  .et-l--body .ss-benefits .et_pb_toggle_content,
  .et-l--post .ss-faq .et_pb_toggle_content p,
  .et-l--body .ss-faq .et_pb_toggle_content p,
  .et-l--post .ss-benefits .et_pb_toggle_content p,
  .et-l--body .ss-benefits .et_pb_toggle_content p {
    line-height: 1.35;                             /* design 1.35 */
  }
  .et-l--post .ss-faq .et_pb_toggle_content,
  .et-l--body .ss-faq .et_pb_toggle_content,
  .et-l--post .ss-benefits .et_pb_toggle_content,
  .et-l--body .ss-benefits .et_pb_toggle_content {
    padding-bottom: 25px;                          /* design 25 */
  }
}

/* ============ P3.6 TWO STACK GAPS FOR ONE COMPONENT AT 390 ============
   Design 390 accordion stack: `display:flex; flex-direction:column; gap:12px`.
   Measured: `.ss-benefits` 12px, `.ss-faq` 10px -- the identical component,
   on the same page, two different gaps.
   Cause: the `@media (max-width:980px)` block above sets 12px on
   `.ss-benefits .et_pb_accordion` only; `.ss-faq` falls through to Divi's
   `.et_flex_module{row-gap:var(--vertical-gap)}` = 10px (0,1,0).
   The `.ss-faq` toggles' own `margin-bottom` is already 0 (set by the shared
   block), so the gap is the only mechanism and 12 is what you get.
   (0,3,0) beats (0,1,0) without !important. SHARED: 7 pages.
   NOTE FOR THE GATE: verify_shared.py's phone branch asserts
   `phone stack gap unchanged at 10`; updated in the same change. */
@media (max-width: 980px) {
  .et-l--post .ss-faq .et_pb_accordion,
  .et-l--body .ss-faq .et_pb_accordion {
    row-gap: 12px;                                 /* design 390 stack gap 12 */
  }
}

/* ============ P3.7 TWO DIFFERENT CHIP COMPONENTS ON ONE PAGE ============
   One design component, two live renderings:
     Values / Benefits (rebuilt, carry `.ss-chip`)  28px tall @390, 30 @1440
     Testimonials / FAQ (inherited)                 43px tall @390, 40 @1440
     the DESIGN, measured in the browser on both
     frames rather than computed                    32px @390, 35 @1440
   Border, radius, padding 7px 20px, weight 500, uppercase and the #2F2F2F
   colour already agree on all four. Three things do not:

   1. line-height. The design declares NONE, i.e. `normal`. `.ss-chip` above
      hard-codes `line-height: 1`, which is why the rebuilt chips are 4px
      SHORT of the design (28 v 32, 30 v 35); the inherited chips inherit
      Divi's `--et_global_body_font_height: 1.7em` and are 8px TALL. Setting
      the design's own keyword fixes both directions at once. This supersedes
      the `line-height: 1` in the `.ss-chip` block above -- same specificity
      (0,2,0), later in the file.
   2. the chip's font-size at 390. The inherited chips measure 14px where the
      design says 12: Divi emits the module's size on the INNER element
      (`.et_pb_text_11 .et_pb_text_inner{font-size:14px}`, (0,2,0)) and the
      module has no phone value, so `.ss-chip`'s own `@media(max-width:980px)
      {font-size:12px}` -- which is set on the MODULE -- never reaches the
      text. `inherit` on the inner hands it back to the module, which is the
      same fix and the same reasoning as P2.1 above: one source of truth, no
      new breakpoint. It is a no-op on the rebuilt chips, whose inner carries
      no Divi font-size at all (measured 12/14, i.e. already inheriting).
   3. horizontal position. The design centres the chip in its cluster
      (`align-items:center`). The inherited chips sit hard left: measured at
      1440, the Testimonials chip starts at x=418 and its 604px cluster starts
      at x=418. The modules DO carry Divi's `alignment: center` sizing setting
      -- Divi 5.9.0 emits it as `text-align:start` on a `width:fit-content`
      box, which centres nothing. Auto side margins centre a definite-width
      box in both block and flex layout (in a column flex container the
      inline axis is the CROSS axis, where an auto margin absorbs free space),
      so one declaration covers both without depending on which the column is.
      No-op on the rebuilt chips, which are centred already.

   Competitor for line-height, read off the CSSOM: `.et_pb_text
   {line-height:var(--et_global_body_font_height,1.7em)}` (0,1,0) from Divi's
   inline critical CSS, and this file's own `.et-l--post .ss-chip{line-height:1}`
   (0,2,0). Equal specificity, later in the file, so this wins on order.
   SHARED: `.ss-chip` reaches the two rebuilt chips on this page plus, once
   patch_globals.py adds the class, Testimonials (4 pages) and FAQ (7). */
.et-l--post .ss-chip,
.et-l--body .ss-chip {
  line-height: normal;                             /* design declares none */
  margin-left: auto;                               /* design align-items:center */
  margin-right: auto;
}
.et-l--post .ss-chip .et_pb_text_inner,
.et-l--body .ss-chip .et_pb_text_inner,
.et-l--post .ss-chip .et_pb_text_inner p,
.et-l--body .ss-chip .et_pb_text_inner p {
  font-size: inherit;                              /* = the module: design 14 / 12 */
  line-height: inherit;                            /* = the module: design normal */
}
/* P3.7b (2026-08-22) -- the same rule again, at the phone breakpoint and
   !important, because on ONE chip it was losing.

   Symptom, measured at 390 on every comparison page: the hero chip's box is
   35.6px tall where the Switching and FAQ chips beside it are 32px (the
   design's number, and what the Feature Pages already render). The MODULE is
   12px on all three; it is the inner <p> that differs -- 14px in the hero,
   12px elsewhere -- so the `inherit` above was not taking on that one chip.

   Cause, read off the live CSSOM rather than guessed. Divi emits its default
   phone typography for the FIRST text module on the page into the per-post
   sheet:
     et-core-unified-<id>.min.css
       @only screen and (max-width: 767px) {
         .et_pb_text_1 h1 { font-size: 36px !important }
         .et_pb_text_1 p  { font-size: 14px !important }
       }
   and on a comparison page `.et_pb_text_1` IS the hero chip (the hero is the
   first section and the chip its first text module). On a Feature Page the
   chips sit further down the document, so nothing there matches and this rule
   is a measured no-op on those seven pages -- confirmed: all four Feature Page
   chips already render 12px / 32px at 390, before and after.

   Divi's declaration is !important, so specificity alone cannot beat it, and
   among !important declarations ordinary specificity still applies:
     competitor `.et_pb_text_1 p`                        (0,1,1)!
     this rule  `.et-l--post .ss-chip .et_pb_text_inner p` (0,3,1)!
   Scoped to <=980 rather than restated globally, because the competitor only
   exists at <=767: making the desktop declaration !important too would take a
   sledgehammer to a rule that is currently winning on its own everywhere, for
   no measured gain. `inherit` is kept as the value for the reason above --
   one source of truth, and no third breakpoint. */
@media (max-width: 980px) {
  .et-l--post .ss-chip .et_pb_text_inner,
  .et-l--body .ss-chip .et_pb_text_inner,
  .et-l--post .ss-chip .et_pb_text_inner p,
  .et-l--body .ss-chip .et_pb_text_inner p {
    font-size: inherit !important;                 /* = the module: design 12 */
    line-height: inherit !important;               /* = the module: design normal */
  }
}

/* ============ P3.9 THE FAQ SEAM, AND A REAL CONTRADICTION BETWEEN TEMPLATES ==
   Design FAQ section padding, transcribed from all five documents that draw
   the section:
     Feature Page Template   `70px 50px 140px 50px`   FAQ follows the CTA
     Industry Page Template  `70px 50px 140px 50px`   FAQ follows the CTA
     Pricing                 `70px 50px 140px 50px`   FAQ follows the CTA
     Features                `70px 50px 140px 50px`   FAQ follows the CTA
     Homepage                `140px 50px`             FAQ follows the Blog band
   and at 390:
     Pricing frame           `35px 15px 70px 15px`
     Homepage frame          `70px 15px`
   One shared global layout, two different top paddings, and the discriminator
   is what precedes it. Live is 140 / 140 at desktop and 70 / 70 at 390, i.e.
   the homepage's number on all seven pages -- which is why CTA -> FAQ measured
   210 at 1440 against the design's 140.

   A module setting cannot express "70 here, 140 there" from ONE layout, so
   this is the case where the value belongs in the stylesheet rather than the
   module: it is keyed on the STRUCTURE the design itself keys on. The
   homepage is left byte-identical by construction -- its FAQ has no CTA
   banner before it, so the selector cannot match.

   Competitor, read off the CSSOM: `.et_pb_section_5.et_pb_section
   {padding-top: var(--gvid-space-xl)}` = (0,2,0) from the generated deferred
   sheet (the module setting, 140px desktop and 70px at <=980 via the
   `--gvid-space-xl` phone alias -- open-decisions section 12, NOT touched).
   (0,3,0) below beats it without !important.
   SHARED: the 6 pages that carry BOTH the CTA banner and the FAQ. */
.et-l--post .et_builder_inner_content .et_pb_section:has(> .ss-cta) + .ss-faq,
.et-l--body .et_builder_inner_content .et_pb_section:has(> .ss-cta) + .ss-faq {
  padding-top: var(--gvid-space-l, 70px);          /* design 70 */
}
/* 767, NOT this file's usual 980, and the number is not a choice: the CTA
   section's own 35px is a Divi module PHONE value, and Divi's phone
   breakpoint is 767. Written at 980 first and measured: the 768-980 band then
   had the FAQ at 35 and the CTA still at 70, so the seam read 105 there --
   a number in neither design. Matching Divi's own breakpoint makes the seam
   140 across 768-1440 (the design's desktop value; the design has no tablet
   canvas) and 70 at <=767 (the design's phone value). No new breakpoint SET
   is introduced -- 767 is Divi's, and this file already uses it for the CTA
   heading. */
@media (max-width: 767px) {
  .et-l--post .et_builder_inner_content .et_pb_section:has(> .ss-cta) + .ss-faq,
  .et-l--body .et_builder_inner_content .et_pb_section:has(> .ss-cta) + .ss-faq {
    padding-top: var(--gvid-space-m, 35px);        /* design 390 35 */
  }
}

/* ============ P3.8 THE TESTIMONIAL CARD IS TWO EQUAL COLUMNS ============
   Design card, transcribed from the desktop document in one line:
     `border-radius:30px; background:<violet wash>; padding:35px;
      display:flex; justify-content:space-between; align-items:center;
      gap:35px; width:100%; max-width:1340px; box-sizing:border-box;
      min-height:660px`
   with the text side `flex:1` and the photo side
     `width:512px; align-self:stretch; border-radius:30px; overflow:hidden;
      flex-shrink:0`.
   1340 - 2x35 padding - 35 gap - 512 = 723, which is the text column, and the
   arithmetic closes exactly.

   Measured live at 1440: two 600px columns, a 70px gap (Divi's
   `--horizontal-gap: 5.5%` of the 1270px content box = 69.85), card height
   630 with `min-height:auto`. The quote is therefore 528px wide and wraps to
   5 lines where the design's 660px wraps to 4.

   Competitors, read off the CSSOM: for the column width,
   `.et_flex_column_24_24{width:calc(100% - var(--horizontal-gap-parent,5.5%)*0/1)}`
   (0,1,0) -- both columns are authored 24/24 and end up 600 each only because
   they are flex items that shrink; for the gap,
   `.et_flex_row{column-gap:var(--horizontal-gap)}` (0,1,0); for min-height,
   nothing at all. (0,4,0)/(0,5,0) below win without !important.

   `flex-basis` rather than `width` on the photo column so it cannot be
   re-shrunk by the flex algorithm the way the authored 24/24 width was;
   `flex-grow:0; flex-shrink:0` is the design's own `flex-shrink:0`.

   The image module's own height is a MODULE setting (560/420/300px) and is
   changed there, not here, to `100%` on desktop so the photo fills the taller
   card -- otherwise `min-height:660` re-opens the 30px of dead space under the
   photo that pass 2 closed.

   Below 981 none of this applies: the columns stack, the phone card is the
   design's own `padding:25px; gap:20px` single column, and the photo is a
   full-width 300px band. Untouched.
   SHARED: 4 pages. */
@media (min-width: 981px) {
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_image),
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_image) {
    column-gap: var(--gvid-space-m, 35px);         /* design gap 35 */
    min-height: 660px;                             /* design min-height 660 */
    align-items: center;                           /* design align-items:center */
  }
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image),
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image) {
    flex: 0 0 512px;                               /* design width 512, flex-shrink 0 */
    max-width: 512px;
    align-self: stretch;                           /* design align-self:stretch */
  }
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:not(:has(.et_pb_image)),
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:not(:has(.et_pb_image)) {
    flex: 1 1 auto;                                /* design flex:1 -> 723 at 1440 */
    max-width: none;
  }
  /* The photo column is `align-self:stretch` in the design, so the image
     module must fill it or min-height:660 just adds dead space. The module's
     own desktop height becomes 100% (patch_globals.py); this makes the
     percentage resolvable by giving the column a definite height. */
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image) > .et_pb_image,
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image) > .et_pb_image {
    height: 100%;
  }
}
/* ---- feature page template, PASS 4 (design-match round 4, 2026-08-19) ---- */
/* APPEND-ONLY. Nothing above this line is edited, so the diff against the
   applied file is exactly these additions and zero lines are removed. Where a
   rule below supersedes one written above, that is stated inline.

   WHAT THIS PASS IS. Four measured defects, all of them inside the SHARED
   Testimonials global layout 987493353, which an adversarial design review
   named as the only thing standing between this page and being the template
   for six more. Leaving them means copying them onto all six.

   BLAST RADIUS, measured on the staging DB, not assumed. The string
   `ss-testimonials` occurs in exactly ONE post_content on the site -- the
   global layout itself -- and that layout is consumed by four published pages:
     `post_content LIKE '%"globalModule":"987493353"%'`, post_type=page,
     post_status=publish  ->  987489270 /more-bookings/, 987489281
     /more-clients/, 987489298 /more-enrolment/, 987489313 /more-freedom/.
   So every rule below is SHARED: 4 pages. The homepage is NOT among them --
   its testimonial carousel is a different section keyed on
   `body.page-id-987489070` plus per-type ordinals (style.css line 2516), and
   it carries no `ss-testimonials` class, so none of these selectors can reach
   it. Verified by DB query, not assumed.

   THE HALF THAT IS NOT HERE. One of the four is a MODULE setting and is fixed
   in the global layout by featurepage/patch_globals.py (PASS 4):
     2  the star row's font-size, 22px at every width -> 36 desktop / 24 phone.
        Divi emits it as `.et_pb_text_14 .et_pb_text_inner{font-size:22px}`
        (0,2,0) in the generated deferred sheet, keyed on the per-type ordinal,
        and nothing in this stylesheet competes for it (the only other
        declaration reaching the glyphs is Divi's own `p{font-size:100%}` at
        (0,0,1)). That is the case the method says to fix at the module and
        never with a hand-written ordinal selector, so there is no rule for it
        below at all.
   Finding 1 below is SPLIT between the two, because its desktop half and its
   phone half have two different winning declarations. That split is argued in
   P4.1. */

/* ============ P4.1 THE HEADER ROW IS SPACED TWICE (the phone half) ============
   Design, transcribed by reading the computed boxes of the export documents
   rather than eyeballing them:
     managed-agents-design-export/"Feature Page Template.dc.html" at 1440
       section          `display:flex; flex-direction:column; gap:70px;
                         padding:0 50px 70px`      -> height 983.2
       header cluster   `display:flex; gap:35px; padding:0; max-width:604px`
     mobile-match/design-featurepage-390.html at 390
       section          `display:flex; flex-direction:column; gap:25px;
                         padding:0 15px 35px`      -> height 393.6
       header           there is NO header wrapper at all: the chip, the H2 and
                        the card are three direct flex children of the section.
   Either way the wrapper contributes ZERO spacing at every side and the
   section's own `gap` is the only mechanism -- exactly how `.ss-values` and
   `.ss-benefits` already work on this page. Measured on the live page at 390:
   those two sections' header rows report `padding: 0px` with their content 360
   wide at x=15; only `.ss-testimonials`' rows report `padding: 25px`, content
   310 at x=40.

   Measured live before, at `document.documentElement.clientWidth`:
     1440  header row padding `0px 0px 70px`  -> section 1053.2 against the
           design's 983.2, delta exactly +70.0. At the design canvas width this
           padding is the ENTIRE remaining excess of the section.
     390   header row padding `25px`          -> +50.0 of height (25 top + 25
           bottom), and the chip sits 25.0px below the section's top edge where
           the design has it flush at 0.

   TWO WINNING DECLARATIONS, so two homes (mobile-design-match section 3):

   THE DESKTOP HALF IS A MODULE VALUE AND IS NOT IN THIS FILE. Competitor read
   off the CSSOM at 1440:
     `.et_pb_row_9.et_pb_row{padding-bottom:var(--gvid-space-l)}` (0,2,0)
     !important, from et-core-unified-...-deferred-*.css -- Divi's generated
     per-module sheet, keyed on the per-type ordinal. `.et_pb_row_9` is exactly
     the ordinal a hand-written selector must never key on, so the row's
     `padding` attribute is removed at the module instead
     (patch_globals.py PASS 4 item 1) and Divi stops emitting the rule.

   THE PHONE HALF CANNOT BE FIXED AT THE MODULE. Competitor read off the CSSOM
   at 390:
     `.et-l--post .ss-testimonials .et_pb_row{padding:25px!important}` (0,3,0)
     AND !important, from this stylesheet at line 2532 -- the shared
     testimonial-carousel block. Its 25px is the DESIGN'S OWN phone card
     padding (`padding:25px` on the 390 card) and is correct on the card row;
     it is wrong only on the header row, which the same selector also reaches.
     `!important` beats any specificity, so no module setting can win here no
     matter what it says; among !important declarations ordinary specificity
     still applies, so (0,4,0) + !important below takes it.

   SCOPED BY THE SLIDER, NOT BY THE IMAGE, and that is deliberate. P3.8 above
   uses `.et_pb_row:has(.et_pb_image)` correctly, because P3.8 is about the
   photo COLUMN. Here the discriminator has to survive the photograph going
   away: the design's 390 card has no photograph at all and whether the live
   one keeps its is an open owner decision, so the header row is defined as
   "the row with no quote slider in it" and stays correct either way.
   `:has()` and `:not(:has())` are both supported in the two engines this site
   is measured in -- checked with `CSS.supports('selector(:not(:has(a)))')` in
   WebKit and Chromium rather than assumed -- and the two selectors were proved
   to match exactly one row each before this rule was written.

   ONE CONSEQUENCE WORTH STATING: this also removes the row's 25px LEFT and
   RIGHT padding, because the design number is 0 on every side and because the
   page's three other section headers are already at 0. The Testimonials intro
   paragraph therefore re-wraps at 390 against a 360px measure instead of 310
   on all four pages -- toward the design, which puts every section's phone
   content at 360 wide at x=15. TO KEEP THE HORIZONTAL INSET INSTEAD: change
   the declaration below to `padding-top: 0 !important; padding-bottom: 0
   !important;`.
   SHARED: 4 pages. */
@media (max-width: 980px) {
  .et-l--post .ss-testimonials .et_pb_row:not(:has(.et_pb_slider)),
  .et-l--body .ss-testimonials .et_pb_row:not(:has(.et_pb_slider)) {
    padding: 0 !important;                           /* design: no wrapper at all */
  }
}

/* ============ P4.2 DIVI'S FACTORY 6% INSET IS STILL ON THE SLIDE ============
   Design quote measure, transcribed:
     1440  `<blockquote>` 25px/30px, `max-width:660px`, measured 660 wide at
           x=116.5 inside a 723px text column (723 - 660 = 63, split 31.5 each
           side, i.e. the design centres it)
     390   the same element measured 310 wide at x=40, i.e. the full content
           box of the 360px card (`padding:25px`) with the 660 max-width not
           binding.
   Measured live before: 636.3 at 1440 and 272.8 at 390. At 390 the missing
   37.2px forces a SEVENTH line at the design's own 18/23.4 -- +23.4px of
   section height for nothing.

   Cause: Divi's factory `.et_pb_slide{padding:0 6%}` is unoverridden, so the
   quote and the attribution are inset 43.4px at 1440 and 18.6px at 390 further
   than the stars and the photograph INSIDE THE SAME CARD. Measured left edges
   at 390 before: stars 40, photo 40, quote 58.6 -- three different edges in
   one card.
   The neighbouring rule at line 3708/2574 already zeroes the DESCRIPTION's
   padding at both breakpoints (Divi core's `.et_pb_slide_description
   {padding:16% 8%}`); it is the SLIDE's own padding that was missed, which is
   why the stars are flush and the quote is not.

   Competitor, read off the CSSOM at both widths:
     `.et_pb_slide{padding:0 6%}` (0,1,0), no !important, Divi's inline
     critical CSS. The only other declaration is `div{padding:0}` at (0,0,1).
   (0,3,0) below beats it without !important.

   THE SECOND DECLARATION IS NOT SCOPE CREEP, IT IS THE OTHER HALF OF THE SAME
   DESIGN NUMBER. Zeroing the inset alone hands the quote the whole 723px
   column at 1440, which overshoots the design's 660 by 63 -- a bigger error
   than the 23.7 it started with, in the other direction. `max-width:660px`
   with auto side margins is the design's own declaration on its own element
   (the blockquote), and it is inert at 390 where the column is 310. Nothing
   else on the site sets either property on this element: the CSSOM reports
   `max-width` unset (computed `none`) and `margin-left` set only by Divi's
   `h2{margin-left:0}` at (0,0,1), so (0,4,0) carries without !important.
   SHARED: 4 pages. */
.et-l--post .ss-testimonials .et_pb_slide,
.et-l--body .ss-testimonials .et_pb_slide {
  padding-left: 0;                                   /* design: flush with the stars */
  padding-right: 0;
}
.et-l--post .ss-testimonials .et_pb_slider .et_pb_slide_title,
.et-l--body .ss-testimonials .et_pb_slider .et_pb_slide_title {
  max-width: 660px;                                  /* design blockquote max-width 660 */
  margin-left: auto;                                 /* design centres it in the column */
  margin-right: auto;
}

/* ============ P4.3 THE PHONE CARD'S STACK GAP IS 25, THE DESIGN'S IS 20 =======
   Design 390 card, transcribed from the frame's computed box:
     `display:flex; flex-direction:column; gap:20px; padding:25px` -- and the
   20px shows up twice in the live card, so it is +10px of section height:
     photo column -> text column   (the phone card stacks)
     stars        -> quote slider  (inside the text column)
   Measured live before: 25.0 and 25.0. Desktop is already right and is not
   touched -- 35 measured against the design's 35 at 1440.

   Competitors, read off the CSSOM at 390, BOTH of which have to be beaten
   because the two gaps have different parents:
     the ROW's gap     `.et-l--post .ss-testimonials .et_pb_row{row-gap:25px}`
                       (0,3,0), no !important, style.css line 2533
     the COLUMN's gap  `.et-l--post .ss-testimonials .et_pb_row >
                       .et_pb_column{row-gap:25px}` (0,4,0), no !important,
                       style.css line 2538
   (0,4,0) and (0,5,0) below beat them in order without !important.

   THIS IS THE ONE THE BRIEF EXPECTED TO BE A MODULE SETTING, AND IT CANNOT BE.
   Divi emits a row's gutter as `.et_pb_row_10{row-gap:...}` at (0,1,0); both
   winning declarations above are child-stylesheet rules at (0,3,0) and (0,4,0),
   so a module value would lose to them at every width. Read off the CSSOM
   rather than inferred (mobile-design-match section 2).

   SCOPED TO THE CARD ROW ONLY. The header row's column keeps 25px on purpose:
   that is the design's own header cluster gap at 390 (chip bottom 2614.2 ->
   H2 top 2639.2 = 25.0 in the frame), and it is the same 25 the section's
   `gap` uses. Widening the rule to every row in the section would put 20
   between the chip and the H2 and lose it.
   Slider-scoped for the same reason as P4.1: the photograph is an open owner
   decision and the quote slider is not.
   SHARED: 4 pages. */
@media (max-width: 980px) {
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_slider),
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_slider) {
    row-gap: 20px;                                   /* design 390 card gap 20 */
  }
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_slider) > .et_pb_column,
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_slider) > .et_pb_column {
    row-gap: 20px;                                   /* design 390 card gap 20 */
  }
}


/* ---- footer float containment (sitewide, pass 5, 2026-08-19) ---- */
.et-l--footer { clear: both; }


/* ---- shared feature-page defects, PASS 6 (serialised shared pass, 2026-08-19) ---- */
/* P6.1 -- the hero <picture>. See the module docstring: no author declaration
   exists for either property on this element; the value being beaten is the
   initial `width:auto` resolved by shrink-to-fit inside
   `.et_pb_image:where(.et_flex_module) > .et_pb_image_wrap{display:flex}`
   (real specificity (0,2,0), Divi inline <style>). Inert on the three pages
   whose hero attachment has no registered sizes, which are already correct.
   TWINS: .ss-testimonials .et_pb_image picture is already handled above;
   .ss-benefits-media picture is latent -- measured at 768 on all four pages,
   NO <picture> is emitted for any benefits-media or accordion image today
   (Booster wraps only attachments it holds a WebP variant for), so that rule
   would have no measured competitor and is deliberately NOT written. */
.et-l--post .ss-hero-img picture,
.et-l--body .ss-hero-img picture {
  display: block;
  width: 100%;                                     /* design width:100% */
}

/* P6.2 -- 25px of grey above the breadcrumb, PHONE ONLY. The design's 390
   frame puts the header inside the band and separates it from the breadcrumb
   with the band's own `gap:25px`; the desktop frame has no gap at all and
   live already matches it, so this must not leave the phone bracket.
   SUPERSEDES the `padding-top:0` written for `.ss-hero` above, at the same
   (0,3,0) and later in the file. Still beats Divi's
   `@media(max-width:980px) .et_pb_section{padding:50px 0}` at (0,1,0). */
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-hero,
  .et-l--body .et_builder_inner_content .ss-hero {
    padding-top: 25px;                             /* design 390 gap 25 */
  }
}

/* P6.3a -- intro weight. The design declares no font-weight on ANY of the five
   intros, so all five render at the document default 400; live inherits
   `body{font-weight:500}` (0,0,1, Divi inline <style>). Declaring it on the
   module div wins by inheritance proximity, not specificity -- nothing
   declares font-weight on .ss-intro, .et_pb_text_inner or the <p>.
   7 pages. The identical `body` rule still leaves the hero sub, the card
   paragraphs, the accordion answers and the testimonial attribution at 500;
   that is sitewide and is reported, not changed here. */
.et-l--post .ss-sec .ss-intro,
.et-l--body .ss-sec .ss-intro {
  font-weight: 400;                                /* design 400 (undeclared) */
}

/* P6.3b -- intro colour, Values and Benefits ONLY. The design gives those two
   `color:#000000` and leaves Testimonials and FAQ uncoloured (#2F2F2F via the
   --text token) and the CTA sub `#EDE7F6`; all five carry `ss-intro`, so a
   blanket rule would be wrong. (0,4,0) beats this file's own
   `.et-l--post .ss-sec .ss-intro{color:var(--gcid-90suxw02k0,#2f2f2f)}` at
   (0,3,0) on specificity, not on order. 4 pages -- these two sections exist on
   no global layout. */
.et-l--post .et_builder_inner_content .ss-values .ss-intro,
.et-l--body .et_builder_inner_content .ss-values .ss-intro,
.et-l--post .et_builder_inner_content .ss-benefits .ss-intro,
.et-l--body .et_builder_inner_content .ss-benefits .ss-intro {
  color: #000000;                                  /* design #000000 */
}


/* ---- shared feature-page defects, PASS 7 (serialised shared pass, 2026-08-19) ---- */
/* APPEND-ONLY. Nothing above this line is edited by this block, so the diff
   against the applied file is exactly these additions. (The one line this
   pass DID change is a stale page count in the PASS 2 block's header comment
   -- comment text only, no declaration.) Where a rule below supersedes one
   written above, that is stated inline. */

/* P7.1 -- .ss-benefits-media never fills its column, >=981 ONLY.
   Design: the 2-up row is `align-items:stretch` and the media is
   `min-height:636px` -- a FLOOR, not the height; rendered at 1440 the design's
   media is 660x733.9, exactly its accordion column. Live renders 660x636 on
   every page regardless of column height (short by 9.1 / 0 / 195.1 / 939.3 at
   1440 on the four pages).
   The break is NOT `.ss-benefits-media`: that column is already full height
   and its `flex:0 0 660px` (this file, (0,3,0)) is what carries the design's
   660px WIDTH. It is the two links below it, for which probing `height`
   returns an EMPTY rule list in every stylesheet -- so the img's existing
   `height:100%` (0,2,1) has no definite ancestor to resolve against and falls
   back to its `min-height:636px` (0,2,1).
   Competitor for both declarations: NONE. The value being beaten is the
   initial `auto` resolved by shrink-to-fit. Same shape as pass 1's
   `.ss-testimonials .et_pb_image .et_pb_image_wrap{height:100%}`, reused
   rather than reinvented. `display` on the wrap is deliberately NOT touched:
   Divi sets it to flex at (0,2,0) and the img needs that context.
   MUST NOT leave the >=981 bracket -- at <=980 the design puts a fixed 220px
   image ABOVE the list and live already matches it exactly. 4 pages. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-benefits-media .et_pb_image,
  .et-l--body .et_builder_inner_content .ss-benefits-media .et_pb_image {
    height: 100%;                                  /* design: fills the column */
  }
  .et-l--post .et_builder_inner_content .ss-benefits-media .et_pb_image_wrap,
  .et-l--body .et_builder_inner_content .ss-benefits-media .et_pb_image_wrap {
    height: 100%;                                  /* design height:100% */
  }
}

/* P7.2 -- hero sub, breadcrumb and value-card tagline: weight 400.
   The design declares no font-weight on any of the three, so all render at the
   design document's default 400 (measured in WebKit on both the desktop
   document and the 390 frame). Live inherits `body{font-weight:500}` (0,0,1,
   Divi inline <style>) -- the ONLY font-weight declaration on the whole
   ancestor chain from each element to <html>, which is 400.
   Declaring on the module / paragraph wrapper wins by inheritance proximity,
   not specificity. Sizes, colours and line-heights are already correct at both
   breakpoints, so no size and no breakpoint is written here.
   `.ss-crumbs` is the <p>; its <a> and its <span>s carry no font-weight
   declaration of their own and inherit from it (measured).
   The value card's H3 is NOT included: the design declares 500 on it and live
   already renders 500 through its own (0,2,1) preset rule.
   4 pages. `body{font-weight:500}` itself is sitewide and is reported, not
   changed. */
.et-l--post .et_builder_inner_content .ss-hero-sub,
.et-l--body .et_builder_inner_content .ss-hero-sub,
.et-l--post .et_builder_inner_content .ss-hero .ss-crumbs,
.et-l--body .et_builder_inner_content .ss-hero .ss-crumbs,
.et-l--post .et_builder_inner_content .ss-value-card .et_pb_text,
.et-l--body .et_builder_inner_content .ss-value-card .et_pb_text {
  font-weight: 400;                                /* design 400 (undeclared) */
}

/* P7.3 -- Testimonials and FAQ section H2 colour.
   The design colours H2s per SECTION: Values and Benefits declare #000000,
   the CTA declares #ffffff, and Testimonials and FAQ declare nothing -- which
   resolves to the design root's #2F2F2F. Confirmed by rendering all five
   documents; the 390 frame agrees where it draws these sections.
   Live renders both at rgb(0,0,0), from this file's own
   `.et-l--post .et_builder_inner_content .ss-sec h2{color:#000000}` at
   (0,3,1) -- correct for Values and Benefits, over-reaching here. (0,4,1)
   below beats it on specificity, not on order.
   `.et_pb_text_inner h2` rather than a blanket `h2`: the testimonial carousel
   renders each quote as `h2.et_pb_slide_title` inside `.et_pb_slider_*`, with
   no `.et_pb_text_inner` in its trail, so those four h2s per page are out of
   reach by construction rather than by luck.
   SHARED: Testimonials (global 987493353) 4 pages; FAQ (global 987493336)
   7 pages -- the four Feature Pages plus /, /how-much/, /more-tools/. The
   homepage moves at >=981 only; at 390 it already renders rgb(47,47,47) via
   its own phone-scoped rule. */
.et-l--post .et_builder_inner_content .ss-testimonials .et_pb_text_inner h2,
.et-l--body .et_builder_inner_content .ss-testimonials .et_pb_text_inner h2,
.et-l--post .et_builder_inner_content .ss-faq .et_pb_text_inner h2,
.et-l--body .et_builder_inner_content .ss-faq .et_pb_text_inner h2 {
  color: var(--gcid-90suxw02k0, #2f2f2f);          /* design #2F2F2F */
}

/* P7.4 -- the CTA banner button, >=981 ONLY.
   The design deliberately makes the final CTA button wider than the section
   buttons: `padding:12px 35px` on the CTA button in all SIX documents that
   draw one, against `12px 30px` everywhere else. Rendered at 1440: section
   257.2x44, CTA 267.2x44. Live renders the CTA at `12px 30px` / 257.2x44 on
   all six consuming pages.
   At 390 the design is `15px 30px` -> 310x48 and live measures exactly that,
   so this must not leave the >=981 bracket.
   Competitor: this file's own
   `... .et_pb_section .ss-btn-primary{padding:12px 30px !important}` at
   (0,4,0). Its !important is forced by Divi core's
   `.et_button_no_icon .et_pb_button{padding:.3em 1em!important}` (0,2,0), so
   this rule must be !important too; among !important declarations ordinary
   specificity still applies, and `.ss-cta` (the ROW carrying the violet card,
   which exists only inside this banner) makes it (0,5,0).
   The :hover pair is REQUIRED, not defensive: the same block carries
   `.ss-btn-primary:hover{padding:12px 30px !important}` at (0,5,0) because
   Divi core re-pads on hover, and without the (0,6,0) below the button would
   snap back to 30px under the pointer.
   The SECTION buttons are deliberately left at 12px 30px. SHARED: 6 pages. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .et_pb_section .ss-cta .ss-btn-primary,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-cta .ss-btn-primary,
  .et-l--post .et_builder_inner_content .et_pb_section .ss-cta .ss-btn-primary:hover,
  .et-l--body .et_builder_inner_content .et_pb_section .ss-cta .ss-btn-primary:hover {
    padding: 12px 35px !important;                 /* design 12px 35px */
  }
}


/* ---- shared feature-page defects, PASS 8 (serialised shared pass, 2026-08-19) ---- */
/* APPEND-ONLY. Nothing above this line is edited by this block, so the
   declaration-level diff against the applied file is exactly these additions:
   0 removed, 0 changed. Where a rule below supersedes one written above, that
   is stated inline. */

/* P8.1 -- /more-enrolment/'s seven value cards on a 4-up track, >=981 ONLY.
   PAGE-SCOPED to `body.page-id-987489298`: the other three Feature Pages have
   5, 5 and 6 cards and keep the design's 3-up 433px card. Measured inert on
   /more-freedom/ with this exact rule injected (colW 433.3 -> 433.3).
   The design draws a 3-track grid (`grid-template-columns:1fr 1fr 1fr;
   gap:20px`, Feature Page Template line 91); the OWNER chose 4-up for this one
   page after seeing 3+3+1 and 4+3 rendered side by side. A recorded divergence
   from the design, not a transcription.
   Measured at 1440 by injection: rows [3,3,1] -> [4,3], card 433.3 -> 320
   ((1340 - 3x20)/4, the design's own 20px gap at four tracks), Values section
   1640.2 -> 1314.2, overflow 0 -> 0. Card height stays 306 on all seven and
   `scrollHeight > clientHeight` is false on all seven: at 320px one heading
   and five taglines wrap to two lines and the 306px box still contains them.
   (Block 5 above builds the design's fixed `height:306px` as `min-height`, so
   content that ever did exceed it would GROW the card, not clip.)
   MUST NOT leave the >=981 bracket: below 981 every card is already
   `flex-basis:100%`, one per row, and four 80px cards on a 390px phone would
   wreck the priority breakpoint.
   Competitor: this file's own block 5,
   `... .ss-cards-3 > .et_pb_column{flex:0 0 calc(33.333333% - 13.333333px);
   max-width:same}` at (0,4,0), not !important. The body class makes this
   (0,5,1) -- a specificity win, not an order win. Only the BASIS is
   overridden; the competitor's `0 0` grow/shrink are deliberately left alone.
   The `flex` shorthand shape was measured identical and the minimal one kept.
   1 page. */
@media (min-width: 981px) {
  body.page-id-987489298 .et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  body.page-id-987489298 .et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column {
    flex-basis: calc(25% - 15px);                  /* 4-up with three 20px gaps */
    max-width: calc(25% - 15px);
  }
}

/* P8.2 -- hide the testimonial PHOTOGRAPH at <=980, and only the photograph.
   The design's 390 testimonial card (Mobile Views, "Mobile Feature Page")
   holds exactly five 24px stars, an 18px/1.3 blockquote and a 16px
   attribution: no photo, no intro, no dots. The OWNER chose "photo only" --
   the intro paragraph stays (the recorded decision that mobile keeps content
   the design drops) and the dots stay (the design's phone card is static;
   live is a 4-slide carousel and the dots are its only affordance). Both are
   measured still present after this rule at every width <=980: intro present,
   dots 4.
   DESKTOP IS UNTOUCHED and was measured, not asserted: at 1440 and 2560 the
   section is 983.2 tall and the photo 512x590 before and after, and the
   document height is identical. This rule cannot reach >=981.
   THE COLUMN, NOT THE MODULE. Injecting `display:none` on the image MODULE
   saves 299px at 390; on the COLUMN it saves 320px, because the emptied column
   still occupies a 21px box. A third shape doing both measured identical to
   the column alone, so the column alone is written.
   `:has()` is the established idiom here -- pass 2's
   `.ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column` at (0,7,2)
   has been live since 2026-08-18 -- and if a browser did not support it the
   rule would be dropped and the photo would simply stay, which is the safe
   failure. Rendered and measured in WebKit and Chromium.
   Competitor for `display` on this column: `.et_flex_column` (0,1,0, Divi
   inline <style>) and `.et_pb_column_17` (0,1,0, Divi's generated deferred
   sheet), both `flex`, neither !important. This is (0,6,0) -- a specificity
   win. Divi's own "disable on phone" setting was rejected: it emits at Divi's
   factory 767, and this site uses 980/981 throughout, so the photo would have
   stayed visible from 768 to 980.
   SHARED: global layout 987493353, 4 pages (DB-counted). */
@media (max-width: 980px) {
  .et-l--post .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image),
  .et-l--body .ss-testimonials .et_pb_row:has(.et_pb_image) > .et_pb_column:has(.et_pb_image) {
    display: none;                                 /* design 390: no photo */
  }
}

/* P8.4 -- the CTA banner H2: 942px and balanced, >=981 ONLY.
   Design (Feature Page Template line 155, byte-identical in Industry Page,
   Features, Pricing, Comparison and Blog Post): `... margin: 0;
   max-width: 942px; text-wrap: balance;`. Homepage.dc.html says 842 -- and the
   homepage is not one of the six consumers of global 987493326, so it is out
   of reach by construction.
   Live: `max-width:none`, `text-wrap:wrap`, box 1140px at x=150, two lines
   with "back." orphaned on line 2 at 60px.
   Competitor: NONE. The rule list for BOTH properties on this element is
   empty in every stylesheet at every specificity, cross-checked against a raw
   string search of the served HTML (which contains `text-wrap` exactly once,
   in `<style id="ss-h1-balance">h1{text-wrap:balance}</style>` from the
   mu-plugin -- that matches h1, not this h2, and is deliberately not touched).
   THE AUTO MARGINS ARE LOAD-BEARING: injected without them the H2 shrinks to
   942 but stays at x=150, 99px left of centre, because max-width does not
   centre a block and `text-align:center` only centres the text inside it.
   With them, x=249 = 150 + (1140-942)/2. Both shapes measured.
   THE >=981 BRACKET IS NOT DEFENSIVE. `max-width` is inert below 981 (the H2
   measures 750 at 980, 538 at 768, 310 at 390) but `text-wrap:balance` is not
   -- and all SIX mobile CTA frames declare this H2 with no max-width and no
   text-wrap at all. The design asks for balance on desktop only.
   SHARED: 6 pages. The banner's COPY is deliberately not touched. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-cta h2,
  .et-l--body .et_builder_inner_content .ss-cta h2 {
    max-width: 942px;                              /* design 942 */
    margin-left: auto;                             /* design: centred in the card */
    margin-right: auto;
    text-wrap: balance;                            /* design text-wrap:balance */
  }
}

/* P8.5 -- the FAQ intro paragraph: 692px, centred.
   Design: `font-size:18px; line-height:1.2; text-align:center; margin:0;
   max-width:692px` on the FAQ intro <p>, identical in five documents (Feature
   Page, Industry Page, Features, Pricing, Homepage). Comparison draws no FAQ
   intro at all. Live's 780 is the design's number for the enclosing header
   CLUSTER, applied to the paragraph.
   Competitor: NONE -- the rule list for max-width is empty on the module, its
   `.et_pb_text_inner` and its <p>. The 780 is the row's width. (0,4,0) is
   headroom.
   The auto margins are required for the same reason as P8.4: without them the
   box shrinks to 692 and stays at x=330, 44px left of centre. With them,
   x=374 = 330 + (780-692)/2. Writing it on the <p> instead measured the text
   in exactly the same place; the module is used because `.ss-intro` is this
   site's hook for that text and it keeps the module box equal to the design's
   text box.
   THE >=981 BRACKET IS A CORRECTION, not a precaution. This block's first
   draft was unbracketed on the claim that "980 and below is 950/738/360/330,
   all under 692, so it is inert there" -- 950 and 738 are ABOVE 692, and
   measuring the unbracketed rule on the live site showed it moving 768
   (738 -> 692) and 980 (950 -> 692). 692 is a DESKTOP number: all three mobile
   frames that draw an FAQ (Homepage, Pricing, Comparison) draw chip + H2 +
   rows and NO intro paragraph at all, so the design has no phone value for
   this element, and 768/980 are the invented breakpoints (open-decisions
   section 1). 360/390/430 are genuinely inert either way (330/360/400 < 692).
   SCOPED to `.ss-faq`: `.ss-intro` also carries the Testimonials and Values
   intros, whose design max-widths are different (604-cluster / 619). Those are
   reported, not changed.
   SHARED: global layout 987493336, 7 pages (DB-counted). Inert on 987491185
   /hair-salon-software/, which carries the literal string `ss-faq` on an
   unrelated component with no `.ss-intro` inside it -- measured. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-faq .ss-intro,
  .et-l--body .et_builder_inner_content .ss-faq .ss-intro {
    max-width: 692px;                              /* design 692 */
    margin-left: auto;                             /* design: centred cluster */
    margin-right: auto;
  }
}


/* ---- shared feature-page defects, PASS 9 (serialised shared pass, 2026-08-20) ---- */
/* APPEND-ONLY. Nothing above this line is edited by this block, so the
   declaration-level diff against the applied file is exactly this addition:
   1 rule, 2 declarations, 0 removed, 0 changed. */

/* P9.1 -- the `.ss-benefits-media` <picture> must be transparent to layout.
   p6's DEFERRED TWIN, now shipped because pass 9's payload half is what makes
   a <picture> appear here at all (adding a basename to ss_img_sizes_map() is
   what makes ss_img_wrap_one() wrap it). Measured BEFORE the map was written,
   with the mu-plugin's exact markup injected at runtime on all four pages at
   all seven widths (p9/picture_probe.py).
   THE REGRESSION IS AT <=980, NOT >=981. The >=981 height chain P7.1 built is
   untouched -- the <picture> is a flex item of `.et_pb_image_wrap{display:
   flex}`, so stretch gives it a definite height and the img's `height:100%`
   still resolves (660 x 645.08 / 636 / 689.48 / 831.08 at 1440 and 2560,
   identical wrapped and unwrapped). What breaks is the WIDTH at <=980, where
   the img is `height:220px; width:100%`: `width:100%` then resolves against a
   shrink-wrapped <picture> and the photo renders `220 * source_aspect` wide
   instead of filling the column -- 294.55px in a 360px column at 390 on
   /more-clients/, 336.94px on /more-enrolment/. Twelve such regressions
   across the four pages; this rule restores every one to the exact unwrapped
   pixel, and moves nothing at 1440/2560.
   COMPETITOR: NONE. The rule list for `width`, `display` and `height` on this
   element is empty at every specificity in every stylesheet, cross-checked
   against a RAW STRING search of every served stylesheet's text, which finds
   exactly two real `picture` rules on the site -- pass 1's testimonial one and
   P6.1's hero one -- neither of which matches this element. (0,2,1) is
   headroom.
   SHAPE: `display:block; width:100%` is P6.1's shape for the identical
   problem on `.ss-hero-img picture`, deliberately reused rather than
   inventing a third idiom. `width:100%` alone measured identical; the
   `display:block` is kept for P6.1's own recorded reason (it keeps the rule
   correct if the wrap is ever `display:block`, as it is in Testimonials).
   `height:100%` is omitted because it measured unnecessary here.
   UNBRACKETED on purpose: inert at >=981 by measurement, and the invariant it
   states is true at every width.
   4 pages (DB-counted); `.ss-benefits-media` exists in no global layout, so
   no other page on the site can match this selector. */
.et-l--post .ss-benefits-media picture,
.et-l--body .ss-benefits-media picture {
  display: block;                                  /* twin: P6.1 .ss-hero-img */
  width: 100%;                                     /* fill the column, not 220*aspect */
}

/* ---- feature pages, PASS 10 (benefits 2-up dead space, 2026-08-20) ---- */

/* ============ P10.1 CENTRE THE BENEFITS LIST BESIDE THE PHOTOGRAPH ============
   Owner decision, 2026-08-20: with few benefit rows the list is to sit
   CENTRED beside the photograph rather than stretched to it, so the leftover
   space splits above and below and reads as deliberate.

   The losing declaration is this file's own `align-items: stretch` on
   `.ss-benefits-2up` (block 6), read off the CSSOM as the ONLY rule setting a
   cross-axis alignment on this component -- no Divi competitor, no inline
   style, no `!important` anywhere in the chain. So no `!important` and no
   extra classes: (0,3,0) matching block 6, appended after it, wins on order.

   ON THE CHILD, NOT THE CONTAINER. `align-items: center` on the row would
   un-stretch the MEDIA column too, and the photo's height comes from that
   stretch on the three pages whose accordion exceeds the design's 636px
   min-height -- measured 645.1 -> 636, 689.5 -> 636 and 831.1 -> 636 on
   /more-freedom/, /more-clients/ and /more-enrolment/. Rehearsed and
   rejected; see the module docstring.

   A Divi 5 column is `display:flex; flex-direction:column`, so
   `justify-content` here is the VERTICAL axis (landmine C1). The column keeps
   its full 660x636 box and only its content moves; `align-self: center` is
   the one-line alternative and additionally shrinks the column box.

   >= 981 only: below it the row wraps, each column is alone on its line and
   its height equals its content height, so this is a measured no-op (0.0px
   on 5 pages x 4 widths) -- and at <= 980 the design stacks with the photo
   ABOVE the list via `order:-1`, where "centred beside" has no meaning.
   SHARED: 5 pages (/api/, /more-bookings/, /more-clients/, /more-enrolment/,
   /more-freedom/), zero global layouts, counted on the staging DB. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-benefits-list,
  .et-l--body .et_builder_inner_content .ss-benefits-list {
    justify-content: center;       /* owner decision: centred, not stretched */
  }
}

/* ---- feature pages, PASS 11 (/online-bookings/ 4+3 value track, 2026-08-21) ---- */

/* ============ P11.1  SEVEN VALUE CARDS SIT 4+3, ON BOTH SEVEN-CARD PAGES ====
   Owner decision, 2026-08-20, extended to a second page on 2026-08-21: a page
   with seven value cards lays them out 4+3, not the design's 3+3+1. A
   deliberate, recorded divergence from the design's 3-track grid, not a
   transcription error.

   SUPERSEDES P8.1 above, which carries these two declarations for
   `body.page-id-987489298` alone. The declarations here are BYTE-IDENTICAL
   and the specificity is identical (0,5,1), so /more-enrolment/'s computed
   value is the same string whichever rule wins -- it cannot move, and it was
   measured before and after at 1440 and 2560 to confirm it did not. Keeping
   ONE selector means the list of seven-card pages lives in one place.

   MEASURED at 1440 and 2560 on /online-bookings/ (987489358):
     rows [3,3,1] -> [4,3], column 433.3 -> 320 ((1340 - 3x20)/4, the design's
     own 20px gap at four tracks), `.ss-values` section 1661.8 -> 1335.8,
     overflow 0 -> 0. Card height stays 306 on all seven and
     `scrollHeight > clientHeight` is false on all seven: at 320px the
     headings and taglines wrap to two lines and the 306px box still contains
     them. (Block 5 above builds the design's fixed `height:306px` as
     `min-height`, so content that ever did exceed it would GROW the card,
     not clip.)

   PAGE ID, NOT A CLASS, UNDER PROTEST AND FOR A STATED REASON: the durable
   hook is `ss-cards-4up` on the row, which needs a `post_content` edit this
   pass is forbidden to make. Replace the two `body.page-id-…` prefixes with
   `.ss-cards-4up` once the class exists.

   Competitor: this file's own block 5,
   `... .ss-cards-3 > .et_pb_column{flex:0 0 calc(33.333333% - 13.333333px);
   max-width:same}` at (0,4,0), not !important, and the only rule in the
   CSSOM setting either property. Read on /online-bookings/ at 1440.

   MUST NOT leave the >=981 bracket: below it every card is already
   `flex-basis:100%`, one per row.
   2 pages: /more-enrolment/ (987489298), /online-bookings/ (987489358). */
@media (min-width: 981px) {
  body.page-id-987489298 .et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  body.page-id-987489298 .et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  body.page-id-987489358 .et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  body.page-id-987489358 .et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column {
    flex-basis: calc(25% - 15px);                  /* 4-up with three 20px gaps */
    max-width: calc(25% - 15px);
  }
}


/* ---- comparison pages (comparison pass, 2026-08-21) ---- */
/* =====================================================================
   1. .ss-versus -- the competitor comparison table.

   Desktop (>=981): a real <table>, restyled off the legacy navy/Yeseva look.
   Phone   (<=980): every <tr> becomes one of the design's wash cards.

   The phone half is the design; the desktop half is the owner's instruction
   to keep a real table for search. Both render the SAME <table> element, so
   the two views cannot drift apart.

   Each <td> carries data-label (build_content writes it), so the phone card
   can print "Simple Salon:" / "<Competitor>:" in front of the value exactly
   as the design draws it, without a second copy of the text in the DOM.
   ===================================================================== */

.ss-versus {
  margin: 0;
  width: 100%;
}

.ss-versus table {
  width: 100%;
  border-collapse: collapse;
  /* Divi emits a 1px border on tables inside a text module. The design has no
     outer box, and it rendered as a visible frame around the whole stack of
     cards on a phone. An unprefixed `.ss-versus table` (0,1,1) did NOT win --
     measured: computed border-top-width stayed 1px after it was applied. Every
     Divi stylesheet loads after the child theme, so a tie is a loss; the
     layout prefix below is what the rest of this file uses for the same
     reason. The prefixed reset is a few lines down. */
  border: 0;
  /* The legacy inline CSS set min-width:580px and put the table in an
     overflow-x:auto scroller. Below 981 the table restacks, so nothing
     needs to scroll sideways and the scroller is gone entirely. */
  margin: 0;
}

/* The reset that actually wins. (0,4,1) with the layout prefix, matching the
   pattern used by every other rule in this file that had to beat Divi. */
.et-l--post .et_builder_inner_content .ss-versus table,
.et-l--body .et_builder_inner_content .ss-versus table,
.et-l--post .et_builder_inner_content .ss-versus table th,
.et-l--body .et_builder_inner_content .ss-versus table th,
.et-l--post .et_builder_inner_content .ss-versus table td,
.et-l--body .et_builder_inner_content .ss-versus table td {
  border: 0 none;
}

.ss-versus caption {
  caption-side: top;
  font-size: 13px;
  line-height: 1.3;
  color: #636363;                      /* design: source-note colour */
  text-align: center;
  margin: 0 0 25px;
}

/* ---- desktop table ------------------------------------------------- */
@media (min-width: 981px) {
  .ss-versus table th,
  .ss-versus table td {
    padding: 15px 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #EDE7F6;  /* --border token, literal */
  }

  /* FIX 3 (2026-08-22, owner-reported: desktop table renders at the MOBILE
     sizes). Transcribed from Comparison Page Template.dc.html lines 87-94
     (the desktop document, not a screenshot): row label and column header
     are BOTH 20px Poppins 500 -- this file had them at 17px, and the header
     was additionally 600 where the design says 500. Value cells are 17px
     (also missing entirely below -- there was no desktop font-size rule for
     `td` at all, so it fell through to Divi's own default). Measured live
     before this fix at 1440 on /fresha-alternative/: thead th 17px/600,
     tbody th 17px/500, tbody td 14px. The 981px mobile block below (label
     17px, value 15px) is unchanged -- it already matches the design and is
     not part of this fix. */
  .ss-versus table thead th {
    font-family: Poppins, sans-serif;
    font-weight: 500;                  /* design 500 (was 600) */
    font-size: 20px;                   /* design 20 (was 17) */
    letter-spacing: -0.03em;
    color: #2F2F2F;                    /* --text, literal */
    background: transparent;
    border-bottom: 2px solid #EDE7F6;
  }

  .ss-versus table tbody td {
    font-size: 17px;                   /* design 17 (was unset -> 14 live) */
    line-height: 1.3;                  /* design */
  }

  /* CHANGE 4 (owner-approved, 2026-08-22) -- THE SIMPLE SALON VALUE COLUMN IS
     NO LONGER ORANGE ON DESKTOP. THIS IS A VISIBLE IDENTITY CHANGE.

     The previous rule coloured the HEADER and the VALUE CELLS together, both
     #FF7043. That was never the design: transcribed from "Comparison Page
     Template.dc.html",
       line 87 (header)      `font-size:20px; font-weight:500; color:#FF7043`
       line 93 (value cells) `font-size:17px; font-weight:600; color:#2F2F2F`
     -- the orange belongs to the column HEADING, and the values under it are
     the ordinary text colour at weight 600. The design uses weight, not hue,
     to make our column read as the answer.

     WHY IT MATTERS BEYOND FIDELITY. #FF7043 on the washed rows measures
     2.53-2.63:1 against the rendered pixels (six rows sampled on
     /fresha-alternative/ at 1440), and 2.74:1 for the header on plain white.
     WCAG AA needs 4.5:1 -- 17px at weight 600 is NOT "large text", which
     requires 18.66px bold or 24px regular. The competitor's column beside it
     already measures 5.53-5.77:1, so the page's PRIMARY data column was its
     least legible one. #2F2F2F on the same washes measures ~12:1.

     THE PHONE IS NOT TOUCHED and must not be: the restacked cards below 981
     already render rgb(102,102,102) at 5.41-5.52:1, all passing. This whole
     rule lives inside the `min-width: 981px` block.

     The header stays exactly as it renders today -- orange, weight 600 --
     because this change is meant to be one thing, reversible on its own. Note
     that the 600 is itself a divergence: the design says 500 for the header,
     and it only became 600 by being coupled to the value cells in the rule
     this replaces. Preserved deliberately rather than silently corrected, and
     reported. To revert the whole change, put `color: #FF7043` back on the
     `tbody td:nth-child(2)` rule below.

     COMPETITOR, read off the live CSSOM at 1440: exactly ONE declaration of
     `color` reaches this cell -- this file's own (0,2,3), not !important. The
     replacement is written at the same specificity in the same place, so it
     simply is the declaration; no !important, no ordering trick. */
  .ss-versus table thead th:nth-child(2) {
    color: #FF7043;                    /* design 87: the HEADING is orange */
    font-weight: 600;                  /* preserved as-is (design says 500) */
  }

  .ss-versus table tbody td:nth-child(2) {
    color: #2F2F2F;                    /* design 93 (was #FF7043, 2.53:1) */
    font-weight: 600;                  /* design 93 */
  }

  .ss-versus table tbody td:nth-child(3) {
    color: #636363;
  }

  /* CHANGE 5 (owner-approved, 2026-08-22) -- COLUMN WIDTHS.

     The design lays both the header row and every data row on the SAME grid,
     `grid-template-columns: 1fr 27% 27%` (lines 85 and 91), with `text-align:
     center` on the two value spans (lines 87-88, 93-94) and the label left.
     1fr of a 3-track grid whose other two tracks are 27% each is 46%.

     Live was `table-layout: auto`, so the browser sized the columns by content
     and they came out differently on every page -- measured at 1440:
       /timely-alternative/     316.5 / 849.4 / 174.1
       /shortcuts-alternative/  296.7 / 759.0 / 284.3
       /fresha-alternative/     339.4 / 665.0 / 335.5
     i.e. on the Timely page our column was 4.9x the competitor's purely
     because our cells hold more words, which reads as an argument made by
     layout rather than by data. Fixed widths make every page's table the same
     shape and put the two values on a common axis for comparison.

     `table-layout: fixed` takes its widths from the first row, which is the
     <thead> -- present on every one of the 18 pages (it is kept in the DOM and
     only `display:none`d on the phone). No competitor at all: the CSSOM walk
     returns ZERO declarations of `table-layout` for this element, so `auto`
     was the initial value, not something set.

     Desktop only. Below 981 the table restacks into the design's cards, where
     `display:block` on every cell makes width and text-align irrelevant, and
     that layout is owner-approved and separately verified. */
  .ss-versus table {
    table-layout: fixed;               /* was auto (initial) */
  }

  .ss-versus table thead th:nth-child(1) { width: 46%; }   /* design 1fr */
  .ss-versus table thead th:nth-child(2) { width: 27%; }   /* design 27% */
  .ss-versus table thead th:nth-child(3) { width: 27%; }   /* design 27% */

  /* (0,2,3) beats the block's own `.ss-versus table td {text-align:left}`
     (0,1,2) on specificity, so the label column keeps its left alignment
     without needing a counter-rule. */
  .ss-versus table thead th:nth-child(2),
  .ss-versus table thead th:nth-child(3),
  .ss-versus table tbody td:nth-child(2),
  .ss-versus table tbody td:nth-child(3) {
    text-align: center;                /* design 87/88/93/94 */
  }

  .ss-versus table tbody th {
    font-family: Poppins, sans-serif;
    font-weight: 500;
    font-size: 20px;                   /* design 20 (was 17) */
    letter-spacing: -0.03em;
    color: #2F2F2F;
  }

  .ss-versus table tbody tr:nth-child(3n+1) { background: linear-gradient(180deg, rgba(255,112,67,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
  .ss-versus table tbody tr:nth-child(3n+2) { background: linear-gradient(180deg, rgba(38,198,218,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
  .ss-versus table tbody tr:nth-child(3n+3) { background: linear-gradient(180deg, rgba(124,77,255,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }

  .ss-versus table tbody tr:first-child td:first-child {
    border-top-left-radius: 20px;
  }
  .ss-versus table tbody tr:first-child td:last-child {
    border-top-right-radius: 20px;
  }
  .ss-versus table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 20px;
  }
  .ss-versus table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 20px;
  }
  .ss-versus table tbody tr:last-child td { border-bottom: 0; }
}

/* ---- phone: the design's stacked cards ------------------------------ */
@media (max-width: 980px) {
  /* The header row's information is carried per-cell by data-label, so the
     visible <thead> is redundant on a phone. Kept in the DOM (not removed at
     build time) so the desktop view and any parser still see a real header. */
  .ss-versus table thead { display: none; }

  /* CHANGE 1 (owner-approved, 2026-08-22). Two things changed from the first
     mobile build: (a) each row now shows its two values SIDE BY SIDE under
     a full-width label instead of three fully stacked lines, and (b) the
     persuasive total/bottom-line row -- when the page has one -- is visually
     promoted to the FRONT of the card list.

     The table markup is UNCHANGED for both. `tbody` becomes the flex
     container so `order` can reorder its `<tr>` children without touching
     the DOM (the row stays the LAST <tr>, which is what keeps the table
     semantically correct for search); each `<tr>` becomes a flex-wrap row so
     the `<th>` (forced to 100% width) wraps onto its own line and the two
     `<td>`s share the line below.

     build_content.py stamps `.ss-versus-total` onto a row ONLY when its own
     <th> label matches TOTAL_ROW_RE ("total", "bottom line" or "best fit",
     case insensitive) -- never by position. Checked against all ten pages in
     this pass: only fresha has a real "Estimated monthly total" row; acuity,
     boulevard, glossgenius and mangomint have a qualitative "Bottom line" row
     instead (same treatment); booksy, kitomba, mindbody and phorest have
     NEITHER, so nothing is marked and nothing moves for them -- there is no
     persuasive total to promote, and inventing one would be inventing data.

     CORRECTED 2026-08-23. This comment previously listed hairbro among the
     "Bottom line" pages and asserted it was hoisted. It was NOT: hairbro's
     summary row is labelled "Best fit for your business", which the old
     pattern ("total"|"bottom line") did not match, so hairbro alone shipped
     with its summary row left at the bottom while its four siblings had
     theirs promoted. `best fit` was added to TOTAL_ROW_RE, which matches
     hairbro's last row and nothing else on any of the 18. Hoisted 7 -> 8. */
  .ss-versus table,
  .ss-versus table th,
  .ss-versus table td {
    display: block;
    width: auto;
    border: 0;
    padding: 0;
    text-align: left;
  }

  .ss-versus table tbody {
    display: flex;
    flex-direction: column;
    width: auto;
  }

  /* CHANGE 3 (owner-approved, 2026-08-22): the restacked row chrome is TIGHTER
     THAN THE DESIGN, deliberately. The 390 frame draws `padding:15px 20px`,
     an 8px internal gap and a 12px gap between rows -- and it draws FIVE rows.
     The live pages carry 11 to 17 (measured: phorest 12, fresha 13, timely and
     kitomba 16, shortcuts 18 including the header row), so the design's chrome
     is paid 3x more often than the design ever pays it and the versus section
     became the longest scroll on the page.

     The owner asked for roughly 12% off the section. These three numbers are
     the whole change; nothing about the two-column layout, the `order:-1`
     hoist, the washes or the data moves. The design's own values are kept in
     the comments so the divergence stays visible and reversible.

     Cell type sizes are NOT touched -- 17px label / 15px value are the
     design's and are already what makes the row readable at arm's length.
     Chrome is what shrinks; text is not. */
  .ss-versus table tr {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;                     /* owner (design 8) / column-gap 12 */
    border-radius: 20px;               /* design: 20px on comparison rows */
    padding: 10px 16px;                /* owner (design 15px 20px) */
    margin: 0 0 8px;                   /* owner (design 12) */
  }

  .ss-versus table tr:last-child { margin-bottom: 0; }

  /* the total/bottom-line row, when one was found -- hoisted to the top of
     the VISUAL list. It stays the last <tr> in the markup. */
  .ss-versus table tr.ss-versus-total { order: -1; }

  .ss-versus table tr:nth-child(3n+1) { background: linear-gradient(180deg, rgba(255,112,67,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
  .ss-versus table tr:nth-child(3n+2) { background: linear-gradient(180deg, rgba(38,198,218,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
  .ss-versus table tr:nth-child(3n+3) { background: linear-gradient(180deg, rgba(124,77,255,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }

  /* the row label -- a <th scope="row">, NOT a td. Forced onto its own full
     line so the two <td>s below it wrap onto a shared second line. */
  .ss-versus table tbody th {
    flex: 0 0 100%;
    width: 100%;
    font-family: Poppins, sans-serif;
    font-weight: 500;
    font-size: 17px;                   /* design */
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: #2F2F2F;
    text-align: left;
    margin: 0;
  }

  .ss-versus table td {
    flex: 1 1 0;
    min-width: 0;
    padding: 0;
    border: 0;
    font-size: 15px;                   /* design: value rows are 15px */
    line-height: 1.3;
    margin: 0;
  }

  /* "Simple Salon:" / "<Competitor>:" prefixes, from data-label -- INLINE,
     not block (a block prefix forces its own line before the value even on
     a one-line answer, which is what made the first build of this change
     TALLER than the original despite the 2-column layout: measured on the
     pilot, every short value row grew from one text line to two). Inline
     lets "Simple Salon: $136 ..." wrap as one flow, exactly like the
     original stacked build did. */
  .ss-versus table td::before {
    content: attr(data-label) ": ";
    font-weight: 700;
  }

  .ss-versus table td:nth-child(2)::before { color: #FF7043; }

  .ss-versus table td:nth-child(3) { color: #636363; }
  .ss-versus table td:nth-child(3)::before { color: #636363; }
}

/* the footnote under the table (card-processing estimate, source lines) */
.ss-versus-note {
  font-size: 12px;                     /* design */
  line-height: 1.4;                    /* design */
  color: #636363;
  margin: 25px 0 0;
}

.ss-versus-note p { margin: 0 0 6px; font-size: 12px; line-height: 1.4; }
.ss-versus-note p:last-child { margin-bottom: 0; }

/* The pricing section's H2 is ORANGE in the design -- the only H2 on the page
   that is. Scoped to the section class so no other .ss-sec h2 moves. */
.ss-versus-sec h2,
.ss-versus-sec .ss-sec-h2 {
  color: #FF7043;
}

/* =====================================================================
   1b. .ss-vs-card -- the three hero cards.

   NOT .ss-value-card, and the difference is the whole point. The Feature Page
   value card is WHITE TEXT ON A COLOURED WASH, which is the treatment
   open-decisions item 13 records as below WCAG AA on all 138 samples and which
   the owner's team is reviewing. The COMPARISON design does not do that: its
   three hero cards are `background: #ffffff` with the default #2F2F2F text and
   only the ICON carries the accent colour.

   Reusing .ss-value-card here rendered the headings white-on-white-ish and
   imported a known contrast problem into a design that does not have one --
   measured on the pilot at 390 (H3 came back rgb(255,255,255)). So this is a
   deliberate NOT-reuse, recorded at the point of divergence.

   .ss-cards-3 (the 3-up grid) IS reused unchanged -- it is not page-scoped.
   ===================================================================== */

.et-l--post .et_builder_inner_content .ss-vs-card,
.et-l--body .et_builder_inner_content .ss-vs-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;                 /* design: solid white, not a wash */
  border-radius: var(--gvid-radius-card, 30px);   /* design 30 */
  padding: 25px;                       /* design */
  row-gap: 12px;                       /* design */
}

.et-l--post .et_builder_inner_content .ss-vs-card h3,
.et-l--body .et_builder_inner_content .ss-vs-card h3 {
  color: #2F2F2F;
  margin: 0;
  padding: 0;
}

.et-l--post .et_builder_inner_content .ss-vs-card p,
.et-l--body .et_builder_inner_content .ss-vs-card p {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 16px;                     /* design */
  line-height: 1.3;                    /* design */
  color: #2F2F2F;
  margin: 0;
}

/* =====================================================================
   1c. .ss-intro-sec -- the page's own intro prose.

   The design has NO intro section on a comparison page; this content is kept
   because the standing rule is that mobile keeps content the design drops. But
   "kept" is not "untreated": on /fresha-alternative/ it is a SINGLE 112-word
   paragraph, and with only .ss-intro's font-size and line-height it rendered
   320px tall, full-bleed and left-aligned -- a wall.

   Constrained to a readable measure and centred as a block, with the text
   itself left-aligned (long prose centred is worse, not better). The paragraph
   is also split at sentence boundaries by build_content -- a FORMATTING change
   only; no word is added, removed or reordered.
   ===================================================================== */

.et-l--post .et_builder_inner_content .ss-intro-sec .ss-intro,
.et-l--body .et_builder_inner_content .ss-intro-sec .ss-intro {
  max-width: 660px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.et-l--post .et_builder_inner_content .ss-intro-sec .ss-intro p,
.et-l--body .et_builder_inner_content .ss-intro-sec .ss-intro p {
  margin: 0 0 15px;
}

.et-l--post .et_builder_inner_content .ss-intro-sec .ss-intro p:last-child,
.et-l--body .et_builder_inner_content .ss-intro-sec .ss-intro p:last-child {
  margin-bottom: 0;
}

/* =====================================================================
   1d. .ss-intro-card / .ss-intro-more -- CHANGE 2 (owner-approved,
   2026-08-22). The design export has NO intro section at all (see 1c
   above), so there is no card to inherit here either -- these three values
   are the owner's own words ("curved section with a suitable background
   colour") matched onto the design's OWN established language, not new
   ones: #F4F4F4 is the hero band's surface colour, --gvid-radius-card is
   the site's one card radius (30px, already used by .ss-vs-card / .ss-step
   above), and 25px padding is the same flat value those two cards use --
   reused rather than a phone-only number invented for this card, since the
   design supplies no distinct desktop figure to transcribe. One line to
   change if the owner wants the two to differ: add a
   `@media (max-width: 980px)` override under the block below.

   The card is full width of the section (matching the Benefits / Steps /
   CTA bands), not a narrow floating box -- the 660px reading measure above
   already keeps the PROSE narrow; this just gives the section itself the
   "curved, coloured" treatment the owner asked for.

   .ss-intro-more is the <details>/<summary> "Read more" disclosure.
   EVERY WORD STAYS IN THE HTML AT EVERY WIDTH -- this is display-only. No
   JavaScript: the panel is forced open and its toggle hidden at >=981px by
   CSS alone (overriding the browser's own `details:not([open]) > *
   {display:none}` rule with !important), so only the phone/tablet view
   below the site's one breakpoint ever shows it collapsed.
   ===================================================================== */

.et-l--post .et_builder_inner_content .ss-intro-sec .ss-intro-card,
.et-l--body .et_builder_inner_content .ss-intro-sec .ss-intro-card {
  background: #F4F4F4;                              /* hero band surface */
  border-radius: var(--gvid-radius-card, 30px);      /* design 30 */
  padding: 25px;                                     /* design */
}

.ss-intro-more {
  margin-top: 8px;
}

.ss-intro-more summary {
  cursor: pointer;
  list-style: none;
  font-family: Poppins, sans-serif;
  font-weight: 600;
  font-size: 15px;
  color: #FF7043;                                    /* --primary, literal */
}

.ss-intro-more summary::-webkit-details-marker { display: none; }
.ss-intro-more summary::marker { content: ""; }

@media (min-width: 981px) {
  .ss-intro-more summary { display: none; }
  .ss-intro-more p { display: block !important; }
}

/* the hero trust line: "No contracts . No card required . Cancel anytime" */
.ss-hero-trust p {
  font-size: 13px;                     /* design */
  line-height: 1.3;
  color: #636363;                      /* design */
  margin: 0;
}

/* =====================================================================
   2. .ss-steps -- "how switching works", three numbered cards.
   Design: radius 30px, wash by i%3, padding 25px, 12px internal gap,
   20px between cards; number Poppins 600 30px in the wash's own accent.
   ===================================================================== */

.ss-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;                           /* design */
  width: 100%;
}

.ss-step {
  border-radius: 30px;                 /* design */
  padding: 25px;                       /* design */
  display: flex;
  flex-direction: column;
  gap: 12px;                           /* design */
}

.ss-step:nth-child(3n+1) { background: linear-gradient(180deg, rgba(255,112,67,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
.ss-step:nth-child(3n+2) { background: linear-gradient(180deg, rgba(38,198,218,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }
.ss-step:nth-child(3n+3) { background: linear-gradient(180deg, rgba(124,77,255,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%); }

/* The number must beat Divi's own `.et_pb_text p` sizing, which is emitted per
   module into the generated deferred sheet. A bare `.ss-step-n` (0,1,0) lost
   to it and the number rendered at body size -- measured on the pilot, where
   the colour rule DID win (the numbers were correctly orange/cyan/violet) but
   the size did not, which is what made it look like a styling quirk rather
   than a specificity loss. The layout prefix takes this to (0,4,1). */
.et-l--post .et_builder_inner_content .ss-step p.ss-step-n,
.et-l--body .et_builder_inner_content .ss-step p.ss-step-n {
  font-family: Poppins, sans-serif;
  font-weight: 600;
  font-size: 30px;                     /* design */
  line-height: 1;
  letter-spacing: -0.03em;
  display: block;
  margin: 0;
}

.et-l--post .et_builder_inner_content .ss-step:nth-child(3n+1) p.ss-step-n,
.et-l--body .et_builder_inner_content .ss-step:nth-child(3n+1) p.ss-step-n { color: #FF7043; }
.et-l--post .et_builder_inner_content .ss-step:nth-child(3n+2) p.ss-step-n,
.et-l--body .et_builder_inner_content .ss-step:nth-child(3n+2) p.ss-step-n { color: #26C6DA; }
.et-l--post .et_builder_inner_content .ss-step:nth-child(3n+3) p.ss-step-n,
.et-l--body .et_builder_inner_content .ss-step:nth-child(3n+3) p.ss-step-n { color: #7C4DFF; }

/* Divi's heading defaults would otherwise win on size and margin. */
.ss-step h3 {
  font-family: Poppins, sans-serif;
  font-weight: 500;
  font-size: 20px;                     /* design */
  line-height: 1.2;                    /* design */
  letter-spacing: -0.03em;
  color: #2F2F2F;
  margin: 0;
  padding: 0;
}

.ss-step p {
  font-size: 16px;                     /* design */
  line-height: 1.3;                    /* design */
  color: #2F2F2F;
  margin: 0;
  padding: 0;
}

@media (min-width: 981px) {
  /* Three across on desktop. The design's desktop document lays the three
     steps in a row; the 390 frame stacks them. */
  .ss-steps {
    flex-direction: row;
    gap: 20px;
  }
  .ss-steps > .ss-step { flex: 1 1 0; }
}

/* =====================================================================
   3. .ss-hub-* -- the /compare/ card grid.

   There is no hub document in the design export. The Migration Map specifies
   the hub as "card grid like Blog", and Blog.dc.html supplies that grid
   (grid-template-columns: 1fr 1fr 1fr, radius 20/30px). So this follows a
   real design source rather than inventing one.

   The hub's existing markup ALREADY uses .ss-compare-grid / .ss-cc / .ss-vs
   inline. .ss-vs is kept (it is the card's "vs" label and collides with
   nothing here); the grid and card classes are renamed to .ss-hub-* so the
   hub stops carrying its own inline <style>.
   ===================================================================== */

.ss-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);   /* Blog.dc.html */
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 980px) {
  .ss-hub-grid { grid-template-columns: 1fr; gap: 12px; }
}

.ss-hub-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #ffffff;
  border-radius: 30px;                 /* Blog card radius */
  padding: 25px;
  text-decoration: none;
  border: 1px solid #EDE7F6;
  transition: transform .15s ease, box-shadow .15s ease;
}

.ss-hub-card:hover,
.ss-hub-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(124, 77, 255, 0.15);
}

@media (prefers-reduced-motion: reduce) {
  .ss-hub-card { transition: none; }
  .ss-hub-card:hover, .ss-hub-card:focus-visible { transform: none; }
}

.ss-hub-card .ss-vs {
  font-family: Poppins, sans-serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: #2F2F2F;
}

.ss-hub-card .ss-hub-sub {
  font-size: 16px;
  line-height: 1.3;
  color: #636363;
}

/* Two more pieces the hub rebuild needs, added 2026-08-22 alongside it.
   Neither existing hub class covers them, and both are EXISTING hub copy
   (not invented) that "read them before writing anything new" does not
   mean "drop what's uncovered" -- it means do not re-declare .ss-hub-grid /
   .ss-hub-card / .ss-vs, which this does not.

   .ss-hub-cta is the per-card "See the comparison ->" line (was `.ss-go`,
   inline-styled). Small, bold, accent orange -- the same visual language
   this file already uses for every other in-card call-to-action text. */
.ss-hub-card .ss-hub-cta {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--gcid-6spcyv8qzp, #FF7043);
  margin-top: auto;                    /* pins it to the card's bottom edge */
}

.ss-hub-card:hover .ss-hub-cta,
.ss-hub-card:focus-visible .ss-hub-cta {
  color: #2F2F2F;                      /* = the old .ss-cc:hover .ss-go swap */
}

/* .ss-hub-more is the "More comparisons" pill list (was `.ss-more` /
   `.ss-more a`, inline-styled, the hub's OTHER inline <style> block -- not
   named in the brief's three, but leaving one inline block behind while
   removing the other was not a real option). Same rounded-pill affordance
   the old inline version used; recoloured onto the site's own tokens. */
.ss-hub-more {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.ss-hub-more a {
  font-family: Poppins, sans-serif;
  font-weight: 600;
  font-size: 15px;
  background: #F4F4F4;
  border: 1px solid #EDE7F6;
  border-radius: 100px;
  padding: 10px 20px;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}

.ss-hub-more a:hover,
.ss-hub-more a:focus-visible {
  background: var(--gcid-6spcyv8qzp, #FF7043);
}

/* The site's generic `.ss-sec a` link guard (shared-desktop/build_theme.py)
   colours every anchor inside a .ss-sec section violet by default, at
   (0,5,1) via `.et-l--post .et_builder_inner_content .ss-sec
   a:not([class*="et_pb_button"]):not([class*="ssh-"])`. Verified live on
   the hub before this rule was added -- the pills rendered rgb(124,77,255)
   from that guard, not the #2F2F2F above. !important, not more classes:
   the guard itself carries no !important, so this wins outright without an
   arms-race over exact specificity. */
.ss-hub-more a {
  color: #2F2F2F !important;
}
.ss-hub-more a:hover,
.ss-hub-more a:focus-visible {
  color: #ffffff !important;
}

@media (prefers-reduced-motion: reduce) {
  .ss-hub-more a { transition: none; }
}

/* =====================================================================
   4. FIX 1 (2026-08-22, owner-reported) -- the accordion chevron on these
   18 pages, continued from build_content.py's accordion(). That function
   now sets closedToggleIcon to Divi's own ETmodules glyph (0xe044, "Caret
   down") instead of FontAwesome, because these pages load no FontAwesome
   (measured: 0 references in the served HTML) while ETmodules is Divi's
   own core icon font and always loaded.

   The OPEN row still needs an override. Divi's Accordion module reads ONLY
   closedToggleIcon; the open glyph falls through to featurepage/
   build_theme.py's P2.4 rule (`.ss-faq`/`.ss-benefits`, shared with these
   pages via the SAME section classes), which forces FontAwesome content
   \f078 -- built for the seven pages that load FontAwesome, and an empty
   tofu box on these 18, which do not. Measured live before this fix:
   `.et_pb_toggle_open .et_pb_toggle_title::before` computed
   `font-family: FontAwesome`, `content: ""`.

   Overridden here to the SAME 0xe044 codepoint the closed row now uses,
   rotated 180deg by the existing shared-fixups rotation rule (`.ss-faq
   .et_pb_toggle_open .et_pb_toggle_title::before {transform:
   rotate(180deg)}`, untouched, still applies) -- one glyph, two states, no
   external font. `.ss-cmp-toggle` (set only by comparison/build_content.py's
   two accordion() call sites) keeps this comparison-only: Feature Pages
   share `.ss-faq`/`.ss-benefits` and DO load FontAwesome, so P2.4 is
   correct there and is left exactly as it is.

   SPECIFICITY. P2.4 is `.et-l--post .ss-faq .et_pb_toggle_open
   .et_pb_toggle_title::before` = 4 classes + 1 pseudo-element = (0,4,1),
   !important on every property. This rule adds one more class
   (`.et_builder_inner_content`) for (0,5,1), so it wins outright and does
   not depend on cascade order (it is also later in the same stylesheet,
   since this file's CSS is appended after the base that already contains
   P2.4, so it would win a specificity tie too). */
.et-l--post .et_builder_inner_content .ss-cmp-toggle .et_pb_toggle_open .et_pb_toggle_title::before,
.et-l--body .et_builder_inner_content .ss-cmp-toggle .et_pb_toggle_open .et_pb_toggle_title::before {
  font-family: "ETmodules" !important;             /* = the closed rows' font (FIX 1) */
  font-weight: 400 !important;                     /* = the closed rows' weight */
  content: "\e044" !important;                     /* = the closed rows' glyph, rotated by shared-fixups */
}

/* =====================================================================
   5. FIX 4 (2026-08-22, owner-reported) -- closed accordion rows sit on a
   solid grey fill under the wash, open rows sit on white.

   Both states already carry the SAME translucent wash gradient (a
   background-IMAGE from the shared accordion-item preset, via
   fb.accordion_item() -- see featurepage/build_content.py). Underneath
   that image, Divi's own per-state module default sets a solid
   background-COLOR that differs: measured live before this fix,
   `.et_pb_toggle_open{background-color:#ffffff}` and
   `.et_pb_toggle_close{background-color:#f4f4f4}`, both emitted into the
   post's own dynamic CSS cache file (et-divi-dynamic-tb-...css), not this
   stylesheet and not a setting either state exposes in the builder. The
   design draws the wash on one common base, identically open or closed.

   Fix: force the closed state to the same white base the open state
   already uses. `.ss-cmp-toggle` keeps this comparison-only for the same
   reason as FIX 1 above -- Feature Pages share `.ss-benefits-list` (as an
   ancestor class on a column, not the module itself) and have not asked
   for this change.
   SPECIFICITY. Divi's own rule is `.et_pb_toggle_close` alone, (0,1,0), not
   !important (confirmed via the live CSSOM). Four classes here, (0,4,0),
   wins outright with no !important needed. */
.et-l--post .et_builder_inner_content .ss-cmp-toggle .et_pb_toggle_close,
.et-l--body .et_builder_inner_content .ss-cmp-toggle .et_pb_toggle_close {
  background-color: #ffffff;                       /* = the open rows' base (FIX 4) */
}

/* =====================================================================
   6. THE COMPARISON-FAMILY SCOPE, and why these rules are not written on
   the bare shared class.

   Everything below styles elements whose CLASS is shared with the seven
   Feature / Industry pages (`.ss-cta`, `.ss-hero h1`, `.ss-hero-sub`) but
   whose DESIGN VALUES differ between the two templates. Transcribed side by
   side from the export, not inferred:

     value                     Feature/Industry doc     Comparison doc
     hero H1 max-width         826px                    1000px
     hero sub, desktop         20px / 1.2 / #000000     18px / 1.35 / inherit
                               max-width 708px          max-width 640px
     hero sub, 390 frame       18px / 1.2 / #000000     16px / 1.3  / inherit
     CTA sub                   18px / 1.3 / #EDE7F6     18px / 1.3 / #EDE7F6

   So writing these on `.ss-hero h1` or `.ss-hero-sub` directly would move
   seven signed-off Feature Pages onto the WRONG template's numbers. They
   need a comparison-family scope, and no class on the page provides one:
   measured live, the CTA row is `et_pb_row_N et_pb_row et_flex_row ss-cta`
   on a comparison page, on the hub AND on a Feature Page -- identical.

   THE HOOK IS THE PAGE'S OWN CONTENT, via :has() on the layout wrapper:
     `.ss-versus`   -> the competitor table. Counted against the database:
                       present on exactly the 18 comparison pages, absent
                       everywhere else on the site.
     `.ss-hub-grid` -> the /compare/ hub, which has no versus table but is
                       the same family and carries the same CTA row.
   Together: 19 pages, the exact population this pass is scoped to.

   :has() IS ALREADY LOAD-BEARING IN THIS STYLESHEET -- featurepage/
   p3_css.py's FAQ-seam rule (`.et_pb_section:has(> .ss-cta) + .ss-faq`)
   shipped and was verified on 2026-08-19, and CSS.supports('selector(:has(a))')
   returns true in both engines this project measures with. A browser without
   :has() falls back to the current rendering, which is the pre-pass state --
   degradation, not breakage.

   NOT DONE HERE, and reported rather than fixed: the shared CTA banner on
   the seven Feature Pages measures 18px / 21.6px (1.2) / rgb(255,255,255)
   against the design's 18px / 1.3 / #EDE7F6. Same component, two more
   divergences, but changing the colour of a signed-off page's CTA is a
   bigger call than this pass was given. To widen any rule below to those
   pages, delete its two `:has(...)` conditions.
   ===================================================================== */

/* 6a. THE CTA SUB-PARAGRAPH'S LINE-HEIGHT.
   Design: 1.3, identically in Comparison, Feature Page, Homepage, Features
   and Pricing -- all five documents say `font-size:18px; line-height:1.3;
   color:#EDE7F6; max-width:620px`.
   Live before this rule: 27.2px on a 16px font at 390 and 23.8px on 14px at
   1440 -- both exactly 1.7, which is Divi's `--et_global_body_font_height`
   inherited from the text module. Every other body paragraph on the page is
   already 1.3.
   COMPETITOR: none. The CSSOM walk at 390 returns ZERO declarations of
   line-height matching this <p> (with one unreadable sheet, the cross-origin
   Google Fonts sheet, which contains only @font-face) -- the 27.2px is an
   INHERITED length, not a matched rule, so no !important is needed and any
   rule at all would win. The layout prefix is used anyway, for consistency
   with the rest of this file and as headroom if Divi later emits one.
   Exactly ONE <p> exists inside `.ss-cta` -- measured on a comparison page,
   the hub and a Feature Page -- so `.ss-cta p` cannot catch the headline. */
.et-l--post .et_builder_inner_content:has(.ss-versus) .ss-cta p,
.et-l--body .et_builder_inner_content:has(.ss-versus) .ss-cta p,
.et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-cta p,
.et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-cta p {
  line-height: 1.3;                                /* design 1.3 (was 1.7) */
}

/* 6b. THE HERO SUB-PARAGRAPH ON A PHONE. MOBILE ONLY, BY INSTRUCTION.
   Comparison 390 frame: `font-size:16px; line-height:1.3` and NO colour
   declared, so it inherits the document's #2F2F2F.
   Live before this rule, measured at 390: 18px / 21.6px / rgb(0,0,0) --
   every one of them the FEATURE PAGE's number (that frame really does draw
   18 / 1.2 / #000000), inherited because the class is shared.

   DESKTOP IS DELIBERATELY NOT TOUCHED, and it is still divergent: live is
   20px / 1.2 / #000000 (the Feature Page desktop value) where the Comparison
   document says 18px / 1.35 / inherited #2F2F2F. Left alone on instruction;
   reported, not fixed. The consequence to be aware of is that the sub is
   #2F2F2F below 981px and #000000 above it -- each width matching its own
   design frame, and no viewport shows both.

   WHERE THE VALUE HAS TO LAND. `.ss-hero-sub`'s <p> does not take a size of
   its own: featurepage/p3_css.py forces `font-size:inherit !important;
   line-height:inherit !important` on `.ss-hero .ss-hero-sub .et_pb_text_inner
   p` (0,4,1)! specifically to beat a Divi 14px!important. So the number must
   be set on the MODULE and inherited down -- setting it on the <p> would be
   beaten by that !important, which is the trap this comment exists to record.

   COMPETITORS on the module at 390, read off the live CSSOM, none !important:
     `div`                                  (0,0,1)  font-size 100%
     `.et-l--post .ss-hero .ss-hero-sub`    (0,3,0)  20px / 1.2 / #000000
     same, @media (max-width:980px)         (0,3,0)  18px          <- current winner
     `.et_pb_text`                          (0,1,0)  line-height 1.7em
   (0,5,0) below beats all four on specificity alone; no !important needed. */
@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-hero .ss-hero-sub,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-hero .ss-hero-sub,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-hero .ss-hero-sub,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-hero .ss-hero-sub {
    font-size: 16px;                               /* design 390 16 (was 18) */
    line-height: 1.3;                              /* design 390 1.3 (was 1.2) */
    color: var(--gcid-90suxw02k0, #2f2f2f);        /* design: the --text token */
  }
}

/* =====================================================================
   7. DESKTOP WAS RENDERING THE PHONE'S PADDING AND TYPE.

   Sections 1b and 2 above were built from the 390 frame and given no desktop
   half at all, so their single set of values -- correct for a phone -- was
   also what 1440 got. The desktop document says something different for every
   one of them. Transcribed from "Comparison Page Template.dc.html" (the
   inline style= text, lines 54-55, 60-63, 109-112, 130) against
   mobile-match/design-comparison-390.html (lines 33-34, 38-41, 93-96, 113):

     element                     390 frame (live, correct)   desktop doc
     .ss-vs-card                 padding 25 / gap 12         35 / 15
     .ss-vs-card p               16px / 1.3                  18px / 1.3
     .ss-step                    padding 25 / gap 12         35 / 20
     .ss-step-n                  30px                        35px
     .ss-step p                  16px / 1.3                  18px / 1.3
     CTA sub                     16px, no max-width          18px, max-width 620
     hero h1                     no max-width                max-width 1000 + balance
     hero sub                    no max-width                max-width 640

   Every rule below is inside `@media (min-width: 981px)` so the phone values
   -- which ARE the design's and are separately verified -- cannot move. 981
   is this file's existing desktop breakpoint; no new one is introduced.

   WHY min-width RATHER THAN RESTATING THE BASE. The base declarations stay
   the phone's, so a viewport with no media support degrades to the mobile
   layout rather than to nothing, and the diff stays additive: nothing already
   verified at 390 is edited.

   SPECIFICITY, per rule, read off the live CSSOM before writing:
     .ss-vs-card padding/gap  incumbent is this file's own (0,3,0); the
                              override repeats it at (0,3,0) inside the media
                              query, i.e. wins on source order, no !important.
     .ss-vs-card p            incumbent (0,4,1) -- same trick, same file.
     .ss-step / .ss-step p    incumbent is the BARE `.ss-step` (0,1,0) and
                              `.ss-step p` (0,1,1) from section 2. The
                              overrides take the layout prefix instead, so
                              they win on specificity and not merely on order.
     .ss-step-n               kept at (0,4,1) -- strictly above the (0,3,1)
                              body rule below it, so `p` sizing can never
                              reach the number. This is why the number rule is
                              NOT written as `p:not(.ss-step-n)`: :not() takes
                              its argument's specificity, which would tie the
                              two at (0,4,1) and let the later one win.
   ===================================================================== */
@media (min-width: 981px) {

  /* 7a. the three hero cards */
  .et-l--post .et_builder_inner_content .ss-vs-card,
  .et-l--body .et_builder_inner_content .ss-vs-card {
    padding: 35px;                     /* design desktop 35 (was 25) */
    row-gap: 15px;                     /* design desktop 15 (was 12) */
  }

  .et-l--post .et_builder_inner_content .ss-vs-card p,
  .et-l--body .et_builder_inner_content .ss-vs-card p {
    font-size: 18px;                   /* design desktop 18 (was 16) */
    line-height: 1.3;                  /* design 1.3, unchanged */
  }

  /* 7b. the three numbered switching cards */
  .et-l--post .et_builder_inner_content .ss-step,
  .et-l--body .et_builder_inner_content .ss-step {
    padding: 35px;                     /* design desktop 35 (was 25) */
    gap: 20px;                         /* design desktop 20 (was 12) */
  }

  .et-l--post .et_builder_inner_content .ss-step p,
  .et-l--body .et_builder_inner_content .ss-step p {
    font-size: 18px;                   /* design desktop 18 (was 16) */
    line-height: 1.3;                  /* design 1.3, unchanged */
  }

  .et-l--post .et_builder_inner_content .ss-step p.ss-step-n,
  .et-l--body .et_builder_inner_content .ss-step p.ss-step-n {
    font-size: 35px;                   /* design desktop 35 (was 30) */
    line-height: 1;                    /* unchanged; restated so the 1.3
                                          above cannot reach the number */
  }

  /* 7c. the CTA sub-paragraph. Comparison-family scope (section 6): the
     shared banner on the seven Feature Pages is a different treatment and is
     deliberately not touched.
     `max-width` on a <p> needs auto side margins to stay centred -- the
     design centres it with `align-items:center` on a flex parent, which the
     Divi text module is not. */
  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-cta p,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-cta p,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-cta p,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-cta p {
    font-size: 18px;                   /* design desktop 18 (was 14) */
    max-width: 620px;                  /* design 620 (was none) */
    margin-left: auto;
    margin-right: auto;
  }

  /* 7d. the hero H1's measure. 1000px is the COMPARISON document's number;
     the Feature / Industry documents say 826, which is why this carries the
     family scope rather than being written on the shared `.ss-hero h1`.
     `text-wrap: balance` is the design's own declaration and is a
     progressive enhancement -- a browser without it renders the same
     1000px-wide heading with ordinary line breaking. */
  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-hero h1,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-hero h1,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-hero h1,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-hero h1 {
    max-width: 1000px;                 /* design 1000 (was none) */
    margin-left: auto;
    margin-right: auto;
    text-wrap: balance;                /* design text-wrap:balance */
  }

  /* 7e. the hero sub's measure. 640 is the Comparison document's; the
     Feature / Industry documents say 708. Family-scoped for that reason.
     Set on the MODULE, not the <p>, for the reason recorded at 6b: the <p>
     is held to `inherit !important` by featurepage/p3_css.py. max-width is
     not inherited, so it has to be the module that is narrowed. */
  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-hero .ss-hero-sub,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-hero .ss-hero-sub,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-hero .ss-hero-sub,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-hero .ss-hero-sub {
    max-width: 640px;                  /* design 640 (was none) */
    margin-left: auto;
    margin-right: auto;
  }
}

/* =====================================================================
   8. SECTION VERTICAL RHYTHM.

   Live was a flat Divi default -- 54px/54px at >=1350, 4% between 981 and
   1349, 50px/50px at <=980 -- on every section of every comparison page. The
   design varies it per section, transcribed from the section elements'
   own `padding` (desktop doc lines 79, 102, 127, 135; 390 frame lines 56, 89,
   110, 117):

     section        design 1440     design 390     live before
     Versus         140 / 70        70 / 35        54/54   50/50
     Switching       70 / 70        35 / 35        54/54   50/50
     CTA             70 / 70        35 / 35        54/54   50/50
     FAQ             70 / 140       35 / 70        70/54   35/50

   FAQ's TOP is already right and is not touched here -- featurepage/
   p3_css.py's seam rule (`.et_pb_section:has(> .ss-cta) + .ss-faq`) supplies
   70/35 for the recorded reason that one shared FAQ layout needs two
   different top paddings depending on what precedes it. Only padding-BOTTOM
   is set below. Note that seam rule uses Divi's 767 rather than this file's
   980, deliberately and for a reason recorded at its own site, so between 768
   and 980 the FAQ top is 70 while its bottom is 70; that band has no design
   canvas either way.

   ---- THE gvid-space-xl PHONE OVERRIDE (open-decisions item 12): CHECKED
   FIRST, AS INSTRUCTED, AND THIS DOES NOT FIGHT IT. ----

   That decision aliases `--gvid-space-xl` from 140px to 70px below 980px,
   because the design supplies no phone spacing scale and 140px of section
   padding on a 390px viewport had no design value to follow.

   Three findings, in order:

   1. It is not in conflict, it is in AGREEMENT. The design's comparison phone
      numbers are exactly half its desktop numbers (140->70, 70->35), which is
      precisely the halving the alias performs for `xl`. Applying the design's
      rhythm moves toward that decision, not against it.
   2. The pattern is already shipped and verified on the seven Feature Pages,
      with the alias active. Measured on /more-freedom/ before this pass:
      1440 -> hero 0/140, values 140/140, benefits 140/140, testimonials 0/70,
      CTA 70/70, FAQ 70/140; 390 -> 25/70, 70/70, 70/70, 0/35, 35/35, 35/70.
      That IS the Feature Page document's rhythm, on the token scale, with the
      alias in force. So a per-section rhythm and the phone alias coexist by
      construction; this is not a new interaction being invented here.
   3. No rule below DEPENDS on the alias. Both breakpoints are written
      explicitly, so `--gvid-space-xl` is only ever read above 981px where it
      is 140px in every source. `--gvid-space-l` (70) is not aliased, so the
      design's 70->35 halving is supplied by the phone block rather than
      inherited from anything. Nothing here would change if item 12 were
      reversed tomorrow.

   ---- WHERE THIS VALUE BELONGS ----

   On the seven Feature Pages the rhythm comes from Divi MODULE SETTINGS,
   written by featurepage/build_content.py. That is the better home and it is
   deliberately not used here: this pass is scoped to the shared stylesheet,
   and matching it would mean rewriting post_content on 18 pages. The one-line
   consequence to record: if comparison/build_content.py ever gains section
   padding settings, delete this block rather than leaving two sources.

   COMPETITOR, read off the live CSSOM at 1440, none !important:
     `div`                                        (0,0,1)  0px
     `.et_pb_section` @(min-width:981px)          (0,1,0)  4%
     `.et_pb_section` @(min-width:1350px)         (0,1,0)  54px   <- winner
     `.et_pb_section` @(max-width:980px)          (0,1,0)  50px
   all four from Divi's inline critical CSS. The rules below are (0,3,0) and
   (0,5,0), so they win on specificity with no !important.

   ONLY THE FOUR SECTIONS THE DESIGN DRAWS. The live pages also carry an Intro
   and a Benefits section that the comparison design has no counterpart for
   (kept because the standing rule is that live content the design drops
   survives). They keep Divi's default padding; inventing design numbers for
   sections the design does not contain is exactly what open-decisions
   forbids. Reported, not styled.
   ===================================================================== */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-versus-sec,
  .et-l--body .et_builder_inner_content .ss-versus-sec {
    padding-top: var(--gvid-space-xl, 140px);      /* design 140 (was 54) */
    padding-bottom: var(--gvid-space-l, 70px);     /* design 70  (was 54) */
  }

  .et-l--post .et_builder_inner_content .ss-steps-sec,
  .et-l--body .et_builder_inner_content .ss-steps-sec {
    padding-top: var(--gvid-space-l, 70px);        /* design 70 (was 54) */
    padding-bottom: var(--gvid-space-l, 70px);     /* design 70 (was 54) */
  }

  .et-l--post .et_builder_inner_content:has(.ss-versus) .et_pb_section:has(> .ss-cta),
  .et-l--body .et_builder_inner_content:has(.ss-versus) .et_pb_section:has(> .ss-cta),
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .et_pb_section:has(> .ss-cta),
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .et_pb_section:has(> .ss-cta) {
    padding-top: var(--gvid-space-l, 70px);        /* design 70 (was 54) */
    padding-bottom: var(--gvid-space-l, 70px);     /* design 70 (was 54) */
  }

  /* padding-TOP only from the seam rule; only the bottom is set here. Family
     scope because this pass was given the comparison pages -- the same 140 is
     what the Feature / Industry documents say too, and those seven pages
     currently render 140 already, so widening would be a no-op there. Kept
     scoped anyway so the blast radius equals the brief. */
  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-faq,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-faq,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-faq,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-faq {
    padding-bottom: var(--gvid-space-xl, 140px);   /* design 140 (was 54) */
  }
}

@media (max-width: 980px) {
  .et-l--post .et_builder_inner_content .ss-versus-sec,
  .et-l--body .et_builder_inner_content .ss-versus-sec {
    padding-top: var(--gvid-space-l, 70px);        /* design 390 70 (was 50) */
    padding-bottom: var(--gvid-space-m, 35px);     /* design 390 35 (was 50) */
  }

  .et-l--post .et_builder_inner_content .ss-steps-sec,
  .et-l--body .et_builder_inner_content .ss-steps-sec {
    padding-top: var(--gvid-space-m, 35px);        /* design 390 35 (was 50) */
    padding-bottom: var(--gvid-space-m, 35px);     /* design 390 35 (was 50) */
  }

  .et-l--post .et_builder_inner_content:has(.ss-versus) .et_pb_section:has(> .ss-cta),
  .et-l--body .et_builder_inner_content:has(.ss-versus) .et_pb_section:has(> .ss-cta),
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .et_pb_section:has(> .ss-cta),
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .et_pb_section:has(> .ss-cta) {
    padding-top: var(--gvid-space-m, 35px);        /* design 390 35 (was 50) */
    padding-bottom: var(--gvid-space-m, 35px);     /* design 390 35 (was 50) */
  }

  .et-l--post .et_builder_inner_content:has(.ss-versus) .ss-faq,
  .et-l--body .et_builder_inner_content:has(.ss-versus) .ss-faq,
  .et-l--post .et_builder_inner_content:has(.ss-hub-grid) .ss-faq,
  .et-l--body .et_builder_inner_content:has(.ss-hub-grid) .ss-faq {
    padding-bottom: var(--gvid-space-l, 70px);     /* design 390 70 (was 50) */
  }

  /* =====================================================================
     9. THE PHOTO IN AN OPEN ACCORDION ROW SITS OFF-CENTRE (phone).

     The Benefits accordion on these 18 pages puts a photo inside the open
     row. The row's padding is the design's FAQ row -- `12px 12px 12px 20px`
     at 390 -- which is asymmetric ON PURPOSE: 20px on the left indents the
     question text, and the design's FAQ row has no image to be thrown off by
     it. Measured on /fresha-alternative/ at 390: the photo's left gap is 20px
     and its right gap 12px, so its centre sits 4px right of the row's.

     One declaration fixes it, and the number is derived rather than dialled
     in: 20 (row padding-left) - 12 (row padding-right) = 8, added to the
     content panel's right padding, which is 0 at this breakpoint (`20px 0px
     25px`). Both sides then total 20px and the photo is centred on the same
     grid line the question text starts from.

     The prose paragraph in the same panel narrows by the same 8px, from 328
     to 320. That is deliberate and not compensated for: at 390 the design
     gives the answer panel NO horizontal inset of its own, so the prose and
     the photo share one measure, and 8px on a 328px column is not worth a
     negative margin to claw back.

     `:has(img)` is what makes this image-rows-only -- the FAQ accordion on
     the same page carries `.ss-cmp-toggle` too and has no images, so it is
     excluded by construction rather than by a second class.
     `.ss-cmp-toggle` is comparison-only (build_content.py puts it on these
     18 pages' accordions), so the seven Feature Pages -- which have the same
     photo rows and therefore the same 4px offset -- cannot move.

     DESKTOP IS NOT FIXED HERE, and it is the bigger offset: at 1440 the photo
     is 32.5px left of centre, because the row is `15px 15px 15px 25px` AND
     the content panel adds `padding-right: 75px` (the design's answer-panel
     inset `0 90px 25px 25px`). Evening it needs the panel at 10px right and
     the prose paragraph given back 65px, i.e. three constants coupled to two
     other rules, in a section the comparison design does not draw at all.
     Reported for a decision rather than shipped on this pass. */
  .et-l--post .ss-cmp-toggle .et_pb_toggle:has(img) .et_pb_toggle_content,
  .et-l--body .ss-cmp-toggle .et_pb_toggle:has(img) .et_pb_toggle_content {
    padding-right: 8px;                            /* row 20 left - 12 right */
  }
}

/* =====================================================================
   10. THE FOUR BENEFITS PHOTOGRAPHS ARE PHONE-AND-TABLET ONLY AGAIN.
        Owner-approved 2026-08-23. This RESTORES pre-rebuild behaviour; it is
        not a new design decision.

   WHAT THE PAGES USED TO DO. Every one of the 18 carried its four
   photographs inside a Divi 4 section `[et_pb_section admin_label="Features
   Mobile" disabled_on="off|off|on"]`, i.e. enabled on phone, enabled on
   tablet, DISABLED on desktop. Measured on all 18 pre-rebuild snapshots, not
   recalled: 18/18 carry exactly four `[et_pb_image]`, all four inside that
   one section, on every page. (The /compare/ hub carried none, and still
   carries none, so it is untouched by construction.)

   WHAT THE REBUILD DID. The Comparison design draws NO image slot at all, so
   the rebuild put the four photographs inside benefits-accordion rows to keep
   them and their alt text -- see benefits() in build_content.py, and bug 5 in
   the 2026-08-22 handoff, where the FIRST build dropped all four and the SEO
   capture caught it at images 7 -> 3. Accordion rows render at every width, so
   a photograph that had been hidden on desktop since it was authored became
   visible there for the first time. That is the regression this restores.

   THE BREAKPOINT IS 981, AND IT IS DERIVED, NOT PICKED. Two independent
   reasons land on the same number, which is why no third breakpoint set is
   introduced (open-decisions item 1):

     1. It is literally the number the old markup used. Divi generates
        `disabled_on`'s desktop state as `@media only screen and
        (min-width:981px){...{display:none!important}}`. Measured today on
        /digital-forms/, a live Divi 4 page that still uses the attribute:
        its two `off|off|on` sections are hidden at `min-width:981px` and its
        two `on|on|off` sections at `max-width:767px` + `768-980px`. So
        `min-width: 981px` reproduces the old behaviour exactly rather than
        approximating it.
     2. It is the 980/981 pair the rest of this file and the child theme
        already use.

   WHY IT HIDES AND DOES NOT DELETE. The <img> stays in post_content with its
   alt. Deleting it would take the alt with it, which is a real SEO loss and
   would fail the content-preservation check by design; and phones -- the
   priority viewport -- must keep the photograph. `display:none` keeps the alt
   in the DOM at every width and shows the image where the old page showed it.

   WHY THE PARAGRAPH AND NOT THE IMAGE. build_content.py appends the <img>
   after the prose `</p>`, and wpautop wraps that bare <img> in a `<p>` of its
   own -- measured: `.et_pb_toggle_content` is a flex COLUMN whose second child
   is a `<p>` with no text, zero margin and zero padding (Divi's
   `.et_pb_toggle_content p:last-of-type{padding-bottom:0}`), holding only the
   photo. Hiding that `<p>` removes the whole flex item, so nothing is left to
   leave a gap. Hiding only the <img> would be one word shorter and is NOT
   equivalent: 10Web Booster rewrites some of these to `<picture><img></picture>`
   (2 of 4 on fresha), and an empty inline <picture> still generates a line box
   inside its paragraph -- a thin strip of dead space exactly where the photo
   was. `:has(img)` matches through the <picture> either way.

   The open row keeps its heading, its prose and its chevron; only the photo
   goes. Nothing here applies below 981, so phone and tablet are untouched.

   SCOPE IS THE COMPARISON FAMILY, MEASURED. `.ss-cmp-toggle` is set only by
   comparison/build_content.py; queried on staging today, exactly 18 published
   posts contain it and they are exactly the 18 `*-alternative` pages. The
   seven Feature Pages carry the same photo-in-accordion pattern and the same
   `.ss-benefits` styling and CANNOT move, and neither can the /compare/ hub.
   That is the same containment the FIX 1 chevron and the section 9 centring
   rule rely on. The FAQ accordion on these pages also carries
   `.ss-cmp-toggle`, and is excluded by construction rather than by a second
   class: it has no images, so `:has(img)` never matches there.
   ===================================================================== */
@media (min-width: 981px) {
  .et-l--post .ss-cmp-toggle .et_pb_toggle_content p:has(img),
  .et-l--body .ss-cmp-toggle .et_pb_toggle_content p:has(img) {
    display: none;
  }

  /* ...AND THE PARAGRAPH THAT IS NOW VISUALLY LAST MUST BEHAVE LIKE ONE.

     Divi zeroes the trailing gap with `.et_pb_toggle_content
     p:last-of-type{padding-bottom:0px}`. `:last-of-type` is STRUCTURAL --
     `display:none` does not change it -- so with the photo's paragraph
     hidden that rule lands on the hidden paragraph and does nothing, and the
     prose keeps the `padding-bottom: 18px` it only ever had because
     something followed it.

     Measured on /fresha-alternative/ at 1440 after the rule above shipped,
     opening all six rows in turn: the four rows that carry a photograph left
     43px between the last line of text and the row's bottom edge; the two
     rows that never had one left 25px. Four rows in every accordion sitting
     18px deeper than their two siblings -- a gap exactly where the photo was,
     and one NO numeric gate could see: `contentH == padding + prose` stays
     true because the paragraph's border-box height includes the padding. It
     was caught by reading the screenshot, which is the whole reason that step
     is in the checklist.

     `p:nth-last-of-type(2)` is the last VISIBLE paragraph, not a guess about
     position: the photo's paragraph is always the last one, so the one before
     it is always the last visible one however many paragraphs precede it.
     Checked against the stored bytes of all 18 payloads rather than assumed:
     all 72 image-bearing accordion bodies are exactly `<p>prose</p><img>` --
     no bullets, no second paragraph, no table -- so this resolves to the
     prose paragraph on all 72 and to nothing else. Panels with no photograph
     are excluded by `:has(img)` on the panel and by having no second
     paragraph to match, so both the FAQ accordion and the two photo-less
     benefits rows are untouched.

     `:has()` is NOT nested here. `p:has(+ p:has(img))` would read more
     directly and is INVALID -- the spec forbids :has() inside :has() -- and an
     invalid selector drops the whole rule silently. */
  .et-l--post .ss-cmp-toggle .et_pb_toggle_content:has(img) p:nth-last-of-type(2),
  .et-l--body .ss-cmp-toggle .et_pb_toggle_content:has(img) p:nth-last-of-type(2) {
    padding-bottom: 0;                             /* was 18px, orphaned */
  }
}


/* ---- ss-hero-trust-on-dark modifier (hero-trust-dark pass, 2026-08-24) ---- */
/* .ss-hero-trust's body-text grey (#636363) is tuned for the PALE hero band
   it was built for -- 6.01:1 there, on 18 comparison pages + 11 Industry
   pages. On a DARK section (measured: the Social Proof band on the 12
   Industry pages, fill #1E1E2F) that grey drops to ~2.73:1, below AA's
   4.5:1 for body text. Do NOT retune .ss-hero-trust itself for this -- it
   would regress the 18 comparison pages and the 11 other Industry pages,
   all currently correct. This is a PAIR class instead: apply it alongside
   .ss-hero-trust, per module, only where that module sits on a dark
   section. #CFCFCF on #1E1E2F = 10.51:1 (verified against rendered pixels,
   not assumed) -- chosen over pure white so the credential still reads as
   a quiet secondary note beneath this section's white H2 rather than
   competing with it. The link colour is untouched: .ss-hero-trust a's
   existing #2EA3F2 already measures 5.96:1 against #1E1E2F.

   TARGETS `p`, NOT JUST THE WRAPPER -- caught by measuring the rendered
   pixel colour after the first apply attempt, which came back unchanged.
   `.ss-hero-trust p { color: #636363; ... }` targets the paragraph itself
   at (0,1,1). A rule of only `.ss-hero-trust.ss-hero-trust-on-dark { color
   }` sets `color` on the MODULE WRAPPER div two classes carry -- higher
   specificity (0,2,0) than `.ss-hero-trust p`, but specificity only
   decides between two rules that both match the SAME element. `color` is
   inherited, and `.ss-hero-trust p` matches the <p> directly, so it always
   wins over an inherited value from an ancestor rule regardless of the
   ancestor rule's own specificity. The fix is to match the <p> too:
   (0,2,1) beats (0,1,1) on the same element, no !important on either
   side. */
.ss-hero-trust.ss-hero-trust-on-dark p {
  color: #CFCFCF;
}


/* ---- ss-hero-trust link colour (credential-link-contrast pass, 2026-08-24) ---- */
/* The review credential's link (.ss-hero-trust a) inherits its colour from
   context instead of setting its own, and two of the three contexts it
   appears in (homepage 987489070, /stripe/ 987489454) fall back to Divi's
   factory a{color:#2ea3f2} on a WHITE section background -- 2.75:1,
   below AA's 4.5:1 for normal text. See this pass's report for the full
   measured table across all four page groups.

   Fixed as a PAIR, not a single rule: .ss-hero-trust a alone would fix the
   two white-background pages above but REGRESS the 12 Industry pages,
   whose dark Social Proof section currently resolves the same factory
   default to #2EA3F2 (5.96:1 on #1E1E2F) -- #7C4DFF there measures 3.40:1,
   worse than what they have today (verified against rendered pixels, not
   assumed). The dark case is pinned explicitly using the SAME
   ss-hero-trust-on-dark pair class the paragraph-colour fix immediately
   above this block already established for this exact section (already
   live in post_content on all 12 Industry pages -- this pass adds no new
   post_content, only these two rules).

   Do NOT remove the second rule: without it, the 12 Industry pages would
   silently regress from 5.96:1 to 3.40:1 the moment the first rule below
   lands, because .ss-hero-trust a, on its own, matches their link too
   (nothing else on those pages beats Divi's unstyled factory default).

   Specificity: `.ss-hero-trust a` is (0,1,1); `.ss-hero-trust.ss-hero-trust-on-dark a`
   is (0,2,1) and wins on any element carrying both classes, no !important
   either side. The 18 comparison pages + /how-much/ + /online-bookings/ +
   /digital-forms/ are untouched either way: their credential sits inside
   a `.ss-sec` section, where the sitewide `.ss-sec a` guard (0,5,1, above)
   already gives the same #7C4DFF value these two rules give -- no visible
   change, no cascade conflict. Bare literals, matching how the
   ss-hero-trust-on-dark rule immediately above this block is written. */
.ss-hero-trust a {
  color: #7C4DFF;
}
.ss-hero-trust.ss-hero-trust-on-dark a {
  color: #2EA3F2;
}


/* ---- homepage desktop heading type (desktop-heading-fix pass, 2026-08-25) ---- */
/* Desktop counterpart of style.css section "2.3 Type" (~line 1001), which
   gives the homepage's H1/H2/H3 their weight/tracking/colour but ONLY
   inside `@media (max-width: 980px)`. Above 980px these headings fell
   through to Divi's parent-theme fallback (h1 30px/500/#333, h2 26px/500/
   #333, h3 22px/500/#333) -- confirmed by walking the live CSSOM, zero
   competing rules. Values below are copied verbatim from that mobile block
   (weight/line-height/letter-spacing/colour do not change by breakpoint in
   the design; only size does, per the H1/H2/H3 global presets: 60/35/25
   desktop, already-shipped 30/25/20 mobile).

   Scoped by explicit module selector, not a blanket h1/h2/h3 element
   selector -- see this file's module docstring for the three existing
   headings (CTA, testimonial slide, shared FAQ layout) a blanket selector
   would have collided with. Ordinals read off the live rendered DOM, not
   inferred; stable because this pass inserts no modules. */
@media (min-width: 981px) {
  /* Hero H1 */
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_0 h1 {
    font-size: 60px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #000000;
  }

  /* H2: Solutions heading, Features heading, Testimonials heading --
     the three the owner's measurement table names. (CTA h2 / testimonial
     slide h2 / shared-FAQ h2 deliberately NOT matched -- see docstring.) */
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_12 h2,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_29 h2,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_38 h2 {
    font-size: 35px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }

  /* H3 -- same bug, same fix, extended for consistency (judgement call,
     see docstring + this pass's report). 5 solutions-card headings share
     the ss-card-heading class; the 3 Features h3s (Bookings/Reports/Online
     booking) keep their own !important white wash colour because this
     rule's colour is not !important and cannot outrank it; the 3 blog
     title h3s have no such override and take the colour below cleanly. */
  body.page-id-987489070 .et-l--post .et_builder_inner_content .ss-card-heading h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_31 h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_33 h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_35 h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_48 h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_51 h3,
  body.page-id-987489070 .et-l--post .et_builder_inner_content .et_pb_text_54 h3 {
    font-size: 25px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }
}

/* ---- more-tools anchor scroll offset (header-anchor-menu pass, 2026-08-25) ---- */
/* CHANGE 1 of the header-anchor-menu pass: the 9 header "Features" submenu
   items (Bookings, POS, Roster, Reports, Marketing, Staff, Locations,
   Devices, Support) now link to /more-tools/#<id> instead of a bare
   /more-tools/ (see CHANGE 2, the Theme Builder header post 987493208).
   The site's sticky header (`.et-l--header`, `position: sticky`) would
   otherwise render the target section's own H2 underneath itself on
   landing -- divi5-landmines.md D5's sticky-header family. This offsets
   the anchor's scroll position by the header's real rendered height so the
   heading clears it.

   Measured live 2026-08-25, logged out, ?two_nooptimize=1
   (header-anchor-menu/measure_header.py): `.et-l--header` is
   `position: sticky` at BOTH widths tested -- 94px tall at 1440,
   66px tall at 390. Split on the 980px breakpoint already used sitewide.

   Applies to the enclosing `divi/column` module for each of the 9 target
   product features (the id sits on the column, not the <h2>, per the
   brief's "on the section, not the heading" -- see apply_anchors.py's
   module docstring for why the column, not the row or the heading). */
body.page-id-987489322 #bookings,
body.page-id-987489322 #pos,
body.page-id-987489322 #roster,
body.page-id-987489322 #reports,
body.page-id-987489322 #marketing,
body.page-id-987489322 #staff,
body.page-id-987489322 #locations,
body.page-id-987489322 #devices,
body.page-id-987489322 #support {
  scroll-margin-top: 94px;
}

@media (max-width: 980px) {
  body.page-id-987489322 #bookings,
body.page-id-987489322 #pos,
body.page-id-987489322 #roster,
body.page-id-987489322 #reports,
body.page-id-987489322 #marketing,
body.page-id-987489322 #staff,
body.page-id-987489322 #locations,
body.page-id-987489322 #devices,
body.page-id-987489322 #support {
    scroll-margin-top: 66px;
  }
}


/* ---- payment-partner pattern (partner-rebuild pass, 2026-08-28) ---- */

/* The partner co-brand lockup ("Simple Salon + Afterpay"). Sized against the
   design's hero: the logo is a supporting mark above the H1, not a hero
   image, so it is capped rather than allowed to fill the column. */
.ss-hero .ss-hero-logo img {
  max-width: 260px;
  width: 100%;
  height: auto;
  margin: 0 auto 6px;
  display: block;
}

/* Second and third hero buttons. The design draws ONE call to action; these
   pages legitimately carry two or three (partner site, help article), and
   content wins over the design here, so the extras are demoted rather than
   dropped: same pill geometry as .ss-btn-primary, outlined instead of filled.
   Geometry is inherited from .ss-btn-primary -- only the fill changes. */
.ss-btn-secondary.et_pb_button {
  border-radius: 100px;
  background-color: transparent !important;   /* Divi fills buttons inline */
  color: #FF7043 !important;
  border: 2px solid #FF7043 !important;
}
.ss-btn-secondary.et_pb_button:hover {
  background-color: #FF7043 !important;
  color: #ffffff !important;
}

/* ---- the enquiry section ------------------------------------------------
   Fields are 16px on purpose: below 16px iOS Safari zooms the viewport on
   focus, and "form fields >= 16px" is already a settled decision on this
   project (featurepage-recipe.md Sec 4).

   WHY `!important` HERE, AND ONLY HERE. The plugin ships
   `#divEnquiryEmbed.type_sales input, ... select, ... textarea` -- an ID plus
   a class plus an element, (1,2,1) -- setting the legacy mint
   `rgba(142,220,230,0.15)` and `font-size: 14px`. The first version of this
   block used `.ss-enquiry .innerForm input[type="text"]` and LOST: the fields
   stayed mint and stayed at 14px, i.e. the iOS-zoom defect this rule exists
   to fix was still live while the CSS looked correct. Matching (1,2,1)
   exactly would only tie, and every Divi/plugin stylesheet loads AFTER the
   child theme, so a tie is a loss. Keying on `.type_sales` would win but
   would break the moment the shortcode's type changes -- which is an open
   question with the owner right now. `!important` is the option that is
   robust to both. */
.ss-enquiry #divEnquiryEmbed input[type="text"],
.ss-enquiry #divEnquiryEmbed input[type="email"],
.ss-enquiry #divEnquiryEmbed select,
.ss-enquiry #divEnquiryEmbed textarea {
  width: 100%;
  font-size: 16px !important;               /* iOS zooms below 16px */
  line-height: 1.4;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
  background-color: var(--gvid-surface, #F4F4F4) !important;
  border: 1px solid var(--gvid-border, #EDE7F6) !important;
  border-radius: var(--gvid-radius-row, 20px) !important;
  padding: 12px 16px;
  margin-bottom: 12px;
  box-sizing: border-box;
}
.ss-enquiry #divEnquiryEmbed textarea {
  min-height: 140px;
  border-radius: 16px !important;
}
.ss-enquiry #divEnquiryEmbed ::placeholder {
  color: var(--gcid-swkupkpb8j, #A0A0A0);
  opacity: 1;                    /* Firefox dims placeholders by default */
}
.ss-enquiry #divEnquiryEmbed input:focus,
.ss-enquiry #divEnquiryEmbed select:focus,
.ss-enquiry #divEnquiryEmbed textarea:focus {
  outline: 2px solid var(--gcid-bs9uwvujec, #7C4DFF);
  outline-offset: 1px;
}

/* The plugin adds class `error` to each field that failed validation. It has
   no styling of its own on this site, so a failed submit currently looks
   identical to an untouched form. */
.ss-enquiry #divEnquiryEmbed .error {
  border-color: #C62828 !important;
  background-color: #FDECEA !important;
}

/* Submit. See the module docstring for why this is not .ss-btn-primary.

   THE SELECTOR IS NOT ARBITRARY. The plugin ships
   `#divEnquiryEmbed a.et_pb_contact_submit` -- specificity (1,1,1). An ID
   beats any number of classes, so the obvious `.ss-enquiry
   .et_pb_contact_submit` at (0,2,0) LOST, and the button rendered white.
   Established by reading the winning declaration off the live CSSOM rather
   than reasoning about it. Putting the section class in front of the
   plugin's own selector gives (1,2,1), which wins outright -- no
   `!important` required, so the button stays overridable later. */
.ss-enquiry #divEnquiryEmbed a.et_pb_contact_submit {
  border-radius: 100px;
  display: inline-block;
  background-color: var(--gcid-6spcyv8qzp, #FF7043);
  color: #ffffff !important;
  /* The plugin sets Montserrat here WITH !important, and !important beats
     any specificity -- this rule at (1,2,1) won on background-color, which
     the plugin declares plainly, but LOST on font-family until it matched
     the !important. Trap one of the project's two opposite !important
     traps; read the winning declaration, do not infer it. */
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 600;
  font-size: 16px;
  line-height: 1 !important;     /* Divi emits 1.7em !important on buttons */
  padding: 15px 30px;
  border: none;
  text-transform: none;
}
.ss-enquiry #divEnquiryEmbed a.et_pb_contact_submit:hover {
  background-color: var(--gcid-hv4rq8m2ns, #E85F35);
}

@media (max-width: 980px) {
  .ss-enquiry #divEnquiryEmbed a.et_pb_contact_submit {
    width: 100%; text-align: center;
  }
}


/* ---- industry hero tagline (industry-rebuild pass, 2026-08-31) ---- */
/* Subordinate the hero tagline to the H1. Without this it inherits
   `.ss-sec h2` and is indistinguishable from a section heading.
   The long selector is deliberate: it must outrank two `!important`
   `font-size:25px` rules above -- see tagline_css.py for the measurement. */
html body .et-l--post .et_builder_inner_content .et_pb_section .ss-hero-tagline .et_pb_text_inner h2 {
  font-family: Poppins, Helvetica, Arial, Lucida, sans-serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  color: #2F2F2F !important;
  margin: 6px 0 0 !important;
}

@media (max-width: 980px) {
  html body .et-l--post .et_builder_inner_content .et_pb_section .ss-hero-tagline .et_pb_text_inner h2 {
    font-size: 19px !important;
  }
}


/* ---- /how-much/ second pass, Phase A stylesheet (howmuch-rebuild, 2026-09-02) ---- */

/* ======================================================================
   SS1 A -- the fourth stray blue rectangle (PLAN.md finding A / SPEC.md
   §1 A). `.et_pb_cta_3.et_pb_promo.compare_cta` (the CTA below the compare
   matrix) still carries Divi's factory --gcid-primary-color (#2ea3f2);
   the child theme already neutralises the three card CTAs the same way but
   missed this fourth one. Confirmed live: computed background
   rgb(46,163,242), module padding "20px 16px" at 390.

   TWO winning declarations, not one, and they need DIFFERENT treatment --
   found only by re-walking the CSSOM against what actually got applied,
   after a first version of this rule (background-color + padding, neither
   !important) landed the background fix but silently left padding at
   "20px 16px" at <=980px:
     background-color: `.et_pb_cta_3.et_pb_promo{background-color:var(
       --gcid-primary-color)}`, specificity (0,2,0), NOT !important -- this
       selector at (0,3,1) beats it on specificity alone, no !important
       needed, matching the base file's ORIGINAL (non-!important) 3-button
       neutraliser at line ~2658.
     padding: a DIFFERENT, narrower Divi rule --
       `.et_pb_cta_0.et_pb_promo, .et_pb_cta_1.et_pb_promo,
        .et_pb_cta_2.et_pb_promo, .et_pb_cta_3.et_pb_promo
        {padding:20px 16px!important}` at `@media(max-width:980px)`,
       specificity (0,2,0), IS !important. The base file's own comment
       (search it for "pass 1's `padding: 0` was written WITHOUT !important,
       so it never landed") records that the ORIGINAL 3-button padding fix
       hit this exact trap and had to be redone as a SEPARATE !important
       rule (`:is(.btn_starter_signup, .btn_pro_signup, .btn_max_signup)
       .et_pb_promo{padding:0!important}`) -- `.compare_cta` was never
       added to THAT rule, only to the earlier non-important one, which is
       why padding alone stayed broken here. Confirmed by direct measurement
       after the first build: `.btn_starter_signup` computed padding 0px
       (protected by the existing !important rule); `.compare_cta` computed
       padding "20px 16px" (not covered by it) -- same page, same moment.
   Unscoped by breakpoint (SPEC.md: "design is identical at both widths, or
   live is wrong at both" -- this is the latter; Divi's own competing rules
   above are ALSO not width-specific in what they're fixing, they just
   happen to live inside a <=980px query on Divi's side). `.compare_cta` is
   a post_content module CSS class unique to THIS page (grepped the whole
   staging-audit tree: every reference resolves to post 987491327), so no
   D3 cross-page concern applies here. */
body.page-id-987491327 .compare_cta.et_pb_promo {
  background-color: transparent;
  padding: 0 !important;
}

/* ---- SS1 B/C -- the two dead bands at the page foot (PLAN.md §1.2 B/C,
   SPEC.md §1 B/C). Unscoped: real dead space at every width PLAN measured
   (390 and 1440).

   C (schema section, ~55-61px): `.et_pb_row_18` computes Divi's default row
   padding (30px 0 at 390) around a divi/code module whose entire content is
   the page's JSON-LD <script> blocks. SPEC.md's suggested selector,
   `:has(> .et_pb_row .et_pb_code)`, was checked live and rejected: this page
   uses `.et_pb_code` for FIVE different modules (header/footer template CSS,
   the pricing-toggle CSS, the compare-matrix CSS, and this schema block), and
   that selector matched all five sections -- zeroing all of them would have
   deleted the row padding around the toggle CSS and the compare-matrix CSS,
   which are NOT dead bands. Keyed instead on the one thing genuinely unique
   to the schema section: it is the only section whose row contains a real
   `<script type="application/ld+json">` element (confirmed: exactly 1 match
   for the selector below, out of 3 ld+json scripts on the page -- the other
   two are in the Theme Builder header, outside any .et_pb_row).

   B (signup section, ~14-16px): re-measured live before writing anything --
   `.et_pb_section_9` and `.et_pb_row_17` (the "signup code, do not delete"
   section, confirmed via #sssignup_qty / #fb-root, both unique-match this
   section) ALREADY compute padding: 0px on both section and row. The
   14-16px PLAN measured is real content height (the Facebook SDK's own
   #fb-root + its <p> wrapper), not padding -- there is nothing to zero, and
   hiding that content is not what "zero the padding" asked for. No rule
   written for B; recorded here so the omission reads as a finding, not a
   miss. */
body.page-id-987491327 .et_pb_section:has(> .et_pb_row script[type="application/ld+json"]) > .et_pb_row.et_pb_row {
  padding: 0 !important;
}

/* ======================================================================
   Hero (PLAN.md §4.1) */

@media (max-width: 980px) {
  /* #3 breadcrumb gap 8px -> 6px. Same selector as the base file's
     `.ss-crumbs` rule (line ~3172); equal specificity, appended later, wins
     only at <=980px. */
  body.page-id-987491327 .ss-crumbs {
    gap: 6px;
  }

  /* #4 breadcrumb -> H1 gap: `.ss-crumbs`'s own margin-bottom, 15px -> 25px. */
  body.page-id-987491327 .ss-crumbs {
    margin-bottom: 25px;
  }

  /* #6 H1 -> intro gap: the H1's own padding-bottom, 10px -> 25px. Live
     10px comes from a bare, unscoped `h1,h2,h3,h4,h5,h6{padding-bottom:10px}`
     rule (0,0,1), not !important. Reusing the exact selector the base file's
     H1 colour/weight rule already uses (line ~3379) keeps this on the same,
     already-proven-winning specificity rather than inventing a new one. */
  body.page-id-987491327 .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h1 {
    padding-bottom: 25px;
  }
}

/* ======================================================================
   Staff control (PLAN.md §4.2) */

@media (max-width: 980px) {
  /* #10 pill padding 12px 28px -> 10px 24px. */
  body.page-id-987491327 .ss-staff-label {
    padding: 10px 24px;
  }

  /* #12 track height 8px -> 12px. */
  body.page-id-987491327 .ss-staff-range {
    height: 12px;
  }

  /* #15 track -> ticks gap (`.ss-staff-ticks` margin-top) 10px -> 12px. */
  body.page-id-987491327 .ss-staff-ticks {
    margin-top: 12px;
  }

  /* #16 tick font-SIZE only 14px -> 15px (weight/colour untouched -- the
     51/51 gate asserts those two). The live base file also carries
     `@media (max-width:430px) .ss-staff-tick{font-size:13px}` (line ~2934),
     same selector, same specificity (0,2,1) as the unscoped 14px rule it
     narrows. This declaration is appended after BOTH, so at every width
     <=980px (which covers <=430px too) it wins on source order alone --
     no higher specificity or !important required, confirmed by re-reading
     the applied stylesheet after `apply`. */
  body.page-id-987491327 .ss-staff-tick {
    font-size: 15px;
  }

  /* #18 slider knob. gaps.json gap1: sole matching rule is
     `.ss-staff-range::-webkit-slider-thumb` (0,2,2), no !important, no
     competitor -- live is 24px/no-border, design is 22px/`4px solid #000`.
     box-sizing:border-box is added (not in the live rule) so the 4px border
     is drawn INSIDE the 22px box rather than growing it to 30px -- without
     it the rendered diameter would not match the design number this row
     names. Playwright/WebKit's automation harness cannot read
     ::-webkit-slider-thumb computed style at all (gaps.json's
     "known_engine_limitation"); verified instead by re-reading the deployed
     stylesheet source and, after apply, a pixel screenshot scan matching
     gaps.json's own method. */
  body.page-id-987491327 .ss-staff-range::-webkit-slider-thumb {
    width: 22px;
    height: 22px;
    border: 4px solid #000000;
    box-sizing: border-box;
  }
}

/* ======================================================================
   Monthly / Yearly toggle (PLAN.md §4.3) */

/* #26/#27. Neither the toggle shell (`#divPricePeriod`) nor the "Yearly
   saves you 2 months" text (the very next module in the same column, no
   custom class or id of its own) had ANY existing rule for gap or
   text-transform -- confirmed live: computed gap 0px, margin-top/-bottom
   0px on both sides, text-transform none. `#divPricePeriod` is a stable
   Divi "CSS ID" on the module wrapper itself (confirmed:
   `getElementById('divPricePeriod') === el.closest('.et_pb_module')`), so
   `#divPricePeriod + .et_pb_text` is an ID-anchored adjacent-sibling
   selector -- content-stable, not an ordinal, and unaffected if Divi
   renumbers `.et_pb_text_N` classes on a future edit. */
@media (max-width: 980px) {
  /* #26 shell -> "saves you 2 months" gap, 0px (measured) -> 10px, stacked
     (the design's mobile axis; the desktop axis change is out of scope --
     SPEC.md D4/D5, not measured or claimed here). */
  body.page-id-987491327 #divPricePeriod + .et_pb_text {
    margin-top: 10px;
  }

  /* #27 (size half) "saves you 2 months" font-SIZE only, 14px -> 12px.
     The live 14px comes from post_content's own inline <style>
     `.et_pb_text_5 .et_pb_text_inner{...font-size:14px}` -- ordinal-keyed,
     (0,2,0), NOT !important. This selector is (1,3,1) via the #divPricePeriod
     id, which beats it outright regardless of load order; no !important
     needed and none is added, so a future, more specific rule fights fair. */
  body.page-id-987491327 #divPricePeriod + .et_pb_text .et_pb_text_inner,
  body.page-id-987491327 #divPricePeriod + .et_pb_text .et_pb_text_inner p {
    font-size: 12px;
  }
}

/* #27 (case half) "saves you 2 months" text-transform: none -> uppercase.
   Identical requirement in both design docs (before/desktop.json item 25) --
   safe unscoped. No competing rule at all for text-transform on this
   element (confirmed by the same CSSOM walk). */
body.page-id-987491327 #divPricePeriod + .et_pb_text .et_pb_text_inner,
body.page-id-987491327 #divPricePeriod + .et_pb_text .et_pb_text_inner p {
  text-transform: uppercase;
}

/* ======================================================================
   Plan cards (PLAN.md §4.4) */

/* #30 Pro/Max gradient string -- transcription-error fix, identical in both
   design docs (before/desktop.json item 29). Same selector as the base
   file's card-shell rule (line ~2712); equal specificity, appended later,
   overwrites only `background-image`. */
body.page-id-987491327 .et_pb_column:has(> .pro_price),
body.page-id-987491327 .et_pb_column:has(> .max_price) {
  background-image: linear-gradient(179.978deg,
                    rgb(237, 231, 246) -108.62%, rgb(124, 77, 255) 125.55%);
}

/* #40 (colour half) violet-card SMS line colour #ffffff -> #F4F4F4 (weight
   left alone, per PLAN.md). The live #ffffff comes from the blanket "every
   text module in a violet card is white" rule at (0,4,1) !important (base
   file line ~2691). Beating a tied !important rule needs equal-or-higher
   specificity (mobile-design-match "trap 2" -- the same trap gaps.json's
   gap3 named for the footnote colour). Mirrors that exact fix's shape:
   adding `.pro_sms_text`/`.max_sms_text` into the chain raises this to
   (0,5,1), which wins. */
body.page-id-987491327 .et_pb_column:has(> .pro_price) .pro_sms_text .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .max_sms_text .et_pb_text_inner {
  color: #F4F4F4 !important;
}

@media (max-width: 980px) {
  /* #41 CTA button metrics -- THE HIGHEST-VALUE ROW, and it also fixes
     #60 (the compare-matrix's bottom CTA rides the same button markup).
     Root cause (measured live via probe_gaps2.py, confirms SPEC.md exactly):
       font-size   18px   from Divi's per-module rule
                   `body #page-container .et_pb_cta_N.et_pb_promo
                    .et_pb_promo_button.et_pb_button{font-size:18px}`,
                   specificity (1,4,1) via #page-container -- NOT !important,
                   but the #id makes it un-beatable on specificity alone by
                   any class-only selector, page-scope or not.
       line-height 30.6px = 1.7 x 18px, from Divi's generic
                   `.et_pb_button{line-height:1.7em!important}`, (0,1,0).
       padding-top/bottom 14px !important, per-module, unscoped.
       padding-left/right 18px = 1em at 18px, from Divi's generic
                   `.et_pb_button{padding:0.3em 1em}`, NOT !important.
     Confirmed live and IDENTICAL on `.compare_cta`'s own button (same three
     numbers, same 58.59375px computed height) -- one selector list, one fix.
     `!important` is required on all three properties (font-size and padding
     to beat the #page-container rule and the padding-top/bottom rule; all
     three set TOGETHER because font-size and padding-left/right are both
     em-relative to it, so changing font-size alone would silently drag the
     others along). Scoped <=980px: none of the four rules being beaten carry
     a media query, so an unscoped override would reproduce the exact
     one-size-everywhere bug this fixes -- see before/desktop.json item 38
     for the (different) desktop numbers, deliberately not written here. */
  body.page-id-987491327 .btn_starter_signup .et_pb_promo_button.et_pb_button,
  body.page-id-987491327 .btn_pro_signup .et_pb_promo_button.et_pb_button,
  body.page-id-987491327 .btn_max_signup .et_pb_promo_button.et_pb_button,
  body.page-id-987491327 .compare_cta .et_pb_promo_button.et_pb_button {
    font-size: 16px !important;
    line-height: 1 !important;
    padding: 14px 24px !important;
  }

  /* #43 card description font-SIZE only, 18px -> 16px (line-height:1.25 is
     already set by the base file's rule at line ~3149-3153; colour is left,
     per PLAN's #5 divergence). Live 18px comes from post_content's own
     inline <style> `.et_pb_text_7 .et_pb_text_inner{font-size:18px}`,
     ordinal-keyed, (0,2,0), not !important -- beaten on specificity alone by
     the base file's own selector chain, no !important needed.
     GATE TRAP CHECKED LIVE (probe_gaps2.py `card_desc_vs_intro`): the hero
     intro paragraph and this card-description paragraph both currently
     compute 18px, which is exactly the collision the SPEC warns about. This
     selector is scoped through `.et_pb_column:has(> .starter_price) > .et_pb_text`
     etc., which the intro paragraph (inside `.et_pb_section:has(h1)`, a
     different section entirely) cannot match --
     `desc.matches('body.page-id-987491327 .et_pb_section:has(h1)
     .et_pb_text_inner p')` was confirmed FALSE live before writing this. */
  body.page-id-987491327 .et_pb_column:has(> .starter_price) > .et_pb_text .et_pb_text_inner p,
  body.page-id-987491327 .et_pb_column:has(> .pro_price) > .et_pb_text .et_pb_text_inner p,
  body.page-id-987491327 .et_pb_column:has(> .max_price) > .et_pb_text .et_pb_text_inner p {
    font-size: 16px;
  }
}

/* ======================================================================
   Compare matrix (PLAN.md §4.5). Every selector below reaches into
   `.ss-compare-wrap`, which is shared with `/compareplans/` (SPEC.md D3) --
   every one is page-scoped to `body.page-id-987491327` for that reason,
   even where (as with the letter-spacing rules) nothing currently competes:
   an unscoped add would still silently restyle the shared twin. */

/* #46 H2 weight 500 -> 600 and letter-spacing normal -> -0.03em. Identical
   in both design docs (before/desktop.json item 43) -- safe unscoped by
   breakpoint. Same selector as the base file's H2 colour rule (line ~3200),
   already page-scoped by construction. Weight's live source is a bare,
   unscoped `h1,h2,h3,h4,h5,h6{font-weight:500}`, (0,0,1) each, not
   !important -- trivially beaten. Letter-spacing has no competing
   declaration at all (confirmed by CSSOM walk). */
body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) h2 {
  font-weight: 600;
  letter-spacing: -0.03em;
}

/* Compare-matrix chevron circle. gaps.json's gap2 measured only the 390
   design number (36px) and live (32px, `rgba(255,255,255,0.75)`); SPEC.md
   §5's own work-item table (the row headed "chevron") corrects and completes
   this -- transcribed first-hand by the checker from `Pricing.dc.html` line
   144, the design is 36px @390 but 48px @1440, "so the circle must be
   breakpoint-scoped like the rest; an unscoped 36px would be right on the
   phone and still wrong on desktop." An EARLIER version of this rule in this
   file wrote a single unscoped 36px -- caught before being reported as done,
   by re-reading SPEC.md's full work-item table rather than only the shorter
   summary this agent was directly handed, which omitted the 48px number.
   Fixed here: 48px is the base (desktop/unscoped) value, narrowed to 36px
   under <=980px. Background (#F4F4F4) is not named as breakpoint-dependent
   by either source, so it stays one declaration for both widths.
   The SVG inside the circle (14x8 vs design's 18x10, stroke-width 1.5 vs 2)
   is NOT this rule and not touched -- those are raw attributes
   ss-pricing.js's CHEVRON constant writes directly onto the injected
   <svg>/<path>, shared JS with /compareplans/'s accordion, reported below
   rather than edited.
   Winning declaration for width/height/background is
   `.ss-compare-wrap .ss-compare-chev` (0,2,0), unscoped, not !important --
   page-scoping this selector raises it to (0,3,1), which wins cleanly at
   every width; the <=980px override then wins there too on top of that. */
body.page-id-987491327 .ss-compare-wrap .ss-compare-chev {
  width: 48px;
  height: 48px;
  background: #F4F4F4;
}

@media (max-width: 980px) {
  body.page-id-987491327 .ss-compare-wrap .ss-compare-chev {
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 980px) {
  /* #52 matrix title padding 12px 20px -> 12px 15px. The 12px 20px value
     being beaten is ITSELF the base file's own <=980px override (line
     ~2803 block) of `.ss-compare-wrap .ss-compare-cat-title` -- unscoped,
     shared with /compareplans/. Page-scoping raises this from (0,2,0) to
     (0,3,1), which wins at <=980px only; desktop's own 15px-uniform target
     (before/desktop.json item 49) is a different, unmet number and is
     deliberately left alone this pass (SPEC.md: "leave desktop alone"). */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-cat-title {
    padding: 12px 15px;
  }

  /* #54 matrix row-list gap (`.ss-compare-cat` margin-bottom) 15px -> 12px.
     MUST be scoped: before/desktop.json item 52 confirmed live's 15px
     ALREADY equals the desktop design's own target -- an unscoped 12px
     would regress currently-correct desktop spacing. The live 15px comes
     from post_content's own inline <style> `.ss-compare-cat{margin-bottom:
     15px}`, unscoped, (0,1,0), not !important; page-scoped + <=980px here
     at (0,3,1) wins over it only at <=980px, leaving desktop's 15px live
     value untouched exactly as before/desktop.json's verdict requires. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-cat {
    margin-bottom: 12px;
  }

  /* #55 (padding half) expanded line-row padding 12px 20px -> 12px 15px.
     Same shape as #52: beating the base file's own page-scoped-in-name-only
     <=980px `.ss-compare-wrap .ss-compare-line{padding:12px 20px}`
     (line ~2811), unscoped, (0,2,0). Page-scoping wins at <=980px; desktop's
     own 15px/25px target (before/desktop.json item 53) is a different,
     unmet number, deliberately left alone. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-line {
    padding: 12px 15px;
  }
}

/* #53 (tracking half) matrix title letter-spacing normal -> -0.03em.
   Identical in both design docs (before/desktop.json item 50) -- safe
   unscoped by breakpoint. No competing declaration exists at all (confirmed
   by CSSOM walk); page-scoped anyway per D3, since an unscoped add would
   still silently reach /compareplans/. */
body.page-id-987491327 .ss-compare-wrap .ss-compare-cat-title {
  letter-spacing: -0.03em;
}

/* #55 (background half) expanded line-row background transparent -> #F9F9F9.
   Identical colour in both design docs (before/desktop.json item 53) --
   safe unscoped by breakpoint. No competing background-color declaration
   exists anywhere for `.ss-compare-line` (confirmed by CSSOM walk: only the
   universal `transparent` reset). Page-scoped per D3. */
body.page-id-987491327 .ss-compare-wrap .ss-compare-line {
  background-color: #F9F9F9;
}



/* === MORETOOLS-REBUILD (987489322) 2026-09-02 === */
/* /more-tools/ full rebuild -- SPEC.md, `moretools-rebuild/`. Everything in
   this block is scoped to `body.page-id-987489322` unless it is a bare reuse
   of an already-shared class (nothing here re-declares one). See the module
   docstring above (moretools_css.py) for the measured reasoning behind the
   heading-override shape used repeatedly below. */

/* ---- 1. Eyebrow label -----------------------------------------------
   Carries what each dropped icon's baked-in caption carried (BOOKINGS,
   REPORTS, ...). Design: font-size 14/12, weight 500, uppercase, inherited
   #2F2F2F, no border -- the plain-label role, not the bordered `.ss-chip`
   pill (that is the FAQ/testimonial "FAQ"/"Results" eyebrow, a different
   component; reusing it would add a border/radius/padding this role does not
   have). Content-embedded class (`<p class="mt-eyebrow">`), same mechanism
   as `.ss-hub-sub`, so no wrapper-class problem here. */
body.page-id-987489322 .mt-eyebrow {
  display: block;
  margin: 0;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 14px;                                 /* design 14 */
  font-weight: 500;                                /* design 500 */
  text-transform: uppercase;                       /* design uppercase */
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
@media (max-width: 980px) {
  body.page-id-987489322 .mt-eyebrow {
    font-size: 12px;                               /* design mobile 12 */
  }
}

/* ---- 2. The 17-card grid: ONLY the H2 override -----------------------
   `.ss-hub-grid` / `.ss-hub-card` / `.ss-hub-sub` / `.ss-hub-cta` are used
   completely unmodified (see module docstring: SHARED with /compare/, not
   re-declared anywhere in this file). This is the one addition the grid
   needs: SPEC names `.ss-vs` (Poppins 500, 20px, -0.03em, #2F2F2F) for the
   card title, but that class cannot reach the rendered <h2> the normal way
   (see docstring) -- so this targets the tag directly instead, page-scoped
   so `/compare/`'s own cards (h3, not h2, so this would not even match them)
   are provably untouched either way.
   Competitor at desktop: `.preset--module--divi-heading--rohdcyrtjq
   .et_pb_heading_container h2` (0,2,1), measured live the same way as B4's
   H3 case. `body.page-id-987489322 ... .ss-hub-card h2` below is (0,4,2) --
   wins outright on class-count alone.

   A SECOND, DIFFERENT competitor governs at <=980px, found by the same live
   measurement: this child theme's OWN sitewide mobile fallback,
   `.et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h2
   {font-size:25px !important}` (0,4,1) -- already documented in this file
   (search "Mobile pass 1's blanket") with its own precedent fix,
   `body.page-id-987489070 ... .et_pb_section_4 .et_pb_module h2
   {font-size:30px !important}`: out-specify AND repeat `!important`, because
   `!important` always beats a non-important rule regardless of specificity.
   Measured live at 390 without this: font-size stayed 25px, not 20px. */
body.page-id-987489322 .et-l--post .et_builder_inner_content .ss-hub-card h2,
body.page-id-987489322 .et-l--body .et_builder_inner_content .ss-hub-card h2 {
  margin: 0;
  font-family: Poppins, sans-serif;
  font-weight: 500;                                /* SPEC .ss-vs: 500 */
  font-size: 20px;                                 /* SPEC .ss-vs: 20px, fixed */
  line-height: 1.2;
  letter-spacing: -0.03em;                         /* SPEC .ss-vs: -0.03em */
  color: var(--gcid-90suxw02k0, #2F2F2F);           /* SPEC .ss-vs: #2F2F2F */
}
@media (max-width: 980px) {
  body.page-id-987489322 .et-l--post .et_builder_inner_content .ss-hub-card h2,
  body.page-id-987489322 .et-l--body .et_builder_inner_content .ss-hub-card h2 {
    font-size: 20px !important;                    /* beats the sitewide 25px !important, see comment above */
  }
}

/* ---- 3. The 3 lead rows -----------------------------------------------
   Page-scoped, purpose-built -- NOT `.ss-benefits-media`. That class is
   tuned to the *Feature Page* design's own numbers (660px column,
   `min-height:636px`, 220px on the phone); this page's design draws a
   different image, 610x377, in a differently-proportioned card (radius 30
   accent wash, not the plain 2-up list+media split `.ss-benefits-media`
   serves). Reusing it would silently apply the wrong page's aspect ratio.
   `.ss-benefits-media` is the near-twin this diverges from, named here so
   the pair stays findable. */

/* Row: 3 cards stacked, `gvid-space-s` gap at both widths (design: 20/20,
   the one part of this page's rows/gaps that does NOT change at 390).
   Same "override display, let CSS win on source order" idiom as
   `.ss-hub-grid` two blocks up -- no `!important` needed there, none needed
   here. */
body.page-id-987489322 .mt-leads {
  display: flex;
  flex-direction: column;
  gap: var(--gvid-space-s, 20px);
  margin: 0;
  padding: 0;
}

/* The wash card itself is the COLUMN (type 4_4), one per lead feature, all
   3 siblings inside the single `.mt-leads` row -- same shape as
   `.ss-hub-card` two blocks up, not a row-in-a-row (a `divi/row` cannot
   directly contain another `divi/row`; an earlier version of this rule
   tried that and it rendered as overlapping/collapsed cards at 390 --
   caught by eye on the live page, see build.py's `build_lead_card()`
   docstring for the fix). A Divi 5 column is natively
   `display:flex;flex-direction:column`, so eyebrow/H2/body/cta stack for
   free, same as the grid; this only needs to add the gap, radius, wash and
   padding. Padding 35/25 (25 is a one-off, not a gvid- token, matching the
   design note). */
body.page-id-987489322 .mt-lead-card {
  width: 100%;
  box-sizing: border-box;
  border-radius: var(--gvid-radius-card, 30px);
  gap: var(--gvid-space-s, 20px);
  padding: 35px;                                    /* design 35 desktop */
}
@media (max-width: 980px) {
  body.page-id-987489322 .mt-lead-card {
    padding: 25px;                                   /* design mobile 25, one-off */
  }
}

/* The 3 accent washes, one per row (design: linear-gradient(180deg,
   rgba(<accent>,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%)). Written as
   literal per-instance rules, not a shared "wash" utility -- this exact
   formula already appears this way at least twice more in this file
   (`.ss-step:nth-child(3n+N)`, `.ss-versus table ...`), so a literal repeat
   per accent is this codebase's own established shape for this motif, not
   an invented duplication. */
body.page-id-987489322 .mt-lead-card--orange {
  background: linear-gradient(180deg, rgba(255,112,67,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%);
}
body.page-id-987489322 .mt-lead-card--violet {
  background: linear-gradient(180deg, rgba(124,77,255,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%);
}
body.page-id-987489322 .mt-lead-card--cyan {
  background: linear-gradient(180deg, rgba(38,198,218,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%);
}

/* Modules inside `.mt-lead-card` (eyebrow / H2 / body / cta) are separate
   sibling `divi/text` + `divi/heading` modules, same shape `.ss-hub-card`
   already uses -- the card's own flex `gap` (set above) is the only
   spacing mechanism between them, no per-element margin needed beyond the
   `margin:0` set on each piece below (same "gap replaces margin" rule this
   file uses for `.ss-sec`'s row rhythm). */

/* 3b. The image slot -- NOT RENDERED TODAY (SPEC: "do NOT render an empty
   image box"), and today's structure (card = one COLUMN, no nested row) has
   nowhere to hang a side-by-side image without restructuring: adding the
   design's text-beside-610x377-image layout later needs the card converted
   from a single column into a row of 2 columns (text + media), not merely
   one new module inside the current column. That is more than the
   "one-field change" this rule set out to be -- flagged plainly in the
   report, not hidden. What IS ready now, so the eventual restructure is
   still small: the image's own sizing (matching the design's real 610x377 /
   180 mobile numbers, not `.ss-benefits-media`'s -- see the section note
   above this block for why that class is not reused). */
body.page-id-987489322 .mt-lead-media img {
  display: block;
  width: 100%;
  height: 377px;                                    /* design 377 */
  object-fit: cover;
  border-radius: var(--gvid-radius-row, 20px);
}
@media (max-width: 980px) {
  body.page-id-987489322 .mt-lead-media img {
    height: 180px;                                   /* design mobile 180 */
  }
}

/* Lead-row H2. Same wrapper-vs-tag problem as the grid (see file docstring),
   same fix: target the tag, page + card scoped. Design's h3_card_heading
   role is used here (25/20 responsive) -- this is the ONE place on the page
   that keeps the design's own responsive step rather than SPEC's flat
   `.ss-vs` 20px, because SPEC only names `.ss-vs` for the 17-card grid. */
body.page-id-987489322 .et-l--post .et_builder_inner_content .mt-lead-card h2,
body.page-id-987489322 .et-l--body .et_builder_inner_content .mt-lead-card h2 {
  margin: 0;
  font-family: Poppins, sans-serif;
  font-weight: 500;
  font-size: 25px;                                  /* design 1440 */
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
@media (max-width: 980px) {
  /* Same sitewide `.et_pb_module h2{font-size:25px!important}` landmine as
     the grid H2 above (see that rule's comment) -- `!important` required
     here too, measured live the same way. */
  body.page-id-987489322 .et-l--post .et_builder_inner_content .mt-lead-card h2,
  body.page-id-987489322 .et-l--body .et_builder_inner_content .mt-lead-card h2 {
    font-size: 20px !important;                     /* design 390 */
  }
}

/* Lead-row body copy. Content-embedded class, no wrapper problem. */
body.page-id-987489322 .mt-lead-body {
  margin: 0;
  font-size: 18px;                                  /* design 1440 */
  line-height: 1.2;
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
@media (max-width: 980px) {
  body.page-id-987489322 .mt-lead-body {
    font-size: 16px;                                /* design 390 */
    line-height: 1.25;
  }
}

/* Lead-row CTA. Content-embedded `<span>` inside the `<a>`, identical shape
   to `.ss-hub-cta` (see file docstring for why that sidesteps the guard-link
   colour rule entirely -- a direct match on the span beats an inherited
   value on its ancestor `<a>` regardless of the guard's own specificity).
   One accent per row rather than `.ss-hub-cta`'s fixed orange, matching the
   design's own per-row accent (`cta_button_style`/`accent` fields). */
body.page-id-987489322 .mt-lead-cta {
  display: inline-block;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-weight: 700;
  font-size: 14px;
}
body.page-id-987489322 .mt-lead-card--orange .mt-lead-cta { color: var(--gcid-6spcyv8qzp, #FF7043); }
body.page-id-987489322 .mt-lead-card--violet .mt-lead-cta { color: var(--gcid-bs9uwvujec, #7C4DFF); }
body.page-id-987489322 .mt-lead-card--cyan   .mt-lead-cta { color: var(--gcid-2oou2aqy2u, #26C6DA); }

/* ---- 4. Hero text colour + legibility scrim -- coordinator correction,
   2026-09-02 -----------------------------------------------------------
   The ORIGINAL hero (snapshot/987489322.raw.html[1651:4076)) had WHITE h1/
   sub text (#FFFFFF) with a text-shadow, over this exact photo+gradient.
   The previous rebuild put the H1/sub under the shared `.ss-hero h1` /
   `.ss-hero .ss-hero-sub` rules (theme-backup/style.css), which force
   #000000 -- correct for every OTHER `.ss-hero` page (59 pages carry the
   `.ss-hero` class site-wide, 58 carry `.ss-hero-sub`; counted live via
   `wp eval` against post_content, whole-word token match so
   `.ss-hero-trust`/`.ss-hero-img`/etc do not inflate the count), all of
   which are flat `#F4F4F4` bands with no photo -- but WRONG here, because
   this page alone has a real photo behind that text (see
   `hero_section_attrs()` in build.py). Black-on-photo was never a design
   decision; it is a side effect of the SPEC that wrongly said this hero
   had no image. Scoped to `body.page-id-987489322` ONLY, so none of the
   other 58-59 pages move.

   MEASURED, not assumed: the existing post_content gradient (275deg,
   rgba(140,140,140,0)->rgba(0,0,0,0.18), SPEC calls it "assisting a
   text-shadow") was authored for text carrying its own shadow, not for
   contrast alone. Sampling the actual photo (2560x1429) under the
   rendered h1/sub bounding boxes at both 1440 and 390 (background-size:
   cover, position 50% 50%, mapped screen->source px; 1600-pt grid per
   box per width) finds the photo's brightest patch (the wall over the
   reception counter, ~(237,237,237) after the existing gradient) gives
   WHITE text only ~1.16-1.31:1 contrast there -- nowhere near the 3:1
   (h1, large text) / 4.5:1 (sub, normal text) bar. Reinstating the OLD
   text-shadow is not the fix (SPEC: it is the "old look" and stays gone
   with Yeseva One) and BLACK text is not uniformly better either --
   measured the same way, black's own worst point (a dark denim/hair
   patch) was as low as 1.0:1. Neither flat colour survives this photo's
   own contrast range without a stronger scrim; this is a scrim problem,
   not a colour-choice problem.

   THE FIX: a flat 58% black `::before` scrim over the whole hero,
   BEHIND the text, ON TOP of the photo+existing gradient (which stays
   exactly as authored in post_content -- SPEC: don't touch the media).
   Solved for the WORST sampled pixel (the bright wall patch, both
   widths) at the STRICTER 4.5:1 sub-line bar with a safety margin:
   0.475 was the measured minimum, 0.58 is used. `.ss-hero` is already
   `position:relative` (Divi's own section default, confirmed live) and
   the two content rows are already `position:relative` with
   `z-index:auto` too (Divi's own row default) -- so no z-index is set
   here at all. All three (the ::before and both rows) are z-index:auto
   positioned descendants in the SAME stacking context, painted in DOM
   order (CSS2.1 4.3-style painting order): the pseudo-element is the
   first "child" in source order, so it paints (behind) before the two
   rows that follow it, with no risk of creating a new stacking context
   that could reorder anything else on the page. `pointer-events:none`
   so the crumbs/CTA links underneath stay clickable. */
body.page-id-987489322 .ss-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.58);
  pointer-events: none;
}
body.page-id-987489322 .et-l--post .ss-hero h1,
body.page-id-987489322 .et-l--body .ss-hero h1 {
  color: #FFFFFF;                                  /* restores the original's white, not the old text-shadow */
}

/* SUB NEEDS MORE THAN THE H1 DOES. Section 6 of THIS SAME STYLESHEET (the
   comparison-family pass, "THE COMPARISON-FAMILY SCOPE") hooks itself onto
   any page via `:et_builder_inner_content:has(.ss-hub-grid)` -- written to
   catch the 18 comparison pages plus the /compare/ hub, the only carriers
   of `.ss-hub-grid` at the time. This page reuses `.ss-hub-grid` too (SPEC
   4.3, correctly -- SHARED with /compare/, not a fork), which means it now
   ALSO matches that :has() hook as an unintended fourth member. Measured
   live: at <=980px this forces `.ss-hero .ss-hero-sub` to
   `color:var(--gcid-90suxw02k0,#2f2f2f)` at (0,5,0) specificity (the
   :has() argument contributes its own selector's specificity, so
   `:has(.ss-hub-grid)` counts as one class) -- higher than a first attempt
   at this rule (0,4,1), so the mobile sub silently reverted to the dark
   grey the coordinator's fix was undoing. `.et_builder_inner_content` is
   added below (matching the competitor's own selector) specifically to
   reach (0,5,1) and win outright, not by source order. The H1 has no such
   collision (that scope only ever sets its max-width/text-wrap, never its
   colour), confirmed live at both widths.

   NOT FIXED, reported instead (same house convention this stylesheet uses
   elsewhere): the SAME :has(.ss-hub-grid) hook also gives this page, as a
   side effect, `.ss-hero h1{max-width:1000px;text-wrap:balance}` at
   >=981px (design says 1058px -- a 58px difference invisible on this
   page's one-line H1), `.ss-cta p{line-height:1.3}` (this page's design
   also wants 1.3; a net improvement over Divi's inherited 1.7), the CTA
   section's padding (70/70 desktop, 35/35 phone -- again what this
   page's own design wants), and the shared FAQ layout's
   padding-bottom (140/70). None of these regress this page against its
   own design values; none are addressed here since they are pre-existing
   and out of this fix's scope -- narrowing the :has() hook to also
   exclude 987489322 is a call for whoever owns the comparison-family
   pass, not this one. */
body.page-id-987489322 .et-l--post .et_builder_inner_content .ss-hero .ss-hero-sub,
body.page-id-987489322 .et-l--body .et_builder_inner_content .ss-hero .ss-hero-sub {
  color: #FFFFFF;
}


/* ss-hubs-rebuild 2026-09-04 */
/* ============================================================================
   HUBS REBUILD -- /industries/ 987492453 and /add-ons/ 987489140.
   Appended 2026-09-04. Both pages use the SHARED `.ss-cards-3` grid and the
   SHARED `.ss-hub-card` surface; nothing shared is re-declared here.
   ========================================================================= */

/* ---------------------------------------------------------------------------
   1. `.ss-hero--photo` -- a hero drawn over a PHOTOGRAPH, not the flat #F4F4F4.

   `.ss-hero` is authored for the 59 flat-band heroes on this site and sets
   BLACK type: `.et-l--post .ss-hero h1{color:#000000}` at style.css:4096 (0,2,1)
   and `.et-l--post .ss-hero .ss-hero-sub{color:#000000}` at :4107 (0,3,0).
   Over a photograph that is unreadable, so a photographic hero has to beat both.

   THIS IS THE THIRD TIME THAT QUESTION HAS BEEN ANSWERED ON THIS SITE. The
   first two answers are hand-written page-scoped pairs (style.css:8266-8311,
   `body.page-id-987489322`). This is the central form so there is not a fourth.

   Specificity is a WIN, not a source-order win: `.et_builder_inner_content` is
   in each arm, giving (0,3,1) for the h1 against `.ss-hero h1`'s (0,2,1), and
   (0,4,0) for the sub against `.ss-hero .ss-hero-sub`'s (0,3,0). An order-only
   win would be silently reversed by the next pass that appends a `.ss-hero`
   rule, and this stylesheet is appended to by every pass.

   !!! DO NOT RETROFIT /more-tools/ 987489322 ONTO THIS CLASS !!!
   It carries `.ss-hub-grid`, which drags in
   `:has(.ss-hub-grid) .ss-hero .ss-hero-sub{color:#2f2f2f}` at (0,5,0) at <=980
   ONLY. This modifier's (0,4,0) LOSES to that, so swapping /more-tools/ onto it
   would restore the exact phone-only dark-text defect that cost a debugging
   round on 2026-09-02 -- and it would look correct on the desktop while doing
   it. That page keeps its (0,5,1) page-scoped pair. This class is for
   photographic heroes on pages WITHOUT `.ss-hub-grid`.
   --------------------------------------------------------------------------- */
.et-l--post .et_builder_inner_content .ss-hero--photo h1,
.et-l--body .et_builder_inner_content .ss-hero--photo h1 {
  color: #FFFFFF;                                  /* over a photo, not the flat band */
}
.et-l--post .et_builder_inner_content .ss-hero--photo .ss-hero-sub,
.et-l--body .et_builder_inner_content .ss-hero--photo .ss-hero-sub {
  color: #FFFFFF;
}

/* ---------------------------------------------------------------------------
   2. /industries/ -- the card title is ALSO a link.

   The 13 card titles become real `h3`s (they were `<span class="ss-int">`, so
   the site's "new SEO asset" had 13 industry names in no heading at all). Making
   them headings would normally COST their anchor text: a `divi/heading` module
   cannot sit inside an `<a>`, so the whole card stops being one link and all 13
   anchors collapse to the identical "See how it works".

   Linking the heading too keeps the anchor text EXACTLY as it ships today
   ("Hair Salon", "Beauty Salon", ...) -- verbatim, no copy change -- and gives
   each card two links to one URL, which is what a blog card does. SEO is a
   pillar on this project and the instruction is to err towards gain.

   (0,5,2) is the minimum that beats the section link guard
   `.ss-sec a:not(...):not(...)` at (0,5,1). Page-scoped because the decision is
   this page's; if /add-ons/ or a future hub wants it, promote it then rather
   than widening it speculatively.
   --------------------------------------------------------------------------- */
body.page-id-987492453 .et-l--post .et_builder_inner_content .ss-sec .ss-hub-card h3 a,
body.page-id-987492453 .et-l--body .et_builder_inner_content .ss-sec .ss-hub-card h3 a {
  color: #2F2F2F;                                  /* the heading colour, not a link colour */
  text-decoration: none;
}

/* ---------------------------------------------------------------------------
   3. /add-ons/ 987489140 -- `.ao-eyebrow`, the card's category label.

   Replaces the mint `.pa-multi-line-highlight h2` pill. TWO measured reasons it
   cannot stay an `<h2>`: the sitewide pill rule paints it #FFFFFF on #8EDCE6 =
   1.55:1, and style.css:631/657 force any body `<h2>` to 25px !important at
   <=980 -- which is what turns a 10px chip into a full-width 25px mint bar on
   the phone. Both measured on the live page 2026-09-04.

   Values are `.mt-eyebrow`'s (style.css:8011), the identical role on
   /more-tools/ -- same numbers, page-scoped to this post rather than forked.
   #2F2F2F on the card's #FFFFFF = 13.39:1.
   --------------------------------------------------------------------------- */
body.page-id-987489140 .ao-eyebrow {
  display: block;
  margin: 0;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 14px;                                 /* .mt-eyebrow desktop */
  font-weight: 500;
  text-transform: uppercase;
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
@media (max-width: 980px) {
  body.page-id-987489140 .ao-eyebrow { font-size: 12px; }   /* .mt-eyebrow mobile */
}

/* ---------------------------------------------------------------------------
   4. /add-ons/ -- `.ao-logo`, the partner-logo slot.

   Goes on the `divi/image` MODULE wrapper (`.et_pb_image`), so the `img` is a
   descendant rather than the element itself.

   `height:72px` is a NO-OP TODAY and is a guarantee, not a fix: all 12 logo
   files are already exactly 72px tall natural (88x72, 116x72, 70x72, 99x72,
   88x72, 173x72, 134x72, 214x72, 69x72, 134x72, 77x72, 74x72 -- read from the
   WP media API, not assumed) and render 1:1 with no rule at all. It exists so
   the next asset dropped in at a different height cannot break the row -- which
   matters, because two logos are still owed (WhatsApp and ADLA).

   `align-self` is the one declaration that is NOT a no-op: `.ss-hub-card` is
   `display:flex; flex-direction:column`, and its default `align-items:stretch`
   would otherwise stretch the image wrapper across the whole card.
   --------------------------------------------------------------------------- */
body.page-id-987489140 .ao-logo {
  margin: 0;
  align-self: flex-start;
}
body.page-id-987489140 .ao-logo img {
  height: 72px;
  width: auto;
  max-width: 100%;
}

/* ---------------------------------------------------------------------------
   DELIBERATELY NOT HERE, and each absence is a decision:

   * No `.ss-hub-cta` colour override. It paints `var(--gcid-6spcyv8qzp,#FF7043)`
     on the card's white = **2.74:1**, which fails AA -- measured independently
     this session. It is left ALONE on both new pages because it is a SHARED
     component on two shipped pages (/compare/, /more-tools/) and the colour is a
     brand token, so changing it is the owner's call and not a side effect of
     this pass. Raised with the owner 2026-09-04 together with `.ss-btn-primary`
     (white on the same #FF7043 = 2.74:1). open-decisions Sec 13 records the
     button as "NOT covered by this decision ... unraised with the owner", so
     this is a first report, not a re-report of the value-card ruling.
   * No card-title rule. Titles are `h3` bound to preset s4mji4bjre, which
     sidesteps the 25px `!important` floor entirely -- the same way /compare/
     does. A `!important` twin would have been needed for `h2`.
   * No `.ss-cards-3`, `.ss-hub-card`, `.ss-hub-cta` or `.ss-hub-sub` rule of any
     kind. `theme.py build` refuses if this block re-declares one.
   * No `.ss-hero--photo` on /add-ons/. Its hero section is spliced byte-for-byte
     from the original and never carried `.ss-hero`, so there is nothing to beat.
   --------------------------------------------------------------------------- */


/* === ss-legal : legal document pages (terms, privacy) === */
/* 2026-09-06. Pages: /terms-of-use/ 987489083, /privacy-policy/ 3,
   /privacy-policy-text/ 987492761.

   WHY THE 16px LIVES HERE AND NOT IN A DIVI GLOBAL.
   The owner's settled ruling is "legal body text 14px -> 16px". Measured
   2026-09-05: all three pages ALREADY render 16px at <=980px, from this
   stylesheet's own `@media (max-width:980px){html body{font-size:16px}}`.
   The 14px exists only ABOVE 980px, and it comes from a Divi GLOBAL --
   `:root{--et_global_body_font_size:14px}` -- which is emitted on every
   builder page. Changing it there would restyle all 96 pages. So the ruling is
   satisfied page-locally, by setting the size on `.ss-legal` and letting it
   inherit: the Meyer reset gives <p>/<li> `font-size:100%`, i.e. 100% of the
   parent, so a single declaration reaches all running text.
   The sitewide desktop type decision remains open and unpriced -- it is NOT
   this pass's to make. */

.ss-legal{
  font-family:Nunito,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  color:#2F2F2F;
}

/* Reading column. Measured before this pass: 140 characters per line at 1440 on
   /terms-of-use/, 157 on /privacy-policy/, 427 at 2560 on
   /privacy-policy-text/. Comfortable is 45-75.

   580px, and it took FOUR measured passes to get here -- every one of them
   correcting an estimate with a number:
     720px  from an estimate of "~78 characters". Measured: 94 median, 104 worst.
     620px  terms 90 worst -- passing with ZERO margin against a 90 ceiling --
            and /privacy-policy/ still 91.
     600px  terms 85, privacy still 91 worst (85 median).
     580px  all three clear with margin.
   The lesson in the middle of that: **characters-per-line is copy-dependent, not
   purely width-dependent.** At the identical 600px column, terms fits 85 and
   privacy fits 91, because the privacy copy has fewer bold run-ins and longer
   plain sentences, so more characters fall in the same space. A width chosen
   from one page's measurement does not transfer to another page's copy.

   The ceiling was never moved to meet the page; the page was narrowed to meet
   the ceiling.

   Inert below ~620px viewport, where the column is already narrower than the
   cap, so this needs no media query and cannot fight the phone layout. */
.ss-legal .et_pb_text_inner{
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}

/* line-height has to be declared ON the text elements, not inherited from
   `.ss-legal`. Measured: `.ss-legal` (the section) computes 24px = 16 x 1.5
   correctly, and so do the row and column -- but Divi sets line-height on the
   `.et_pb_text` MODULE between the column and the paragraphs, so every <p> and
   <li> inherited 27.2px = 16 x 1.7 instead. Specificity is not the issue: a
   declaration that matches the element always beats a value inherited from an
   ancestor, however specific that ancestor's rule is. */
.ss-legal p,
.ss-legal li{line-height:1.5}
.ss-legal p{margin:0 0 1em}
.ss-legal p:last-child{margin-bottom:0}

/* Links. #7C4DFF on #FFFFFF is 4.81:1 -- passes AA for normal text -- and the
   underline is kept so colour is never the sole cue (WCAG 1.4.1). The page it
   matters most on is /privacy-policy-text/, whose links were #2EA3F2 at 2.75:1
   with text-decoration:none: failing on both counts at once. */
.ss-legal a{
  color:#7C4DFF;
  text-decoration:underline;
  text-underline-offset:2px;
}
.ss-legal a:hover,
.ss-legal a:focus{color:#5B2EE0}

/* The Design System's violet is 4.81:1 on white -- fine -- but only 4.38:1 on
   the #F4F4F4 disclosure panel, which fails AA. Measured, not assumed; the
   independent checker found it and the coordinator reproduced the same two
   numbers. Exactly ONE link on this page sits on that panel, so the token is
   kept where it works and darkened only where it does not: #6B3FE8 is 5.45:1 on
   #F4F4F4 (and 6.00:1 on white). */
.ss-legal-intro a{color:#6B3FE8}
.ss-legal-intro a:hover,
.ss-legal-intro a:focus{color:#5F35DE}

/* ---- headings. Design System: Poppins, H2 25/20px, H3 25->20px at 600/500 ---- */
.ss-legal h2,
.ss-legal .ss-clause-h,
.ss-legal .ss-sec-h{
  font-family:Poppins,"Helvetica Neue",Helvetica,Arial,sans-serif;
  color:#2F2F2F;
  letter-spacing:-.02em;
}
/* NO mobile font-size here, deliberately. The child theme already carries
   `@media (max-width:980px){ .et-l--post h2, .et-l--body h2 {font-size:25px
   !important} }` and the same for h3 at 20px, plus a second copy at (0,4,1).
   `!important` beats any specificity, so a 20px declared here would be INERT --
   measured, not assumed: with it in place the page still computed 25px at 390.

   Accepted rather than fought, for three reasons. The forced values are 25px/20px,
   which ARE the Design System's own mobile H2/H3 sizes, so the rendered result is
   house-correct. Out-specifying a (0,4,1) `!important` selector means another
   `!important` and more classes, which is the arms race this project's notes warn
   about. And the pixels read well at 390.

   The consequence, stated rather than buried: clause headings do NOT step down on
   the phone -- 25px at every width. To change that, add `!important` here with at
   least (0,5,0), and expect to re-check every heading on the page. */
.ss-legal h2,
.ss-legal .ss-clause-h{
  font-weight:600;
  line-height:1.2;
  margin:0 0 .5em;
}
.ss-legal .ss-sec-h{
  font-weight:500;
  line-height:1.2;
  margin:1.5em 0 .5em;
}
@media (min-width:981px){
  .ss-legal h2,
  .ss-legal .ss-clause-h{font-size:25px}
  .ss-legal .ss-sec-h{font-size:20px}
}

/* ---- the numbering ----------------------------------------------------------
   THE POINT OF THIS PASS. The Terms cross-reference themselves **51** times,
   naming 25 distinct clause numbers, **10 of them two-level** ("clause 19.10",
   "clause 3.8"), appearing 23 times between them. (An earlier note said "50
   references, 22 two-level"; 22 was the OCCURRENCE count printed as a distinct
   count, and the 50 came from a regex matching `clause N` but not `clauses N`.)
   Before this pass NONE of those two-level labels was printed anywhere:
   sub-clauses rendered as a bare "1." "2." "3." from the browser's own list
   counter, so a reader sent to 19.10 had to find "19." and count to the tenth
   item. Nested counters() print the real label.

   The top level uses counter() and the nested levels counters(), with the same
   counter name reset at each <ol>, which is what produces 13 -> 13.1 -> 13.1.4
   without a single hard-coded number in the markup. */
.ss-legal .ss-clauses,
.ss-legal .ss-sub{
  list-style:none;
  counter-reset:ssclause;
  padding-left:0;
  margin:0;
}
.ss-legal .ss-clauses > li{
  counter-increment:ssclause;
  margin:0 0 2.25em;
}
.ss-legal .ss-clauses > li > .ss-clause-h::before{
  content:counter(ssclause) ". ";
  color:#7C4DFF;
  font-variant-numeric:tabular-nums;
}

/* HANGING INDENT, NOT GRID. The first cut used
   `display:grid; grid-template-columns:3.1em 1fr` on the <li>, which is wrong
   in a way that only the pixels showed: grid makes EVERY child its own grid
   item, INCLUDING anonymous runs of bare text. A clause like
   `<li><b>API</b> means the application programming interface...` therefore put
   the <b> in column 2 and the sentence after it into the 49.6px MARKER column.
   Measured live at 390: 42 items had a child rendered under 80px wide and one
   <li> was 3,978px tall; the document went 59,295px -> 129,887px, +119%.
   Every structural assertion still passed, because the markup was correct and
   only the painted result was wrong.
   Absolute positioning hangs the marker outside the text block and is
   indifferent to how many children an item has, or whether they are elements at
   all. */
.ss-legal .ss-sub{margin:.75em 0 0}
.ss-legal .ss-sub > li{
  counter-increment:ssclause;
  position:relative;
  padding-left:3.1em;
  margin:0 0 .7em;
}
.ss-legal .ss-sub > li::before{
  content:counters(ssclause,".");
  position:absolute;
  left:0;
  top:0;
  width:2.7em;
  color:#7C4DFF;
  font-weight:600;
  font-size:.875em;
  /* 16px x 1.5 = 24px line box; marker is .875em = 14px, so 24/14 = 1.714
     puts the marker on the first line's baseline. */
  line-height:1.714;
  font-variant-numeric:tabular-nums;
}
/* depth 3 labels are one segment longer ("13.1.4"), so the hang grows.
   68 of the 356 list items sit at this depth. */
.ss-legal .ss-sub .ss-sub > li{padding-left:3.9em}
.ss-legal .ss-sub .ss-sub > li::before{width:3.5em}

/* ---- contents list ---------------------------------------------------------
   NOT drawn by the design -- the design has no legal page at all. Added because
   /terms-of-use/ is 59,295px tall at 390, roughly 66 phone screens, with no way
   to navigate. Plain links, no sticky behaviour, no JavaScript. */
.ss-legal-toc{
  border:1px solid #EDE7F6;
  border-radius:12px;
  padding:20px 22px;
  margin:0 0 2.5em;
  background:#FFFFFF;
}
/* (0,2,0), NOT (0,1,0). `.ss-legal h2` above is (0,2,0) and would otherwise beat
   a bare `.ss-legal-toc-h`, rendering this label at 20-25px instead of 13px.
   The label is a <p>, so nothing collides today -- this is defensive, so that
   marking it up as a heading later cannot silently break it. */
.ss-legal .ss-legal-toc-h{
  font-family:Poppins,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:#636363;
  margin:0 0 .9em;
}
.ss-legal-toc ol{
  list-style:none;
  counter-reset:sstoc;
  padding:0;
  margin:0;
}
/* same hanging-indent pattern as the clause list, for the same reason -- these
   items happen to hold a single <a> today, but a grid here would break the
   moment one gained a second child. */
.ss-legal-toc li{
  counter-increment:sstoc;
  position:relative;
  padding-left:2.4em;
  margin:0 0 .45em;
  font-size:15px;
}
.ss-legal-toc li::before{
  content:counter(sstoc) ".";
  position:absolute;
  left:0;
  top:0;
  color:#7C4DFF;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.ss-legal-toc a{color:#2F2F2F;text-decoration:none}
.ss-legal-toc a:hover,
.ss-legal-toc a:focus{color:#7C4DFF;text-decoration:underline}

/* ---- the "Our Disclosures" summary panel ---- */
/* Background and radius only -- deliberately NOT padding or margin.
   Module 2 keeps its own `spacing` attribute (padding 20px x4, margin-top 25px),
   which Divi emits as `.et_pb_text_N{...}` at specificity (0,1,0). This rule is
   also (0,1,0), and Divi's generated sheet loads AFTER the child theme, so the
   tie goes to Divi: a `padding:24px` here would be silently inert. Same
   mechanism that made the module's `#f7f7f7` background beat this rule until the
   attribute was removed. Declaring it anyway would ship a rule that does
   nothing, which is worse than either value -- so the module governs spacing and
   the stylesheet governs surface. */
.ss-legal-intro{
  background:#F4F4F4;
  border-radius:12px;
}
.ss-legal-intro > :last-child{margin-bottom:0}

/* 14 paragraphs that faked a bullet with a literal "•" glyph become one real
   list. The glyphs are the only visible characters this pass removes from
   /terms-of-use/. */
.ss-legal-bullets{
  list-style:disc;
  padding-left:1.25em;
  margin:0 0 1em;
}
.ss-legal-bullets > li{margin:0 0 .6em}

.ss-legal-contact{margin-top:2em}

/* run-in defined terms stay bold and stay OUT of the heading outline. There are
   73 of them inside list items plus 15 leading top-level clauses; promoting
   them would put 88 extra entries in the outline and bury the 24 that matter. */
.ss-legal .ss-sub b,
.ss-legal .ss-sub strong{font-weight:700;color:#2F2F2F}

/* ---- /privacy-policy-text/ 987492761 ---------------------------------------
   The Facebook app's privacy URL. It renders on page-template-really-blank.php
   with NO header, NO footer and NO #page-container -- <body>'s direct children
   are the content blocks. All of that is deliberate and is kept; the rules below
   are the minimum that makes it readable.

   Being a non-builder page it never receives Divi's global-data <style>, so
   `--et_global_body_font` is UNDEFINED there. An unresolvable var() does not
   fall back to an earlier declaration -- it invalidates the declaration at
   computed-value time -- so `body{font-family:var(--et_global_body_font)}` left
   the page at its initial value, `-webkit-standard`, i.e. Times. Hence an
   explicit family here rather than a var. Measured side padding was 0px, with
   headings touching the window edge at every width. */
/* 640px WRAPPER = 600px of content once the 20px side padding is taken off,
   matching the two builder pages. This page has no `.et_pb_text_inner`, so it
   needs its OWN width rule -- which is exactly how it got missed when the column
   moved from 720px to 620px: that edit touched only the builder-page rule and
   this page silently stayed at 720px (680px content, 99 characters per line)
   while the other two moved. Two rules express one decision; change both. */
body.page-id-987492761 .ss-legal{
  max-width:620px;
  margin:0 auto;
  padding:28px 20px 72px;
}
body.page-id-987492761{background:#FFFFFF}

/* Its 6 lists / 47 items rendered as undifferentiated lines. Cause is Divi's own
   reset, `ol,ul{list-style:none}`, which is site-wide and NOT this pass's doing:
   on the two builder pages Divi's text-module CSS restores the disc, but this
   page loads 12 stylesheets instead of 26 and never gets that rule, so the reset
   stands. Pre-existing, page-local, and scoped to this one page precisely so it
   cannot disturb the two where bullets already work. */
body.page-id-987492761 .ss-legal ul{
  list-style:disc;
  padding-left:1.25em;
  margin:0 0 1em;
}
body.page-id-987492761 .ss-legal ul > li{margin:0 0 .4em}


/* === ss-blog : the /blog/ all-posts listing === */
/* 2026-09-06. Page: /blog/ 987489089.

   WHAT THIS PAGE IS FOR, since it is not obvious. /blog/ was a client-side
   region router -- a shortcode emitting one line of JS that bounced the visitor
   to /blog/<region>/ -- sitting in front of six already-live regional listings.
   It is now a real all-posts listing, because 148 of the 304 published posts
   (48.7%) carry NO region category and therefore appear on NONE of those six
   hubs. This page is the only place they are listed. The six hubs are untouched. */

.ss-blog{ /* section shell; .ss-sec supplies the padding and rhythm */ }

/* Hero clearance, PAGE-LOCAL. `.ss-hero` has `padding-top:0` and rides on 70
   pages, so it is not this pass's to change. The shipped flat heroes get their
   breathing room by accident of content: /industries/ has a tall photo hero with
   the text centred (h1 lands at 255px), /compare/ has a code module above the h1
   (143px). /blog/ has neither, so its h1 landed at exactly 94px -- the sticky
   header's own height, i.e. flush against it with zero clearance. Measured on
   all three, not eyeballed. 70px is the Design System's section-gap token. */
body.page-id-987489089 .ss-hero{padding-top:70px}
@media (max-width:980px){
  body.page-id-987489089 .ss-hero{padding-top:35px}
}

/* ---- the grid ----
   Column count is the module's own attribute (3 / 2 / 1). Gap is CSS because
   Divi has no gutter attribute. Design: column-gap 20px with row-gap 70px
   declared after it at desktop; a flex column at 30px on the phone. */
.ss-blog-grid .et_pb_blog_posts{
  column-gap:20px;
  row-gap:70px;
}
@media (max-width:980px){
  .ss-blog-grid .et_pb_blog_posts{row-gap:30px}
}

/* ---- the card ----
   The design draws NO card chrome: no background, border, radius, padding or
   shadow on the card itself. Only the image has a radius. Divi's default post
   styling adds some of that, so it is explicitly cleared. */
.ss-blog-grid .et_pb_post{
  background:transparent;
  border:0;
  padding:0;
  margin:0;
  box-shadow:none;
  display:flex;
  flex-direction:column;
  gap:15px;
}
@media (max-width:980px){
  .ss-blog-grid .et_pb_post{gap:12px}
}

/* ---- the image ----
   320px desktop / 220px at 390, radius 30, object-fit cover. The wrapper takes
   the height so a portrait or landscape original both crop rather than letterbox. */
/* The CONTAINER carries the height, not just the anchor inside it.
   Measured: with the height only on `.entry-featured-image-url`, the anchor was
   320px but `.et_pb_image_container` rendered **350px** with zero margin and zero
   padding -- a 30px phantom line box from the container's inherited line-height.
   The no-thumb placeholder was therefore 30px shorter than a real image card,
   and every image-less card's title, date and read-more sat 30px above its
   row-mates. `line-height:0` kills the line box; the explicit height makes
   container, anchor and placeholder provably the same box. */
.ss-blog-grid .et_pb_image_container{
  margin:0;
  line-height:0;
  height:320px;
}
.ss-blog-grid .entry-featured-image-url{
  display:block;
  height:100%;
  border-radius:30px;
  overflow:hidden;
  background:#EDE7F6;
}
.ss-blog-grid .entry-featured-image-url img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media (max-width:980px){
  .ss-blog-grid .et_pb_image_container{height:220px}
}

/* 37 of the 304 published posts have no featured image. Divi marks those cards
   `et_pb_no_thumb` and omits the image container ENTIRELY -- so without this the
   card would start at its title and the grid row would go ragged. #EDE7F6 is the
   design's own image placeholder fill, so an image-less card reads as a
   deliberate blank rather than a broken one. */
.ss-blog-grid .et_pb_post.et_pb_no_thumb::before{
  content:"";
  display:block;
  height:320px;
  border-radius:30px;
  background:#EDE7F6;
}
@media (max-width:980px){
  .ss-blog-grid .et_pb_post.et_pb_no_thumb::before{height:220px}
}

/* the design draws no hover overlay on the card image */
.ss-blog-grid .et_overlay{display:none}

/* ---- type ---- */
.ss-blog-grid .entry-title{
  font-family:Poppins,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-weight:500;
  font-size:25px;
  line-height:1.2;
  letter-spacing:-.03em;
  margin:0;
  padding:0;
}
/* SPECIFICITY, NOT PREFERENCE. style.css:3919 already carries
   `.et-l--post .et_builder_inner_content .ss-sec a:not([class*="et_pb_button"])
    :not([class*="ssh-"])` -> violet, which is (0,5,1): three classes, two
   attribute selectors inside :not(), one element. A plain
   `.ss-blog-grid .entry-title a` is (0,2,1) and LOSES -- measured, the titles
   rendered violet. Matching (0,5,1) is enough because that rule lives EARLIER in
   this same stylesheet and this block is appended, so an equal-specificity rule
   here wins on source order. No `!important` needed, and none used. */
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a{
  color:#2F2F2F;
  text-decoration:none;
}
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a:hover,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a:hover,
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a:focus,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .entry-title a:focus{
  color:#7C4DFF;
}

/* (0,4,0) on the colour, deliberately. Divi ships
   `.et_pb_bg_layout_light .et_pb_post .post-meta{color:#666666}` at (0,3,0) and
   its generated sheet loads AFTER the child theme, so a (0,2,0) or even a tying
   (0,3,0) declaration here is inert -- measured, the meta computed #666666 with
   #636363 declared. #666666 is 5.74:1 and would have passed AA, which is exactly
   what makes this kind of dead rule easy to ship: it looks fine and does
   nothing. #636363 is the Design System's Secondary token and 6.06:1. */
.ss-blog-grid .post-meta{
  font-family:Nunito,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:18px;
  line-height:1.2;
  margin:0;
  padding:0;
}
.et-l--post .et_builder_inner_content .ss-blog-grid .post-meta,
.et-l--body .et_builder_inner_content .ss-blog-grid .post-meta{
  color:#636363;
}
/* Same (0,5,1) reason as the title.
   AND A DELIBERATE CONTENT DECISION. The design's meta line reads
   "Nov 26, 2025 | AU, EU, MY, SG, UK, US" -- date plus region codes. Live posts
   carry up to NINE categories ("Tips & Advice", "Tools & Resources",
   "Business Tips" …), rendered by Divi as one `", "`-joined run of links that no
   CSS can filter (it is a single implode, and hiding all-but-some with
   nth-child strands the separators).
   Rather than turn categories OFF -- which would cost roughly 84 internal links
   to indexed category archives across 12 cards -- they stay, restyled as quiet
   metadata rather than a wall of violet. The links survive for SEO; the card
   reads as date-and-topics instead of shouting. */
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a{
  color:#636363;
  text-decoration:none;
}
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a:hover,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a:hover,
.et-l--post .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a:focus,
.et-l--body .et_builder_inner_content .ss-sec .ss-blog-grid .post-meta a:focus{
  color:#7C4DFF;
  text-decoration:underline;
}

/* The design's grid card carries NO excerpt -- only the featured panel does.
   Two further reasons to drop it rather than keep it: 201 of 304 posts have no
   manual excerpt so Divi auto-generates one, and every auto-excerpt opens by
   REPEATING the post title, which stutters directly under the title it repeats.
   One line to restore.

   `.post-content-inner`, NOT `.post-content`. Divi nests
   `.post-content > .post-content-inner > p` AND puts `a.more-link` inside
   `.post-content` as a SIBLING of the inner. Hiding the outer therefore hid the
   Read more as well -- measured: the link was present in the DOM with a
   bounding-box height of 0. Hide only the inner. */
.ss-blog-grid .post-content-inner{display:none}

.ss-blog-grid a.more-link{
  font-family:Nunito,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-weight:500;
  font-size:20px;
  line-height:1.1;
  color:#7C4DFF;
  text-decoration:none;

}
.ss-blog-grid a.more-link:hover,
.ss-blog-grid a.more-link:focus{color:#5B2EE0;text-decoration:underline}

@media (max-width:980px){
  .ss-blog-grid .entry-title{font-size:20px}
  .ss-blog-grid .post-meta{font-size:14px}
  .ss-blog-grid a.more-link{font-size:16px}
}

/* ---- pagination ----
   Divi's own prev/next. The design's "View More Articles" button is NOT built:
   measured, it is an <a href="#more"> with no pagination logic anywhere in the
   design's own behaviour script, i.e. unwired in the design itself. Divi's
   pagination is the only real paging mechanism on the page. */
.ss-blog-grid .pagination{
  margin-top:50px;
  font-family:Nunito,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:16px;
}
.ss-blog-grid .pagination a{color:#7C4DFF;text-decoration:none}
.ss-blog-grid .pagination a:hover,
.ss-blog-grid .pagination a:focus{text-decoration:underline}


/* === SS BLOG POST TEMPLATE 2026-09-07 === */
/* Agent F build payload. Read the file's module docstring (blogpost_css.py)
   before editing anything below -- it documents the two-shaped post body,
   why most rules here are single-scoped to .et-l--body, and which existing
   classes are deliberately reused vs. deliberately forked. */


/* ================================================================
   1. ARTICLE HERO -- H1
   Design: Poppins 500 ITALIC 60/30, LH1, LS-0.03em, #000000, centred,
   max-width 1058 + text-wrap:balance at desktop only (Blog Post.dc.html:54,
   Mobile Views.dc.html:614). This CONTRADICTS the Design System's own H1
   spec (600 roman) -- the page wins per this project's standing rule that
   a page's own document overrides the System's generic token. Stated, not
   re-litigated.
   Live currently gets this wrong three ways at once: not italic, #333 not
   #000, and pinned to 30px at EVERY width including 1440 (diff REPORT.md
   #3) -- the sitewide mobile rule (`.et-l--post h1, .et-l--body
   h1{font-size:30px!important}`, style.css:625-628) already forces the
   correct 30px at <=980 for BOTH post shapes (it keys on `.et-l--body`
   directly, which is always present, so this one already reaches classic
   posts too -- no twin needed for size at mobile). Only DESKTOP needs a
   new rule; nothing in the child theme sets a size there today, so the
   parent theme's own unconditional (no media query) 30px default is what
   is winning at 1440. UNSURE whether that default carries `!important`;
   this pass cannot render live to check. `!important` used here
   defensively -- if the competitor is not `!important`, this still wins on
   specificity alone (`.ss-post-title h1.entry-title` vs a bare
   `.entry-title`/`h1.entry-title`); if it IS `!important`, this is
   required. Flagged for the coordinator's computed-style audit. */
.et-l--body .ss-post-title h1.entry-title {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-style: italic;                              /* design italic */
  color: #000000 !important;                       /* design #000000, live currently #333 */
  text-align: center;
  line-height: 1;                                   /* design LH1 */
  letter-spacing: -0.03em;                          /* design LS -0.03em */
  margin: 0;
  padding-bottom: 0;                                /* clears Divi parent-theme h1-h6 padding-bottom:10px */
}
@media (min-width: 981px) {
  .et-l--body .ss-post-title h1.entry-title {
    font-size: 60px !important;                    /* design 60; UNSURE if competitor is !important, see docstring */
    max-width: 1058px;                              /* design 1058 */
    margin-left: auto;
    margin-right: auto;
    text-wrap: balance;                             /* design text-wrap:balance */
  }
}
/* mobile 30px already forced sitewide (style.css:625-628); no size rule
   needed here, only the non-size properties above, which that rule does
   not set. */


/* ================================================================
   1b. HERO BAND -- background / radius / padding-bottom
   MISSING FROM THE FIRST DRAFT -- not a specificity loss, this rule
   simply did not exist yet (grep-confirmed, see the file's revision
   note). Design: `#F4F4F4`, `border-radius:0 0 30px 30px`,
   `padding-bottom:70px` desktop / `35px` mobile (Blog Post.dc.html:43,
   Mobile Views.dc.html:597). Measured live before this rule:
   `background-color:rgb(255,255,255)`, `border-bottom-*-radius:0px`,
   `padding-bottom:50px`/`54px` -- Divi is emitting its own section
   background and spacing keyed on `.et_pb_section_0_tb_body`
   (coordinator-confirmed; "_tb_body" = this Theme Builder template's own
   body-layout section, stable across all 304 posts since the template's
   own section/row/module structure never changes per post -- the same
   kind of single-instance ordinal already trusted elsewhere in this file
   for the homepage's own H1/H2/H3, style.css ~7370-7420).
   `.ss-post-hero` IS confirmed present on the section (coordinator
   verified it in the class list), so this is written as a compound
   selector with the competing class for extra specificity insurance,
   plus `!important` on all three contested properties -- this is a
   confirmed-failed case (measured wrong, not hypothetical), so
   `!important` is used directly rather than attempted without it first. */
.et-l--body .ss-post-hero,
.et-l--body .ss-post-hero.et_pb_section_0_tb_body {
  background-color: #F4F4F4 !important;             /* design #F4F4F4 */
  border-bottom-left-radius: 30px !important;        /* design 0 0 30px 30px */
  border-bottom-right-radius: 30px !important;
  padding-top: 0 !important;                         /* design 0 */
  padding-bottom: 70px !important;                    /* design 70 */
}
@media (max-width: 980px) {
  .et-l--body .ss-post-hero,
  .et-l--body .ss-post-hero.et_pb_section_0_tb_body {
    padding-bottom: 35px !important;                  /* design mobile 35 */
  }
}


/* ================================================================
   2. ARTICLE HERO -- structure: crumbs / date+H1 order / hero image gap
   Design: outer group gap 70 (nav, date+h1 cluster, image), inner
   date+h1 cluster gap 35, centred (Blog Post.dc.html:44,52). At 390 the
   whole cluster flattens to ONE gap:20 group (Mobile Views.dc.html:605) --
   design REPORT.md Part B: "hero nesting flattens (3 siblings -> one
   gap:20 div)". The real markup keeps crumbs and title as separate Divi
   modules rather than one flattened div at any width, so this is
   approximated: 70/35 desktop as designed, 20/20 at mobile (both levels
   collapsed to the same 20 the flattened frame uses).
   THE OUTER SELECTOR CHANGED THIS REVISION. `.ss-post-col-hero` never
   reached the DOM (see the file's revision note -- `divi/column` drops
   `htmlAttributes` silently); there is exactly one column in the hero
   row per the markup contract, so `.ss-post-hero .et_pb_column` reaches
   it without needing `:has()` at all.
   Competitor: Divi's own flex column row-gap var, `.et_flex_column{row-gap:
   var(--vertical-gap)}` (0,1,0), no !important (same competitor already
   measured for `.ss-testimonials`'s photo row, style.css:5270-5280). The
   selector below is (0,2,0), a clean specificity win, not just a tie --
   no !important needed. */
.et-l--body .ss-post-hero .et_pb_column {
  row-gap: var(--gvid-space-l, 70px);              /* design 70 */
}
@media (max-width: 980px) {
  .et-l--body .ss-post-hero .et_pb_column {
    row-gap: 20px;                                 /* design mobile: flattened group gap 20 */
  }
}

/* Divi's Post Title module renders H1 then the date/meta line; this design
   shows the date line ABOVE the H1 (Blog Post.dc.html:52-54). Reordered
   visually with flex `order`, not the DOM -- the H1 is still the first
   heading a screen reader meets, which is the safer trade-off than
   reversing source order for a visual-only difference. Also carries the
   inner 35/20 gap. No-hero variant: only the meta <p> is present, so
   `order` and the gap are both inert (nothing to reorder or space) --
   handled by there simply being one flex child, not a special case. */
.et-l--body .ss-post-title .et_pb_title_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gvid-space-m, 35px);                  /* design 35 */
}
.et-l--body .ss-post-title .et_pb_title_container h1.entry-title { order: 2; }
.et-l--body .ss-post-title .et_pb_title_container p.et_pb_title_meta_container { order: 1; }
@media (max-width: 980px) {
  .et-l--body .ss-post-title .et_pb_title_container {
    gap: 20px;                                     /* design mobile: flattened group gap 20 */
  }
}


/* ================================================================
   3. BREADCRUMB
   `.ss-post-hero .ss-crumbs`, NOT `.ss-hero .ss-crumbs` (style.css:4120) --
   different section wrapper class, see docstring "REUSE, NOT
   DUPLICATION". Design: flex gap 7, 16px/LH1.2 desktop, 14px/no LH
   mobile (Blog Post.dc.html:45-51, Mobile Views.dc.html:604-609). Link
   colour rgba(47,47,47,.5); CURRENT crumb #2F2F2F (this document's own
   number -- NOT the #000000 the other pages' `.ss-hero .ss-crumbs` uses).
   Home stays a real link at every width (the sitewide standing decision
   at style.css:4127, "the demotion is not followed" -- reused, same
   reasoning: dropping it costs an internal link).
   Font-weight 400: same P7.2 finding as the other breadcrumb (style.css:
   5631-5645) -- the design declares no weight, root default is 400, and
   `body{font-weight:500}` (Divi inline, sitewide) is the only ancestor
   declaration, so setting 400 here wins by inheritance proximity, not
   specificity. */
.et-l--body .ss-post-hero .ss-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;                                        /* design 7 */
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;                                /* design 400 (undeclared), see P7.2 precedent */
  font-size: 16px;                                 /* design 16 */
  line-height: 1.2;                                /* design 1.2 */
  color: rgba(47, 47, 47, 0.5);
}
.et-l--body .ss-post-hero .ss-crumbs a {
  color: rgba(47, 47, 47, 0.5);
  text-decoration: none;
}
.et-l--body .ss-post-hero .ss-crumbs a:hover,
.et-l--body .ss-post-hero .ss-crumbs a:focus {
  color: var(--gcid-6spcyv8qzp, #ff7043);
}
.et-l--body .ss-post-hero .ss-crumbs .ss-crumb-current,
.et-l--body .ss-post-hero .ss-crumbs [aria-current="page"] {
  color: #2F2F2F;                                  /* design #2F2F2F -- this page's own number, not #000000 */
}
.et-l--body .ss-post-hero .ss-crumbs .ss-crumb-sep {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid rgba(47, 47, 47, 0.5);
  border-right: 1.5px solid rgba(47, 47, 47, 0.5);
  transform: rotate(45deg);
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-hero .ss-crumbs {
    gap: 6px;                                      /* design mobile 6 */
    font-size: 14px;                               /* design mobile 14 */
  }
  .et-l--body .ss-post-hero .ss-crumbs .ss-crumb-sep {
    width: 5px;
    height: 5px;
  }
}


/* ================================================================
   4. DATE / META LINE
   Design: 18px/LH1.2 desktop, 14px/no LH mobile (Blog Post.dc.html:53,
   Mobile Views.dc.html:613), colour inherited from the document root
   (#2F2F2F -- the design sets NO colour on this span, unlike the aside's
   date spans which explicitly set #636363, see section 7). Live currently
   renders 14px at BOTH widths, colour #666 (diff REPORT.md #2) -- "never
   scales up to 18px at 1440" is the desktop gap; mobile 14 already
   matches so only desktop needs a size rule.
   The design's line is plain text ("Oct 4, 2025 | AU, EU, UK"); the real
   theme prints real `<a rel="category tag">` category links here instead
   of a locale string. Left as real links (they carry SEO value) and
   coloured to match the line rather than the sitewide violet body-link
   colour, so the meta line reads as quiet metadata rather than a run of
   violet category links -- same call already made for the aside/related
   post-meta (section 7/8) and for `.ss-blog-grid` (style.css:8936-8945),
   reused here for the same reason. */
.et-l--body .ss-post-title p.et_pb_title_meta_container {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.2;                                 /* design 1.2 */
  color: #2F2F2F;                                   /* design: inherited root colour */
  margin: 0;
}
.et-l--body .ss-post-title p.et_pb_title_meta_container a {
  color: #2F2F2F;
  text-decoration: none;
}
.et-l--body .ss-post-title p.et_pb_title_meta_container a:hover,
.et-l--body .ss-post-title p.et_pb_title_meta_container a:focus {
  color: var(--gcid-6spcyv8qzp, #ff7043);
  text-decoration: underline;
}
@media (min-width: 981px) {
  .et-l--body .ss-post-title p.et_pb_title_meta_container {
    font-size: 18px;                                /* design 18, live never reaches this today */
  }
}
@media (max-width: 980px) {
  .et-l--body .ss-post-title p.et_pb_title_meta_container {
    font-size: 14px;                                /* design mobile 14 -- already live, restated for clarity */
  }
}


/* ================================================================
   5. HERO IMAGE
   Design: `<img object-fit:cover>` inside `border-radius:30px;
   overflow:hidden`, NOT a background -- 500px desktop / 220px mobile
   (Blog Post.dc.html:56-57, Mobile Views.dc.html:615). Live currently
   `border-radius:0, object-fit:fill` (diff REPORT.md #4) -- both wrong,
   fixed directly on the <img> (no wrapper div exists in the given markup
   contract to carry the radius, so it is set on the replaced element
   itself, which clips its own painted content the same way). Absent on
   the no-hero variant (`.et_pb_title_featured_container` is not rendered
   at all there) -- nothing further needed, an absent element needs no
   defensive CSS. */
.et-l--body .ss-post-title .et_pb_title_featured_container img {
  display: block;
  width: 100%;
  height: 500px;                                   /* design 500 */
  object-fit: cover;                               /* design cover */
  border-radius: var(--gvid-radius-card, 30px);    /* design 30 */
}
@media (max-width: 980px) {
  .et-l--body .ss-post-title .et_pb_title_featured_container img {
    height: 220px;                                 /* design mobile 220 */
  }
}


/* ================================================================
   6. ARTICLE BODY COPY
   THE TWO-SHAPED BODY. See the file's module docstring in full before
   touching anything below -- short version: `.ss-post-body` holds either
   bare prose (115 classic posts, no `.et-l--post` ancestor) or Divi-5
   blocks three levels deep inside their own `.et-l--post` wrapper (188
   posts). A plain descendant selector reaches both shapes; `!important`
   is used deliberately below because the Divi-5 shape's competitor is
   188 DIFFERENT posts' own per-module generated CSS, not one known rule
   -- the same problem the sitewide h1/h2/h3 base rule
   (style.css:590-609) already solved the same way, cited rather than
   re-derived. The one EXCEPTION is the mobile H2/H3 *size* specifically,
   written WITHOUT !important on purpose -- see the paragraph below. */

/* ---- paragraphs ----
   Design: Nunito 18px/16px, LH1.5 both widths, colour #2F2F2F
   (Blog Post.dc.html:64, Mobile Views.dc.html:619). Measure: no max-width
   on the <p> itself -- architectural (article flex:1 beside a fixed
   380px aside with a 70px gap in a 1340 column = ~890px), built by
   section 9's column split below, not by a rule here.
   Live currently renders 14px, LH ratio ~1.7-1.94 (not 1.5), colour
   #666/#222 (diff REPORT.md #5), plus at least one real post
   (987491765) with an AUTHOR-INSERTED inline `font-size:21px` override.
   `!important` beats that inline override too (browsers do not honour
   `!important` inside a `style` attribute), which is deliberate here:
   304 posts should read at one consistent size regardless of what an
   individual post's content happened to carry. */
.et-l--body .ss-post-body p {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  line-height: 1.5 !important;                     /* design 1.5 */
  color: #2F2F2F !important;                       /* design #2F2F2F */
  margin: 0 0 1em;
}
.et-l--body .ss-post-body p:last-child { margin-bottom: 0; }
@media (min-width: 981px) {
  .et-l--body .ss-post-body p { font-size: 18px !important; }   /* design 18 */
}
@media (max-width: 980px) {
  .et-l--body .ss-post-body p { font-size: 16px !important; }  /* design 16 */
}

/* ---- H3 ----
   Design: Poppins 500, 25px desktop / 20px mobile, LH1.2, LS-0.03em,
   margin 0 (Blog Post.dc.html:66, Mobile Views.dc.html:627). Mobile size
   already forced to 20px sitewide via `.et-l--post h3, .et-l--body
   h3{font-size:20px!important}` (style.css:634-636) for the Divi-5 shape
   (that rule keys on `.et-l--body` directly too, which this template's
   OWN root also is -- so it already reaches classic posts' h3 as well,
   with no twin needed here at all for size). Non-size properties still
   need setting for both shapes, hence !important on those. */
.et-l--body .ss-post-body h3 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em !important;
  color: #2F2F2F !important;                        /* not specified by design; body's own text colour */
  margin: 0 !important;
}
@media (min-width: 981px) {
  .et-l--body .ss-post-body h3 { font-size: 25px !important; }  /* design 25; no sitewide desktop safety net exists */
}
/* mobile 20px already covered sitewide for BOTH post shapes -- see comment above, no rule needed here */

/* ---- H2 ----
   NOT IN THE DESIGN (design REPORT.md A4: "never used ... zero H2 inside
   <article>"). Real posts use it anyway (diff REPORT.md #6: 3 of 6
   samples, up to 8 per post). Baseline only, matched to the Design
   System's own H2 scale (35/25) since there is nothing page-specific to
   transcribe -- ceiling: this covers "does not look broken", not a
   design spec that does not exist.
   MOBILE SIZE IS THE ONE INTENTIONAL EXCEPTION TO THE !important RULE
   ABOVE. Divi-5 posts already get 25px from the sitewide
   `.et-l--post h2, .et-l--body h2{font-size:25px!important}`
   (style.css:629-632) -- adding a second !important here would be a
   literal duplicate of that rule for no gain. Classic posts have no
   `.et-l--post` ancestor, so that sitewide rule cannot reach them at
   all; the plain (non-important) declaration below is what does --
   it is inert on Divi-5 posts (loses to the existing !important, same
   25px target anyway, no visible difference) and is the only thing
   sizing h2 on classic posts. This is the classic-post twin, deliberately
   not a duplicate. */
.et-l--body .ss-post-body h2 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em !important;
  color: #2F2F2F !important;
  margin: 0 0 0.5em !important;
}
@media (min-width: 981px) {
  .et-l--body .ss-post-body h2 { font-size: 35px !important; }  /* Design System H2 desktop scale; no page-specific number exists */
}
@media (max-width: 980px) {
  .et-l--body .ss-post-body h2 { font-size: 25px; }              /* classic-post twin, see comment above -- NOT !important on purpose */
}

/* ---- in-body images ----
   Design: 2 of 4 H3 blocks carry an image, `border-radius:20px;
   overflow:hidden; height:320px` desktop / `200px` mobile, object-fit
   cover, sourced from a live simplesalon.com url(https://simplesalon2-dev.10web.cloud/wp-content/themes/divi-simpleworld/Blog%20Post.dc.html:67,76,
%20%20%20Mobile%20Views.dc.html:622,631) -- NOT the same box as the 500/220 hero
   image (section 5) or the 320/200 Related-card image (section 8), each
   scoped separately so they cannot collide.
   Real post content has no wrapper div around an inline image (the
   markup contract lists bare `img` as one of the raw content elements),
   so radius/height/object-fit are set on the <img> itself, same
   technique as the hero image. UNSURE whether any of the 188 Divi-5
   posts' own image module carries an explicit height that could
   out-rank a plain descendant selector -- flagged for audit; no
   !important used here since the live baseline (diff REPORT.md #8) shows
   no competing radius/object-fit exists today on any sampled post. */
.et-l--body .ss-post-body img {
  display: block;
  width: 100%;
  height: 320px;                                    /* design 320 */
  object-fit: cover;                                /* design cover */
  border-radius: var(--gvid-radius-row, 20px);      /* design 20 */
  margin: 0;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-body img { height: 200px; }  /* design mobile 200 */
}

/* ---- inline links ----
   Design: one example ("See pricing"), no inline style -- colour from
   this document's own root <style> block: `a{color:#7C4DFF;
   text-decoration:none} a:hover{color:#FF7043}` (Blog Post.dc.html:15-16).
   NOTE this is the mainstream sitewide convention (violet/orange, no
   underline -- style.css:3905-3925), not the `.ss-legal` page's own
   underlined/dark-violet exception; matched to the mainstream one since
   that is what this specific document's own style block specifies.
   `!important` for the same 188-unpredictable-posts reason as the
   headings above -- this template has no `.ss-sec` ancestor to build the
   usual `:not()`-chain specificity guard against (see docstring, "REUSE,
   NOT DUPLICATION"), so specificity-matching an unknown per-post
   competitor is not reliable; !important is. */
.et-l--body .ss-post-body a:not([class*="et_pb_button"]) {
  color: var(--gcid-bs9uwvujec, #7c4dff) !important;
  text-decoration: none !important;
}
.et-l--body .ss-post-body a:not([class*="et_pb_button"]):hover,
.et-l--body .ss-post-body a:not([class*="et_pb_button"]):focus {
  color: var(--gcid-6spcyv8qzp, #ff7043) !important;
}

/* ---- lists / blockquote ----
   NOT IN THE DESIGN (design REPORT.md A4: zero hits for either). Baseline
   only, same ceiling note as H2 above. `.ss-legal p{margin:0 0 1em}` /
   `:last-child` idiom (style.css:8571-8572) reused for `li` here. */
.et-l--body .ss-post-body ul,
.et-l--body .ss-post-body ol {
  margin: 0 0 1em;
  padding-left: 1.25em;
  color: #2F2F2F;
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 18px;
  line-height: 1.5;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-body ul,
  .et-l--body .ss-post-body ol { font-size: 16px; }
}
.et-l--body .ss-post-body li { margin-bottom: 0.5em; }
.et-l--body .ss-post-body li:last-child { margin-bottom: 0; }
.et-l--body .ss-post-body blockquote {
  margin: 0 0 1em;
  padding-left: 20px;
  border-left: 3px solid var(--gcid-bs9uwvujec, #7c4dff);
  font-style: italic;
  color: #2F2F2F;
}
.et-l--body .ss-post-body figcaption {
  font-size: 14px;
  color: #636363;
  margin-top: 0.5em;
}


/* ================================================================
   7. ROW WIDTH + MAIN / ASIDE COLUMN SPLIT
   MEASURED THIS REVISION: `.ss-post-hero .et_pb_row` and `.ss-post-main
   .et_pb_row` both compute `max-width:1080px` (Divi's row default), not
   the 1340 every design number in this file assumes -- the hero image
   and the column arithmetic below were both off by the same amount
   before this fix. Set explicitly on both rows (and the Related row,
   same defect, not itself reported but the identical mechanism -- fixed
   proactively rather than waiting to be told twice). Competitor
   unstated by the coordinator (only the computed effect was); this is a
   3-class selector, no `!important` -- flagged in case that is not
   enough.
   Design: article `flex:1` beside a FIXED 380px aside, 70px gap, inside
   that 1340px content column (Blog Post.dc.html:62,85).
   THE COLUMN SELECTORS CHANGED THIS REVISION. `.ss-post-col-main` /
   `.ss-post-col-aside` never reached the DOM at all -- see the file's
   revision note (`divi/column` drops `htmlAttributes` silently). Fixed
   by selecting on content instead of a class that was never there,
   exactly as the coordinator specified: `:has(.ss-post-body)` for the
   article column, `:has(.ss-post-popular)` for the aside -- stable
   regardless of column order and not a Divi ordinal.
   ALSO CORRECTED THIS REVISION: the first draft wrongly assumed Divi
   assigns *different* column classes by configured width
   (`et_flex_column_18_24` vs `_6_24`, i.e. 75%/25%). Measured by the
   coordinator: Divi 5 columns on this install are ALWAYS
   `et_flex_column_24_24` in class terms regardless of the row's
   configured type, and every multi-column band on the site -- including
   this one -- is produced entirely by CSS, not by a Divi-provided width
   class. This is actually simpler than first assumed: there is no
   Divi-set flex-basis to out-rank on specificity at all, so the rules
   below are the ONLY thing setting these columns' widths, and cannot
   lose a fight that does not exist. `flex-basis`/`max-width` (not
   `width` alone) still used on the aside so the flex algorithm cannot
   re-shrink it, matching the technique already established for the
   testimonial photo column (style.css:5270-5296).
   Below 981 both columns fall back to `et_flex_column_24_24` (full
   width) on their own -- nothing to override there, they stack. */
.et-l--body .ss-post-hero .et_pb_row,
.et-l--body .ss-post-main .et_pb_row,
.et-l--body .ss-post-relsec .et_pb_row {
  max-width: 1340px;                                /* design 1340; live default is Divi's own 1080 */
}
.et-l--body .ss-post-main .et_pb_row.et_flex_row {
  column-gap: var(--gvid-space-l, 70px);           /* design 70 */
}
/* THE TWO-COLUMN SPLIT IS DESKTOP-ONLY, AND THE BREAKPOINT IS LOAD-BEARING.
   A first version declared these unconditionally, and the fixed 380px aside
   then applied at 390 and 360 too -- where the viewport leaves 360px of
   content. MEASURED consequence: scrollWidth 395 against a 390 reference on
   EVERY post at 360 and 390, worst offender the aside column itself. That is
   a real horizontal-overflow regression, and it is exactly the class of defect
   the site-wide sweep exists to catch, so it must not be reintroduced.
   981px is this site's own desktop edge -- the child theme's shared mobile
   query is `@media (max-width: 980px)`. */
@media (min-width: 981px) {
  .et-l--body .ss-post-main .et_pb_column:has(.ss-post-body) {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    min-width: 0;                                  /* lets long unbroken content (URLs, code) shrink instead of forcing overflow */
  }
  .et-l--body .ss-post-main .et_pb_column:has(.ss-post-popular) {
    flex: 0 0 380px;                               /* design 380, flex-shrink 0 */
    width: 380px;
    max-width: 380px;
  }
}
/* Below 981 the aside stacks under the article and must be free to be as wide
   as the column allows -- never the fixed 380. Divi already renders both
   columns `et_flex_column_24_24`, so this only has to undo the desktop block. */
@media (max-width: 980px) {
  .et-l--body .ss-post-main .et_pb_column:has(.ss-post-body),
  .et-l--body .ss-post-main .et_pb_column:has(.ss-post-popular) {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}


/* ================================================================
   8. ASIDE -- "Latest posts" (Popular posts widget) and Share card
   Design washes: violet 7% for Popular posts, orange 7% for Share
   (Blog Post.dc.html:86,101) -- identical gradient formula already used
   sitewide for the `.ss-versus` comparison rows (style.css:6285-6287),
   reused verbatim rather than re-derived: `linear-gradient(180deg,
   rgba(R,G,B,0.07) -3.92%, rgba(255,255,255,0.07) 176.77%)`.
   Both cards: radius 20, padding 35 desktop (Blog Post.dc.html:86,101).
   NO mobile spec exists for the Popular-posts card (design REPORT.md A5:
   "DESKTOP ONLY -- absent on mobile" in the pure design) -- since the
   real markup keeps it at every width (docstring, "DELIBERATE
   DIVERGENCES"), its mobile padding/gap are INFERRED by the same
   step-down the Share card actually specifies (35->25 padding), not
   transcribed. The Share card's own mobile numbers ARE transcribed
   (Mobile Views.dc.html:638).
   SELECTOR CHANGED THIS REVISION: dropped the `.ss-post-col-aside`
   ancestor prefix -- it never reached the DOM (see the file's revision
   note), which meant this whole block, wash/radius/padding included,
   never applied. Not one of the coordinator's five reported failures
   (their check did not cover this), fixed anyway since it is the same
   proven root cause. `.ss-post-popular`/`.ss-post-share` are real,
   standalone classes on their own modules and do not need a column
   ancestor at all. */
.et-l--body .ss-post-popular,
.et-l--body .ss-post-share {
  border-radius: var(--gvid-radius-row, 20px);     /* design 20 */
  padding: 35px;                                    /* design 35 */
}
.et-l--body .ss-post-popular {
  background: linear-gradient(180deg, rgba(124, 77, 255, 0.07) -3.92%, rgba(255, 255, 255, 0.07) 176.77%);
}
.et-l--body .ss-post-share {
  background: linear-gradient(180deg, rgba(255, 112, 67, 0.07) -3.92%, rgba(255, 255, 255, 0.07) 176.77%);
}
@media (max-width: 980px) {
  .et-l--body .ss-post-popular,
  .et-l--body .ss-post-share {
    padding: 25px;                                  /* Share: design 25 (transcribed); Popular: inferred, see comment above */
  }
}

/* ---- aside headings ----
   Both use `h2.et_pb_module_header` per the markup contract (Divi's
   generic Heading-module tag), but read at two different design sizes:
   "Latest posts" = Poppins 500 25/1.2 (Blog Post.dc.html:87); the Share
   heading = Poppins 500 20/1.2 desktop, 18px mobile (Blog Post.dc.html:
   102, Mobile Views.dc.html:639). Told apart with `:has()` on the
   following sibling module, the same idiom already used live at
   style.css:5232-5247/style.css P8.2 (WebKit-verified there).
   MOBILE 25px IS ACCEPTED, NOT FOUGHT, for the Share/Popular headings --
   same reasoning as `.ss-legal`'s own h2 (style.css:8549-8567): the
   sitewide `.et-l--body h2{font-size:25px!important}` rule reaches these
   too (they are real `h2` elements), and 25px is close enough to the
   Share card's 18px design number that out-specifying an existing
   `!important` for a 2-card widget is not worth the arms race. Ceiling
   stated; upgrade path is a higher-specificity `!important` selector
   here if this is ever revisited. */
.et-l--body .ss-aside-h h2.et_pb_module_header {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: #2F2F2F;
  margin: 0;
}
@media (min-width: 981px) {
  .et-l--body .ss-aside-h:has(+ .ss-post-popular) h2.et_pb_module_header { font-size: 25px; }  /* design 25 */
  .et-l--body .ss-aside-h:has(+ .ss-post-share) h2.et_pb_module_header { font-size: 20px; }    /* design 20 */
}
/* mobile: accepted at the sitewide-forced 25px for both, see comment above -- no rule written */

/* ---- "Latest posts" list ----
   Design: card gap 25 (heading to first item, and between items), each
   item a link+date pair with its own gap 8 (Blog Post.dc.html:88).
   Link: 500 weight, 18px, LH1.3, #2F2F2F (design); date: 14px, #636363.
   The markup contract's module shape is Divi's blog-module default
   (`article.et_pb_post > h3.entry-title > a`, `p.post-meta >
   span.published`, an EMPTY `div.post-content > div.post-content-inner`)
   -- NOT the design's own literal <a>/<span> pair, so it is restyled to
   read the same: the h3 is sized/weighted like a link, not like a
   heading, and the always-empty content wrapper is hidden the same way
   `.ss-blog-grid` already hides its own (`.post-content-inner`, not
   `.post-content` -- style.css:8966-8971 documents why: `a.more-link`
   sits as a SIBLING of `.post-content-inner` inside `.post-content`, so
   hiding the outer would also hide any Read-more link. Popular posts
   have none per the design, but the technique is reused for safety and
   consistency with the Related-posts block below.) Column count (1) is
   assumed to be the module's own Divi setting, same division of
   responsibility as `.ss-blog-grid` (style.css:8806-8809: "column count
   is the module's own attribute... gap is CSS"). */
.et-l--body .ss-post-popular .et_pb_ajax_pagination_container .et_pb_blog_posts {
  display: flex;
  flex-direction: column;
  gap: 25px;                                        /* design 25 */
}
.et-l--body .ss-post-popular .et_pb_post {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 8px;                                          /* design 8 */
}
.et-l--body .ss-post-popular .entry-title {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;                                  /* design 500 */
  font-size: 18px;                                   /* design 18 */
  line-height: 1.3;                                   /* design 1.3 */
  margin: 0;
  padding: 0;
}
/* Same selector shape as `.ss-post-related .entry-title a` above, which
   measured a confirmed loss to Divi's fallback link colour -- not itself
   individually measured pass or fail, `!important` added proactively
   rather than left asymmetric now that the failure mode is proven to
   exist for this shape on this template. */
.et-l--body .ss-post-popular .entry-title a {
  color: #2F2F2F !important;                          /* design #2F2F2F */
  text-decoration: none;
}
.et-l--body .ss-post-popular .entry-title a:hover,
.et-l--body .ss-post-popular .entry-title a:focus {
  color: var(--gcid-bs9uwvujec, #7c4dff) !important;
}
.et-l--body .ss-post-popular .post-meta {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;                                    /* design 14 */
  color: #636363;                                     /* design #636363 */
  margin: 0;
  padding: 0;
}
.et-l--body .ss-post-popular .post-content-inner { display: none; }  /* always empty per the markup contract */
.et-l--body .ss-post-popular .post-content { margin: 0; padding: 0; }
@media (max-width: 980px) {
  .et-l--body .ss-post-popular .et_pb_ajax_pagination_container .et_pb_blog_posts { gap: 20px; }  /* inferred step-down, see card-level comment above */
}

/* ---- Share card ----
   Design: heading handled above; icons `width:42px;height:42px;
   border-radius:200px;background:#fff;display:inline-flex;align-items:
   center;justify-content:center`, gap 15/12 between icons desktop/mobile
   (Blog Post.dc.html:103-113 gives desktop 15; Mobile Views.dc.html:640
   gives mobile 12) -- both transcribed, not one inferred from the other.
   Card-internal gap (heading to icon row): 20 desktop (Blog Post.dc.html:
   101), 15 mobile (Mobile Views.dc.html:638) -- both transcribed. */
.et-l--body .ss-post-share .ss-share {
  display: flex;
  gap: 15px;                                          /* design desktop 15 */
  flex-direction: column;
}
.et-l--body .ss-post-share > .et_pb_code_inner,
.et-l--body .ss-post-share .ss-share {
  gap: 20px;                                          /* design 20: heading-to-icons cluster gap */
}
.et-l--body .ss-post-share .ss-share {
  flex-direction: row;                                /* icons sit in a row; the wrapper above carries the vertical cluster gap */
  gap: 15px;
}
.et-l--body .ss-post-share .ss-share-link {
  width: 42px;                                        /* design 42x42 */
  height: 42px;
  border-radius: 200px;                               /* design 200 */
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-share > .et_pb_code_inner,
  .et-l--body .ss-post-share .ss-share {
    gap: 15px;                                        /* design mobile 15 */
  }
  .et-l--body .ss-post-share .ss-share { gap: 12px; }  /* design mobile 12: icon-to-icon gap */
}


/* ================================================================
   9. RELATED POSTS
   Design: H2 Poppins 600 35/1 LS-0.03em desktop (mobile 25, already
   forced sitewide -- see H2 note in section 6, same rule reaches this
   H2 too since it is also a real `h2`); 3-up flex grid gap 20 desktop
   (Blog Post.dc.html:123-125), stacked single column gap 25 mobile
   (Mobile Views.dc.html:647,649) -- STAYS 3 CARDS on mobile per the
   brief's stated divergence (design draws 2); nothing card-count
   specific is written here, the flex-column layout holds any count.
   Column count (3) assumed to be the module's own Divi setting, same
   division of responsibility as `.ss-blog-grid` (style.css:8806-8809).
   NOT built as CSS grid -- flexbox + flex-basis, matching this file's
   own established technique for the same shape (`.ss-cards-3`,
   style.css:4217-4232) and avoiding the documented landmine of
   `display:grid` swallowing bare text/inline runs as grid items. This
   module's own children are discrete `<article>` cards, not prose, so
   the landmine does not directly apply here either way -- flexbox is
   still used for consistency with the rest of this file.

   THIS H2 RULE WAS ENTIRELY DEAD BEFORE THIS REVISION. It depended on
   `.ss-post-col-rel`, one of the four column classes that never reached
   the DOM (see the file's revision note) -- measured live at 26px/500/
   rgb(51,51,51) at 1440, which is Divi's plain parent-theme h2 fallback
   with zero competing rules (the same fallback already documented for
   the homepage, style.css ~7370-7380: "h2 26px/500/#333 ... confirmed by
   walking the live CSSOM, zero competing rules"), not a specificity
   loss. There is exactly one column in the Related row per the markup
   contract, so `.ss-post-relsec .et_pb_column` reaches it with no
   `:has()` needed. `!important` added on top of the fix, not just the
   selector -- this rule has now failed once already for an unrelated
   reason, and the competing value it needs to beat (Divi's fallback) is
   confirmed real and unguarded, so there is no reason to ship a second,
   still-unproven "should win on specificity" attempt. */
.et-l--body .ss-post-relsec .et_pb_column .ss-related-h h2.et_pb_module_header {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;                        /* design 600, live measured 500 */
  line-height: 1 !important;                           /* design 1 */
  letter-spacing: -0.03em !important;                  /* design -0.03em */
  color: var(--gcid-90suxw02k0, #2f2f2f) !important;   /* design #2F2F2F, live measured rgb(51,51,51) */
  margin: 0 !important;
}
@media (min-width: 981px) {
  .et-l--body .ss-post-relsec .et_pb_column .ss-related-h h2.et_pb_module_header {
    font-size: 35px !important;                        /* design 35, live measured 26 */
  }
}
/* mobile 25px already forced sitewide (style.css:629-632), matches design's own mobile 25 exactly */

.et-l--body .ss-post-related .et_pb_blog_posts {
  display: flex;
  flex-wrap: wrap;
  column-gap: 20px;                                   /* design 20 */
  row-gap: 20px;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-related .et_pb_blog_posts {
    flex-direction: column;                             /* design mobile: stacked single column */
    gap: 25px;                                          /* design mobile 25 */
  }
}
.et-l--body .ss-post-related .et_pb_post {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 15px;                                            /* design 15, matching Blog Post.dc.html:126 */
  flex: 1 1 calc((100% - 40px) / 3);                    /* 3-up, two 20px gaps -- module setting assumed to hold 3, see comment above */
  max-width: calc((100% - 40px) / 3);
}
@media (max-width: 980px) {
  .et-l--body .ss-post-related .et_pb_post {
    flex-basis: 100%;
    max-width: 100%;
  }
}
.et-l--body .ss-post-related .et_pb_image_container {
  margin: 0;
  line-height: 0;                                       /* kills the phantom line-box, same fix as `.ss-blog-grid` (style.css:8839-8846) */
  height: 320px;                                         /* design 320 -- NOT the same number as `.ss-blog-grid`'s mobile 220, see docstring */
}
.et-l--body .ss-post-related .et_pb_image_container img,
.et-l--body .ss-post-related .et_pb_image_container a {
  display: block;
  width: 100%;
  height: 100%;
}
.et-l--body .ss-post-related .et_pb_image_container img {
  object-fit: cover;                                     /* design cover */
  border-radius: var(--gvid-radius-card, 30px);          /* design 30 */
}
.et-l--body .ss-post-related .et_overlay { display: none; }  /* design draws no hover overlay, same as `.ss-blog-grid` */
@media (max-width: 980px) {
  .et-l--body .ss-post-related .et_pb_image_container { height: 200px; }  /* design mobile 200 */
}

/* post-meta: design shows a plain date, no colour override (inherits root
   #2F2F2F, Blog Post.dc.html:128) -- but this diverges to the SAME
   #636363-quiet treatment `.ss-blog-grid` already uses (style.css:
   8918-8945), on purpose: the brief itself says this row "emits IDENTICAL
   markup" to `.ss-blog-grid`, and the real theme will print the same full
   category-link list here that made `.ss-blog-grid` need the quieting in
   the first place. Reusing that decision rather than re-deciding it. */
.et-l--body .ss-post-related .post-meta {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 18px;                                       /* design 18 */
  line-height: 1.2;                                       /* design 1.2 */
  color: #636363;                                          /* diverges from a literal read of the design, see comment above */
  margin: 0;
  padding: 0;
}
.et-l--body .ss-post-related .post-meta a {
  color: #636363;
  text-decoration: none;
}
.et-l--body .ss-post-related .post-meta a:hover,
.et-l--body .ss-post-related .post-meta a:focus {
  color: var(--gcid-bs9uwvujec, #7c4dff);
  text-decoration: underline;
}
.et-l--body .ss-post-related .entry-title {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;                                       /* design 500 */
  font-size: 25px;                                         /* design 25 */
  line-height: 1.2;                                         /* design 1.2 */
  letter-spacing: -0.03em;                                  /* design -0.03em */
  margin: 0;
  padding: 0;
}
/* MEASURED live at rgb(51,51,51): this template has no `.ss-sec` ancestor
   to build the usual `:not()`-chain specificity escalation `.ss-blog-grid`
   uses for the identical fight (style.css:8898-8905), so this is a tie-or-
   loss against Divi's own post-title link colour. `!important` used
   directly rather than re-attempted without it. */
.et-l--body .ss-post-related .entry-title a {
  color: #2F2F2F !important;                                /* design #2F2F2F, live measured rgb(51,51,51) */
  text-decoration: none;
}
.et-l--body .ss-post-related .entry-title a:hover,
.et-l--body .ss-post-related .entry-title a:focus {
  color: #5B2EE0 !important;                                /* matches `.ss-blog-grid`'s own hover, style.css:8983 */
}
.et-l--body .ss-post-related .post-content-inner { display: none; }  /* design draws no excerpt, same reasoning as `.ss-blog-grid` */
.et-l--body .ss-post-related a.more-link {
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;                                         /* design 500 */
  font-size: 20px;                                           /* design 20 */
  line-height: 1.1;                                           /* design 1.1 */
  color: var(--gcid-bs9uwvujec, #7c4dff);
  text-decoration: none;
}
.et-l--body .ss-post-related a.more-link:hover,
.et-l--body .ss-post-related a.more-link:focus {
  color: #5B2EE0;
  text-decoration: underline;
}
@media (max-width: 980px) {
  .et-l--body .ss-post-related .post-meta { font-size: 14px; }      /* design mobile 14 */
  .et-l--body .ss-post-related .entry-title { font-size: 20px; }    /* design mobile 20 */
  .et-l--body .ss-post-related a.more-link { font-size: 16px; }     /* design mobile 16 */
}


/* ================================================================
   10. CTA BANNER -- NO NEW CSS
   `.ss-cta` / `.ss-btn-primary` are already fully styled sitewide,
   dual-scoped `.et-l--post, .et-l--body` (style.css ~4786-5900): radius
   30, violet gradient, H2 60/30 with the 942px max-width + text-wrap:
   balance, button padding 12px/35px. The coordinator's own contract
   confirms the CTA's design line is "byte-identical" across Feature
   Page/Industry Page/Features/Pricing/Comparison/Blog Post. Nothing to
   add; restated here only so it is not mistaken for an oversight. */


/* ================================================================
   11. SUBSCRIBE BAND -- THE REQUIRED FINDING
   `form.ss-subscribe` is currently styled ONLY under
   `body.page-id-987489070` (the homepage), and only inside
   `@media(max-width:980px)` at that -- 4 selector lines total
   (style.css:1518-1550). This template puts the same shared Subscribe
   band on all 304 posts, whose input and Submit button currently render
   as unstyled browser chrome (grey-bordered field, native OS button) on
   an orange card. Two alternatives follow, clearly separated; the
   coordinator picks one (or neither, if a different fix is already
   planned elsewhere) -- not decided here.
   Values transcribed from Blog Post.dc.html:154-161 (desktop: row, input
   width 250, gap 20) and Mobile Views.dc.html:670-675 (mobile: column,
   full-width input, centred full-width Submit, padding 15px 30px). Only
   the input and button are styled -- the band's own background/radius/
   flex-direction is NOT given a class in the markup contract handed to
   this pass, so it is out of scope here (assumed already handled
   elsewhere, since the brief's own finding is specifically "input and
   button unstyled", not the band's shape). */

/* ---- (a) PAGE-LOCAL FIX -- scoped to `.et-l--body` ----
   No single page-id applies here (this is one Theme Builder template
   shared by 304 different post IDs, not one page) -- `.et-l--body` is
   the closest equivalent: it reaches every post using this template and
   NOTHING else (other templates render under `.et-l--post`). BLAST
   RADIUS: this template only, 304 posts, today. Cannot move anything
   else on the site. */
.et-l--body form.ss-subscribe {
  display: flex;
  align-items: center;
  gap: 20px;                                          /* design 20 */
  flex-wrap: wrap;
}
.et-l--body form.ss-subscribe input[type="email"] {
  font-family: inherit;
  font-size: 14px;
  color: #ffffff;
  background: transparent;
  border: 1px solid #ffffff;
  border-radius: 100px;
  padding: 13px 20px;
  outline: none;
  box-sizing: border-box;
  width: 250px;                                       /* design 250 */
}
.et-l--body form.ss-subscribe input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.75);
}
.et-l--body form.ss-subscribe button {
  font-family: inherit;
  font-weight: 500;
  font-size: 20px;                                     /* design 20 */
  line-height: 1;
  color: var(--gcid-6spcyv8qzp, #ff7043);
  background: #ffffff;
  border: 0;
  border-radius: 100px;
  padding: 12px 30px;                                   /* design 12px 30px */
  cursor: pointer;
}
@media (max-width: 980px) {
  .et-l--body form.ss-subscribe {
    flex-direction: column;
    align-items: stretch;
  }
  .et-l--body form.ss-subscribe input[type="email"] {
    width: 100%;
  }
  .et-l--body form.ss-subscribe button {
    font-size: 18px;                                    /* design mobile 18 */
    padding: 15px 30px;                                  /* design mobile 15px 30px */
    text-align: center;
  }
}

/* ---- (b) CENTRAL FIX -- unscoped, reaches `.ss-subscribe` sitewide ----
   Same declarations, deliberately with NO `.et-l--body`/`.et-l--post`
   ancestor, so any current or future page carrying `form.ss-subscribe`
   is fixed at once -- including the homepage's still-broken DESKTOP view
   (the existing page-id-987489070 rule only ever covered <=980px; this
   also closes that gap). BLAST RADIUS: every page on the site that uses
   this shared code module, today and going forward -- specificity is
   deliberately left LOW (no id/page-scoping) so a future page-specific
   override still wins over this without needing `!important`. What
   could beat it: any selector with one more class or an id, e.g. the
   existing `body.page-id-987489070 ... form.ss-subscribe input[type=
   "email"]` mobile rule (style.css:1524) is MORE specific than this and
   would keep winning on the homepage at <=980 -- harmless, since the
   values are the same design numbers; use option (a) instead of (b) if
   that overlap is unwanted. Choose ONE of (a)/(b), not both, to avoid
   asking "which one actually applied" later. */
/*
form.ss-subscribe {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
form.ss-subscribe input[type="email"] {
  font-family: inherit;
  font-size: 14px;
  color: #ffffff;
  background: transparent;
  border: 1px solid #ffffff;
  border-radius: 100px;
  padding: 13px 20px;
  outline: none;
  box-sizing: border-box;
  width: 250px;
}
form.ss-subscribe input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.75);
}
form.ss-subscribe button {
  font-family: inherit;
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  color: var(--gcid-6spcyv8qzp, #ff7043);
  background: #ffffff;
  border: 0;
  border-radius: 100px;
  padding: 12px 30px;
  cursor: pointer;
}
@media (max-width: 980px) {
  form.ss-subscribe {
    flex-direction: column;
    align-items: stretch;
  }
  form.ss-subscribe input[type="email"] {
    width: 100%;
  }
  form.ss-subscribe button {
    font-size: 18px;
    padding: 15px 30px;
    text-align: center;
  }
}
*/


/* === SS NARROW-BODY + CENTRAL SUBSCRIBE, 2026-09-09 === */

/* ---------------------------------------------------------------------------
   PART A -- the article measure on posts carrying a legacy Divi tree.

   THE DEFECT. 188 of 304 posts store their own Divi section/row/column tree
   inside `post_content`. The Theme Builder body layout gives every post a 702px
   article column; that inner tree then re-divides it, and NOT ONE of the 188
   reaches the design measure -- they land between 120px and 602px. At 120px
   that is about eleven characters a line. Measured across all 304 posts at 1440
   and 390: `body-measure-sweep/findings.json`.

   THE CAUSE, named. Divi's own full-bleed single-post overrides carry
   `:not(.et-tb-has-body)` guards, so activating the body layout switched them
   off and left the stored geometry resolving against 702px instead of the old
   full-bleed width. Three declarations stack: `--content-width: 80%` on every
   legacy row, the post's stored `width: 47%` section, and its stored
   `margin: 0 50px` row. The arithmetic reproduces the measurements to
   sub-pixel -- 702 x 0.47 - 100 = 229.94 against a measured 229.9375.

   FOUR THINGS TO KNOW BEFORE EDITING THIS BLOCK:

   1. BOTH HALVES OF THE SCOPE ARE LOAD-BEARING. `.ss-post-body` is on the
      post-content MODULE (columns silently drop `htmlAttributes`; modules do
      not), and `.et_block_*` are Divi's LEGACY layout classes -- this site's own
      Divi 5 bands render `et_flex_*`. Measured: the selector matches 0 elements
      across all 98 page surfaces, but 76 of those 98 carry real `.et_block_row`
      elements. Drop `.ss-post-body` and this reaches three quarters of the site.

   2. `!important` IS REQUIRED, NOT LAZY. The declarations being overridden are
      themselves `!important` and come from a per-post stylesheet at equal
      specificity.

   3. THIS ALSO WIDENS 109 POSTS THAT ALREADY READ ACCEPTABLY (562 -> 702). That
      is deliberate and was the owner's explicit call, made for consistency: all
      188 legacy posts move to the same measure as the 116 plain ones. It is a
      restyle of roughly a third of the blog, not only a repair of the worst 79.

   4. IT DOES NOT REACH EVERYTHING. 25 posts stop at exactly 582px because their
      article text sits inside a CTA/promo module carrying 60px of horizontal
      padding, and 5 stop at 503px from a cause not yet chased. The CTA rule is
      below, behind `INCLUDE_CTA_RULE`.

   Simulated before shipping by injecting these exact bytes into the live page
   and re-measuring with the survey's own instrument: 77 of 79 narrow posts
   reach an acceptable measure, 0 regressions across 34 stratified controls,
   0 new sideways scroll, median body width 266.8 -> 700.4px.
   --------------------------------------------------------------------------- */

.et-l--body .ss-post-body .et_pb_section.et_block_section {
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.et-l--body .ss-post-body .et_pb_row.et_block_row {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.et-l--body .ss-post-body .et_block_row > .et_pb_column {
  width: 100% !important;
  margin-right: 0 !important;
}

/* The fourth rule, INSTANCE-SCOPED -- 32 modules across 26 posts.

   These posts store article body copy inside a Divi CTA/promo module, which
   carries 60px of horizontal padding. That is what stops them at exactly 582px
   (702 - 120) after the three rules above. Removing it takes them to 702;
   measured 25/25 on the straggler cohort.

   IT IS DELIBERATELY NOT WRITTEN AS `.et_pb_module.et_pb_promo`. The blanket
   form also reaches 35 GENUINE promo modules, and 12 of those across 6 posts
   are visibly damaged by it -- tinted callout boxes and one banner whose text
   reflows to fill the wider box and lands flush against a coloured edge,
   confirmed at the pixels on `pos-deposits`. Four of those 6 posts hold BOTH a
   misused and a genuine module, so no post-level scope separates them either.
   The per-post module class Divi already emits is the only hook that does.

   Generated from `cta-band-census/findings.json`'s MISUSED bucket at build
   time, so it cannot drift from the classification. */
body.postid-209492 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* no-more-unwanted-appointment-gaps */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-209492 .et-l--body .ss-post-body .et_pb_cta_1.et_pb_promo {  /* no-more-unwanted-appointment-gaps */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-209492 .et-l--body .ss-post-body .et_pb_cta_2.et_pb_promo {  /* no-more-unwanted-appointment-gaps */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-209492 .et-l--body .ss-post-body .et_pb_cta_3.et_pb_promo {  /* no-more-unwanted-appointment-gaps */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-235180 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* wait-list */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-235581 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* new-customers-without-spending-a-cent */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236248 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* booking-software-security */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236355 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* why-simple-salon-is-not-right-for-you */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236444 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* boost-cash-flow */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236509 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* 6-new-features */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236624 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* 5-online-bookings-innovations */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236831 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* make-your-products-their-go-tos */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236831 .et-l--body .ss-post-body .et_pb_cta_1.et_pb_promo {  /* make-your-products-their-go-tos */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-236905 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* 3-stunning-reports */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237028 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* photos-and-files */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237067 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* vouchers-and-packages */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237146 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* automatic-marketing */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237181 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* book-now-button */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237220 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* bookings-through-facebook-messenger */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237378 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* turn-them-into-a-team */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237422 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* new-salon-memberships */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237590 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* excellent-customer-support */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237590 .et-l--body .ss-post-body .et_pb_cta_4.et_pb_promo {  /* excellent-customer-support */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237685 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* sustainable-salon-fee */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237714 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* value-add-upselling */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237842 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* last-client-referred */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237842 .et-l--body .ss-post-body .et_pb_cta_1.et_pb_promo {  /* last-client-referred */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-237876 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* selling-products */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-238134 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* pos-deposits */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-238286 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* beta-online-bookings */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-238329 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* new-online-bookings */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.postid-239331 .et-l--body .ss-post-body .et_pb_cta_0.et_pb_promo {  /* new-forms */
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* ---------------------------------------------------------------------------
   PART B -- `form.ss-subscribe` above 980px.

   THE DEFECT, and it is on the homepage. The subscribe band's four styling
   rules are scoped `body.page-id-987489070 .et-l--post ...` AND sit inside
   `@media (max-width: 980px)`. So above 980px the homepage's subscribe form has
   never had any author styling at all: it renders a grey-bordered browser field
   and a native blue OS "Submit" button on the orange band. Confirmed against a
   bare zero-CSS control rendered in the same engine, and at the pixels.

   WHY UNSCOPED. 107 surfaces were fetched -- all 96 pages in `manifests`, 11
   archive/hub surfaces, 10 posts. EXACTLY 11 render `form.ss-subscribe`: the
   homepage and the blog posts. There is no third page, so "unscoped" has a
   measured blast radius of zero. The premise this was originally reasoned from
   -- that about seven other pages carry inline copies -- is false.

   WHY THE PAGE-LOCAL `.et-l--body` RULES FROM THE BLOG-POST PASS ARE LEFT IN
   PLACE, rather than being deleted as that pass's own comment suggested.
   Deleting them would mean EDITING existing bytes of `style.css`; appending
   keeps this pass a pure append, which is what makes its revert byte-exact.
   The two carry IDENTICAL declarations, and `.et-l--body form.ss-subscribe`
   (0,2,1) outranks `form.ss-subscribe` (0,1,1) regardless of order, so posts go
   on being styled by the page-local rules and the homepage desktop view is
   picked up by these. Same rendering either way; strictly safer revert. If the
   duplication is ever tidied, delete the page-local block -- not this one.

   The homepage's own `<=980px` rules are MORE specific than these and keep
   winning below 980, which is intended: same design numbers, no mobile change.

   `var(--gcid-6spcyv8qzp, #ff7043)` keeps a literal fallback, per the standing
   rule that a token is never written without one.
   --------------------------------------------------------------------------- */
form.ss-subscribe {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
form.ss-subscribe input[type="email"] {
  font-family: inherit;
  font-size: 14px;
  color: #ffffff;
  background: transparent;
  border: 1px solid #ffffff;
  border-radius: 100px;
  padding: 13px 20px;
  outline: none;
  box-sizing: border-box;
  width: 250px;
}
form.ss-subscribe input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.75);
}
form.ss-subscribe button {
  font-family: inherit;
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  color: var(--gcid-6spcyv8qzp, #ff7043);
  background: #ffffff;
  border: 0;
  border-radius: 100px;
  padding: 12px 30px;
  cursor: pointer;
}
@media (max-width: 980px) {
  form.ss-subscribe {
    flex-direction: column;
    align-items: stretch;
  }
  form.ss-subscribe input[type="email"] {
    width: 100%;
  }
  form.ss-subscribe button {
    font-size: 18px;
    padding: 15px 30px;
    text-align: center;
  }
}

/* === END SS NARROW-BODY + CENTRAL SUBSCRIBE === */


/* === sswebsite bodyh1-fix 2026-09-11 === */
/* ==========================================================================
   bodyh1-fix -- heading markup correction on 19 legacy blog posts
   2026-09-11.  Candidate; proved by sim.js before anything is written.

   WHAT THIS IS FOR
   These 19 posts author body prose as <h1> in the phone copy and <h2> in the
   desktop copy. The prose becomes <p>, and the CTA band's heading becomes <h2>.
   THE OWNER'S RULING (2026-09-11): the demoted sentences KEEP the look they
   have today. So this file exists to make a tag change invisible -- every
   number in it is a MEASURED computed value from PRE.json, not a design choice.
   That is what makes the check binary: after the change, every one of these
   elements must compute IDENTICALLY to its PRE value at 2560, 1440, 768 and
   390. One differing property is a failure.

   SPECIFICITY, AND WHY EVERY RULE CARRIES !important
   The Blog Post template already styles the article body hard:
       .et-l--body .ss-post-body p  { font-family/line-height/color !important }
       .et-l--body .ss-post-body h2 { font-family/weight/line-height/... !important }
   Both are (0,2,1). Adding the element's own class takes these to (0,3,1), which
   wins outright; !important is still needed because the template's declarations
   carry it. This is NOT specificity inflation for its own sake -- without it a
   demoted sentence would silently pick up 18px Nunito body styling, which is
   precisely the regression the owner ruled against.

   NO ORDINALS. Every selector is keyed on a class or a post id, never on
   .et_pb_text_7 or an nth-child -- inserting a module renumbers those.
   ========================================================================== */

/* -------------------------------------------------------------------------
   1. DEMOTED LEAD SENTENCES  ->  <p class="ss-post-lead">

   27 opening sentences plus one section intro. Measured across all 19 posts,
   the visible values are uniform:

       >= 981px   the DESKTOP copy (was <h2>)
                  Montserrat 500 / 32px / 44.8px / -1px / #0A223E / mb 16px
       <= 980px   the PHONE copy   (was <h1>)
                  Montserrat 500 / 30px / 42px   / -1px / #333333 / mb 0

   One class serves both copies: each copy is only ever visible on its own side
   of 980px, so the media split hands each element the values it renders with
   today. Line-heights are written as em (1.4em x 32 = 44.8, x 30 = 42) because
   that is how the source rules express them and it keeps the arithmetic legible.
   ------------------------------------------------------------------------- */
.et-l--body .ss-post-body p.ss-post-lead {
  font-family: Montserrat, Helvetica, Arial, Lucida, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: -1px !important;
  line-height: 1.4em !important;
  text-align: left !important;
  margin-top: 0 !important;
  /* Divi puts padding-bottom:10px on headings inside a text module and
     padding-bottom:1em on paragraphs. Left unpinned, a demoted 32px sentence
     gained 22px of space below it at desktop and lost 10px on the phone --
     caught by the simulator, not by reading the stylesheet. Every visible
     target measures 0/10 at every width, so it is one rule, not a table. */
  padding-top: 0 !important;
  padding-bottom: 10px !important;
}

@media (min-width: 981px) {
  .et-l--body .ss-post-body p.ss-post-lead {
    font-size: 32px !important;
    color: #0A223E !important;
    margin-bottom: 16px !important;
  }
}

@media (max-width: 980px) {
  .et-l--body .ss-post-body p.ss-post-lead {
    font-size: 30px !important;
    color: #333333 !important;
    margin-bottom: 0 !important;
  }
}

/* Seven of these elements render at line-height 1.1em rather than 1.4em below
   768px, from a phone rule in their own post's stored CSS that is keyed on the
   h1 tag and so cannot follow them to a <p>.

   THIS WAS SCOPED BY POST ID FIRST, AND THAT WAS WRONG. 237842 holds one
   element of each kind, so a post-wide override re-spaced the one that was
   already correct -- caught by the simulator as a single 42px -> 33px change on
   a sentence a reader sees. The exception belongs to the element, not the post,
   so plan.py marks the element and this rule follows the mark. Only two ratios
   exist across all 28 demoted sentences, 1.4 and 1.1; a third would show up in
   plan.json's lh_exceptions rather than being silently rounded into one of them. */
@media (max-width: 767px) {
  .et-l--body .ss-post-body p.ss-post-lead-tight { line-height: 1.1em !important; }
}

/* -------------------------------------------------------------------------
   2. THE CTA BAND HEADING  ->  <h2 class="ss-post-cta-h">

   12 elements across 6 posts: "Make more of your story today". Each post holds
   THREE copies of this heading and all three are in use -- the <h2> renders
   above 980px, one <h1> at 768, the other <h1> at 390. An earlier proposal to
   delete a "duplicate" band would have removed the tablet one; measured, none
   is dead. So all 12 <h1>s become <h2>, and none is deleted.

   All 12 are hidden above 980px, so only the <= 980px values matter. They are
   preserved exactly, including the Yeseva One display face and the -3px
   tracking -- this is a 2018 band and the job is the outline, not a restyle.

   THE SELECTOR IS LONG ON PURPOSE. style.css:648-660 carries
       .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h1
           { font-size: 30px !important }
       ...the same for h2 at 25px
   at (0,4,1). That h1 arm is exactly what makes these headings 30px today, so
   changing the tag to h2 hands them to the 25px arm of the same rule. At
   (0,3,1) this block lost only font-size and every other property took, which
   is what the simulator reported: one property, six elements, both mobile
   widths. Mirroring the sitewide selector and adding the class makes it
   (0,5,1). style.css:8062 already does this for the same reason.
   ------------------------------------------------------------------------- */
@media (max-width: 980px) {
  .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h2.ss-post-cta-h,
  .et-l--body .ss-post-body h2.ss-post-cta-h {
    font-family: "Yeseva One", fantasy !important;
    font-weight: 600 !important;
    font-size: 30px !important;
    line-height: 24px !important;
    letter-spacing: -3px !important;
    color: #252E46 !important;
    text-align: center !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 10px !important;
  }
}

/* -------------------------------------------------------------------------
   3. NEW SECTION HEADINGS  ->  <h2 class="ss-post-h2">

   The 67 new subheadings are new elements, so there is nothing to preserve --
   they take the Blog Post template's own H2 scale. They need a class anyway:
   without one, a new <h2> inside a module that carries its own h2 rules renders
   32px Montserrat, and inside a module that does not it renders 35px Poppins.
   Measured on these posts: both happen. Two looks for one kind of heading, on
   the same page, is the thing the class prevents.

   Values are the template's declared H2 (blogpost_css.py) with ONE deliberate
   difference: colour. The template declares #2F2F2F, but every one of the 34
   <h2>s now on these 19 posts computes rgb(10,34,62) -- something later wins.
   Matching what a reader actually sees beats matching what the file declares,
   so #0A223E it is. To go back to the template's own value, change this one
   line.
   ------------------------------------------------------------------------- */
.et-l--body .ss-post-body h2.ss-post-h2 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em !important;
  color: #0A223E !important;
  text-align: left !important;
  margin: 1.2em 0 0.5em !important;
}
@media (min-width: 981px) {
  .et-l--body .ss-post-body h2.ss-post-h2 { font-size: 35px !important; }
}
/* Same (0,4,1) sitewide rule as the CTA heading above: below 980px any <h2>
   inside a module is forced to 25px !important. 25px is also the value wanted
   here, so at (0,3,1) this would look correct while being decided by a rule
   that is not about this pass at all. Written at (0,5,1) so the number on the
   page is the number in this file. */
@media (max-width: 980px) {
  .et-l--body .et_builder_inner_content .et_pb_section .et_pb_module h2.ss-post-h2,
  .et-l--body .ss-post-body h2.ss-post-h2 { font-size: 25px !important; }
}

/* A promoted lead-in keeps its link, and several of them are wrapped in
   <b><i>. The heading already carries its own weight, and an italic heading is
   not this template's voice, so neither is allowed to restyle it. The link
   keeps its colour so it still reads as a link. */
.et-l--body .ss-post-body h2.ss-post-h2 b,
.et-l--body .ss-post-body h2.ss-post-h2 strong,
.et-l--body .ss-post-body h2.ss-post-h2 i,
.et-l--body .ss-post-body h2.ss-post-h2 em {
  font-weight: inherit !important;
  font-style: normal !important;
}
/* === sswebsite bodyh1-fix 2026-09-11 === ends */


/* ---- /how-much/ DESKTOP type + spacing scale (howmuch-desktop, 2026-09-16) ---- */
/* Closes the finding that this page renders its PHONE type scale at every
   width: the H1 is 30px on a 27" screen where the design says 60px.
   SS28 deferred the desktop type scale, not desktop generally.

   EVERY RULE IN THIS BLOCK IS INSIDE @media (min-width: 981px), including the
   handful whose design value is identical at both widths. Mobile is the owner's
   priority and is signed off; scoping the whole block makes "mobile did not
   move" a structural property of the pass rather than a claim to be verified
   rule by rule. Items that are ALSO wrong below 981 are listed in targets.py's
   EXCLUDED with their reason, not folded in here.

   981 is not a new breakpoint. It is the complement of the `max-width: 980px`
   query this stylesheet already uses throughout, and `.ss-legal` above already
   uses `min-width: 981px`. SS1 says keep 980 and ask before adding a third set.

   TWO ROWS ARE ABSENT ON PURPOSE, and their absence is the point:
     .ss-compare-cat      margin-bottom  -- live 15px already IS the design's
     savings-note         font-size      -- live 14px already IS the design's
   Both are wrong only on the phone. Writing the 390 value unscoped is the naive
   fix, and it would regress desktop. targets.py asserts both did not move.

   SPECIFICITY. Divi's per-module generated CSS and its inline critical CSS both
   load AFTER this file, so an equal-specificity tie is a LOSS. Measured with
   cssom_walk.py, the two that actually fight back are:
     the promo button's font-size  -- (1,4,1), not !important
     the promo button's padding    -- (0,5,0) !important
   `!important` beats any non-important declaration outright, but among
   important ones ordinary specificity still applies -- so the button rules add
   `#page-container` to carry an id and clear (0,5,0). Nothing else on this page
   needed more than the page class.

   All numbers are transcribed from managed-agents-design-export/Pricing.dc.html
   by line, twice, independently. Where the two readings disagreed the design
   file was read a third time; the violet cards' SMS line is 18px (line 100),
   not the 20px the earlier work order recorded from the Starter card. */

@media (min-width: 981px) {

  /* ---- hero ---------------------------------------------------------- */
  /* design line 45: nav gap 7px. line 44: 70px from the nav to the hero
     content block -- live carries that as the nav's own margin-bottom. */
  body.page-id-987491327 .ss-crumbs {
    gap: 7px;
    margin-bottom: 70px;
  }

  /* design line 52: Poppins 600 / 60px / line-height 1 / -0.03em.
     Weight, family and colour are already correct and are left alone -- colour
     deliberately stays on the site token rather than the design's #000000,
     following the recorded decision in SS9. line 51: the title block's
     35px flex gap; live expresses that as the heading's own padding-bottom,
     which Divi sets to 10px for any heading inside a text module. */
  body.page-id-987491327 .et-l--post .et_builder_inner_content .et_pb_section .et_pb_module h1 {
    font-size: 60px !important;
    line-height: 1 !important;
    padding-bottom: 35px;
  }

  /* design line 53: 20px / 1.2. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(h1) .et_pb_text_inner p {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }

  /* ---- staff control -------------------------------------------------- */
  /* design line 54: padding 12px 30px, 500 / 20px / 1. */
  body.page-id-987491327 .ss-staff-label {
    padding: 12px 30px;
    font-size: 20px;
    line-height: 1;
  }

  /* design line 57: track height 15px. live 8px matches neither design. */
  body.page-id-987491327 .ss-staff-range {
    height: 15px;
  }

  /* design line 59: 26px disc, 5px solid #000000, offset -6px.
     border-box so the border eats into the 26px rather than adding to it,
     matching the <=980 rule Phase A wrote for the same element. */
  body.page-id-987491327 .ss-staff-range::-webkit-slider-thumb {
    width: 26px;
    height: 26px;
    border: 5px solid #000000;
    box-sizing: border-box;
  }

  /* design line 56: 15px between the track and the tick row. live 10px. */
  body.page-id-987491327 .ss-staff-ticks {
    margin-top: 15px;
  }

  /* design line 63: 20px ticks. live 14px -- the widest gap in this family. */
  body.page-id-987491327 .ss-staff-tick {
    font-size: 20px;
  }

  /* ---- period toggle --------------------------------------------------- */
  /* design lines 69-70: padding 10px 30px, 500 / 20px / 1. Live's 9px 24px is
     the MOBILE design's own number, so this is an addition, not a correction. */
  body.page-id-987491327 #divPricePeriod .lnkPricePeriod,
  body.page-id-987491327 #divPricePeriod a.lnkPricePeriod {
    padding: 10px 30px !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  /* design line 67: the toggle and the savings note are SIBLINGS inside
     `display:flex; align-items:center; gap:15px`. That is an axis change, not a
     gap number -- the phone stacks them and the desktop sets them side by side,
     and no amount of adjusting a vertical gap produces it.

     Live has them as two sibling modules in a `display:block` Divi column, with
     the toggle centred by `margin: 0 auto`. Those auto margins must go, or in a
     flex row they push the note to the far edge. The note's own module is full
     width and would take all the free space, so it is allowed to shrink to its
     content. Nothing here keys on an ordinal: the column is addressed by the
     module it contains. */
  body.page-id-987491327 .et_pb_column:has(> #divPricePeriod) {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    column-gap: 15px;
  }

  body.page-id-987491327 .et_pb_column:has(> #divPricePeriod) > #divPricePeriod,
  body.page-id-987491327 .et_pb_column:has(> #divPricePeriod) > .et_pb_text {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: auto;
    flex: 0 0 auto;
  }

  /* ---- plan cards ------------------------------------------------------ */
  /* design line 75: card padding 35px. Live's 25px is the mobile number.
     The design's SECOND gap -- 25px between the card's outer children, with
     15px only inside the name/price/CTA cluster -- is NOT written here: live
     has no nested cluster to hang it on (see targets.py EXCLUDED). */
  body.page-id-987491327 .et_pb_column:has(> .starter_price),
  body.page-id-987491327 .et_pb_column:has(> .pro_price),
  body.page-id-987491327 .et_pb_column:has(> .max_price) {
    padding: 35px;
  }

  /* design line 77: the white card's name is 25px. lines 93/110: the violet
     cards' names are 14px uppercase -- the design deliberately shrinks them
     because the PRICE is the hero on those cards. */
  body.page-id-987491327 .et_pb_column:has(> .starter_price) .ss-plan-head h3 {
    font-size: 25px !important;
  }

  body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-plan-head h3,
  body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-plan-head h3 {
    font-size: 14px !important;
  }

  /* design line 94: chip padding 5px 16px. The MOBILE frame draws 5px 14px and
     live carries that -- a genuine disagreement between the two design
     documents, resolved per-viewport rather than silently. */
  body.page-id-987491327 .ss-plan-chip .et_pb_text_inner p {
    padding: 5px 16px;
  }

  /* design line 79: price 35px. line 78: 10px to its unit. line 80: unit 14px. */
  body.page-id-987491327 .starter_price.ss-price-row > .et_pb_text_inner,
  body.page-id-987491327 .pro_price.ss-price-row > .et_pb_text_inner,
  body.page-id-987491327 .max_price.ss-price-row > .et_pb_text_inner,
  body.page-id-987491327 .starter_price.ss-price-row > .et_pb_text_inner p,
  body.page-id-987491327 .pro_price.ss-price-row > .et_pb_text_inner p,
  body.page-id-987491327 .max_price.ss-price-row > .et_pb_text_inner p {
    font-size: 35px !important;
  }

  /* The 8px is set by `... .et_pb_column:has(> .starter_price) > .starter_price`
     at (0,5,1), as the SHORTHAND `gap`. A `column-gap` longhand on the shorter
     `.ss-price-row` (0,2,1) loses twice over -- on specificity, and because the
     shorthand resets the longhand anyway. The simulator caught it; reading the
     stylesheet would not have, because the rule that wins does not mention
     `.ss-price-row` at all. Matched to the same chain and the same shorthand,
     winning on source order as the later rule in the same file. */
  body.page-id-987491327 .et_pb_column:has(> .starter_price) > .starter_price,
  body.page-id-987491327 .et_pb_column:has(> .pro_price) > .pro_price,
  body.page-id-987491327 .et_pb_column:has(> .max_price) > .max_price {
    gap: 10px;
  }

  body.page-id-987491327 .ss-price-row .permth .et_pb_text_inner,
  body.page-id-987491327 .ss-price-row .permth p {
    font-size: 14px !important;
  }

  /* design line 82: the WHITE card's SMS line is 20px / 1.
     design lines 100 and 115: the VIOLET cards' is 18px / 1.2. Two different
     numbers -- the earlier work order recorded 20px for both, having read the
     Starter card's value for the violet ones. */
  body.page-id-987491327 .starter_sms_text .et_pb_text_inner,
  body.page-id-987491327 .starter_sms_text p {
    font-size: 20px !important;
    line-height: 1 !important;
  }

  body.page-id-987491327 .pro_sms_text .et_pb_text_inner,
  body.page-id-987491327 .max_sms_text .et_pb_text_inner,
  body.page-id-987491327 .pro_sms_text p,
  body.page-id-987491327 .max_sms_text p {
    font-size: 18px !important;
    line-height: 1.2 !important;
  }

  /* design line 86: description 20px / 1.1. Both the size AND the ratio differ
     from the phone's 16px / 1.25, so neither can be a single flat value.

     The description module carries NO class of its own -- only Divi's
     `et_pb_text_7` / `_15` / `_23`, which renumber whenever a module is
     inserted. Selected by exclusion instead: the one direct .et_pb_text child
     that is not the footnote, the price row or an SMS line. */
  body.page-id-987491327 .et_pb_column:has(> .starter_price) > .et_pb_text:not(.ss-foot):not(.ss-price-row):not([class*="_sms_text"]) .et_pb_text_inner p,
  body.page-id-987491327 .et_pb_column:has(> .pro_price) > .et_pb_text:not(.ss-foot):not(.ss-price-row):not([class*="_sms_text"]) .et_pb_text_inner p,
  body.page-id-987491327 .et_pb_column:has(> .max_price) > .et_pb_text:not(.ss-foot):not(.ss-price-row):not([class*="_sms_text"]) .et_pb_text_inner p {
    font-size: 20px !important;
    line-height: 1.1 !important;
  }

  /* design lines 87-88: the footnotes are 18px / 1.35. Live is 15px / 1.35.
     Only the SIZE moves -- the desktop document draws two stacked paragraphs
     where the site joins them into one '·' line, and that is a settled
     decision this pass does not reopen. */
  body.page-id-987491327 .ss-foot .et_pb_text_inner,
  body.page-id-987491327 .ss-foot .et_pb_text_inner p {
    font-size: 18px !important;
  }

  /* design line 83: bg #FF7043, 500 / 20px / line-height 1, padding 12px 30px.
     Live is 18px / 30.6px / 14px 18px, giving a 58.6px button where the design
     is 44px. The three move together and must be set together:
       font-size    from `body #page-container .et_pb_cta_0...`      (1,4,1)
       line-height  from Divi's generic `.et_pb_button{1.7em !important}`
       padding-tb   from `.et_pb_cta_N.et_pb_promo ...`  (0,5,0) !important
       padding-lr   falls through to `.et_pb_button{padding:0.3em 1em}`
     `#page-container` is present to carry an id, so this clears the (0,5,0)
     important rule rather than tying with it and losing on source order.
     12 + 20 + 12 = the design's own 44px button height, which is the sanity
     check on the whole row. */
  body.page-id-987491327 #page-container .btn_starter_signup .et_pb_promo_button.et_pb_button,
  body.page-id-987491327 #page-container .btn_pro_signup .et_pb_promo_button.et_pb_button,
  body.page-id-987491327 #page-container .btn_max_signup .et_pb_promo_button.et_pb_button {
    font-size: 20px !important;
    line-height: 1 !important;
    padding: 12px 30px !important;
  }

  /* ---- compare matrix --------------------------------------------------- */
  /* design line 131: 35px. Weight 600 and -0.03em are already live, applied
     unscoped by Phase A because both design documents agree on them. */
  body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) h2 {
    font-size: 35px !important;
    line-height: 1 !important;
  }

  /* design line 130: section padding 140px top, 70px bottom. Live is 70px both.
     line 130 also gives a 70px gap between the H2 and the matrix; live's 54px
     is not an authored value at all -- it is 27px of row padding-bottom plus
     27px of row padding-top, measured. Split the design's 70 as 35 + 35 so the
     mechanism stays the one Divi already uses. Rows are addressed by what they
     contain, never by their ordinal. */
  body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) {
    padding-top: 140px;
  }

  body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) .et_pb_row:has(h2) {
    padding-bottom: 35px;
  }

  body.page-id-987491327 .et_pb_section:has(.ss-compare-wrap) .et_pb_row:has(.ss-compare-wrap) {
    padding-top: 35px;
  }

  /* design line 133: column header padding 0 40px. lines 135-137: 20px labels. */
  body.page-id-987491327 .ss-compare-head {
    padding: 0 40px;
  }

  body.page-id-987491327 .ss-compare-head span {
    font-size: 20px;
  }

  /* design line 142 puts `padding: 15px` on the title ROW -- and line 143 puts
     `padding-left: 10px` on the title SPAN, so the title TEXT lands 25px from
     the card edge, which is exactly where live already puts it and exactly
     where the line rows beneath it start.

     The bare `padding: 15px` that a reading of line 142 alone implies would
     have moved the title 10px left of everything under it. Nothing measured it:
     the number was "correct", the alignment was not. It showed up in a
     screenshot. Only the RIGHT side is genuinely wrong -- live 25px, design
     15px -- so only the right side moves. line 143: 25px type. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-cat-title {
    padding: 15px 15px 15px 25px;
    font-size: 25px;
  }

  /* design line 151: expanded rows 15px 25px. Live is 12px 25px. The #F9F9F9
     background and the 10px radius are already live (Phase A, unscoped).

     BEYOND DESKTOP-GAP.md, and flagged as such. That work order measured the
     ROW; these four measure what is inside and around it, and without them the
     named fix is half done. The design's expanded rows are separate rounded
     pills -- inset 15px from the card and 8px apart (lines 149-150) -- so their
     radius reads. Live stacks them flush and edge to edge, which makes the
     radius invisible and turns twelve pills into one continuous grey block.
     lines 152-155: the feature name is 20px / -0.03em and the three plan values
     are 18px; live has both at 16px. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-line {
    padding: 15px 25px;
  }

  /* `> .ss-compare-cat` is carrying specificity, not structure: the existing
     `.ss-compare-wrap .ss-compare-cat.is-open > .ss-compare-body` sets
     padding-bottom:10px at (0,4,0), and a shorter selector loses to it on the
     bottom edge only -- three sides would have taken and one would not, which
     is the (0,4,1)-beats-(0,3,1)-on-font-size-alone trap from the heading pass
     wearing a different hat. This is (0,4,1): same class count, one more type,
     so it wins without needing !important. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-cat > .ss-compare-body {
    padding: 0 15px 15px;
  }

  /* `.is-open` IS LOad-BEARING, not decoration. The accordion's entire closed
     state is one declaration -- `.ss-compare-wrap .ss-compare-cat >
     .ss-compare-body { display: none }` at (0,3,0), style.css:2750. A first
     draft put `display: flex` on the rule above, at (0,4,1), and so silently
     opened all twelve categories at once: 53 of 53 target numbers still passed,
     because the probe reads the FIRST matching element and that one was
     supposed to be open. What gave it away was the document growing 2,325px.
     A `display` value is the accordion's state, so only the open row may
     declare one. */
  body.page-id-987491327 .ss-compare-wrap .ss-compare-cat.is-open > .ss-compare-body {
    display: flex;
    flex-direction: column;
    row-gap: 8px;
  }

  body.page-id-987491327 .ss-compare-wrap .ss-compare-line span:not(.ss-c) {
    font-size: 20px;
    letter-spacing: -0.03em;
  }

  body.page-id-987491327 .ss-compare-wrap .ss-compare-line span.ss-c {
    font-size: 18px;
  }

  /* design line 163: the bottom pill is 500 / 20px / 1 with padding 20px 30px
     -- a taller button than the card CTAs, deliberately. Same Divi mechanism
     and therefore the same specificity requirement. */
  body.page-id-987491327 #page-container .compare_cta .et_pb_promo_button.et_pb_button {
    font-size: 20px !important;
    line-height: 1 !important;
    padding: 20px 30px !important;
  }
}


/* ---- /how-much/ plan cards: Pro alone is violet, cards level (cards-pass, 2026-09-19) ---- */
/* THE OWNER'S RULING, 2026-09-19, verbatim: "Make them level and I also think
   the only one should have the purple background the centre on(Pro) as the
   recommended option or Most Popular."

   THIS DIVERGES FROM THE DESIGN EXPORT, DELIBERATELY AND ON INSTRUCTION.
   `Pricing.dc.html` lines 90 and 108 give Pro AND Max the same violet gradient.
   Nobody should later "fix" Max back to violet on the grounds that the design
   says so -- it is his product and his call, and the "MOST POPULAR" chip already
   sits on Pro alone, so this makes the recommended card the only violet one.

   NOT SCOPED TO A BREAKPOINT, and that is the difference between this block and
   the desktop one above it. That block existed to close a desktop-only gap, so
   scoping it to `min-width: 981px` made "mobile did not move" structural. This
   is a change to what a card IS, and a card that is violet on a phone and white
   on a desktop would be incoherent. Mobile moves here because it was asked to.
   The equal-height half IS desktop-only, because the phone stacks the cards and
   height means nothing there.

   EVERY VALUE BELOW WAS MEASURED OFF THE STARTER CARD, not read out of this
   stylesheet. Thirty-one separate rules across five passes mention `.max_price`;
   deriving the result by reading them is the static analysis that has produced a
   confident wrong answer four times on this data. `cards-pass/compare_cards.py`
   printed the Starter/Max delta element by element and this block closes exactly
   that list -- which is also why the gate is "Max now equals Starter", not "Max
   equals a list of values I typed".

   ONE INFERENCE, FLAGGED. He asked for the purple background. Max's NAME is
   14px uppercase where Starter's is 25px sentence case, and its SMS line is 18px
   where Starter's is 20px -- because the stylesheet comment at :3358 records the
   reason: "the design deliberately shrinks the violet cards' names because the
   PRICE is the hero there". That reason belongs to the violet treatment. Take
   the violet away and a white card with a tiny uppercase MAX beside a white card
   saying Starter reads as a bug, so Max mirrors Starter completely. To undo just
   that and keep Max's small name, delete the two rules marked INFERRED. */

/* ---- 1. the shell: white, bordered, no gradient --------------------- */
/* Same selector shape and specificity as the violet rules at :2712, :3006 and
   :7814, winning on source order as the later rule in the same file. */
body.page-id-987491327 .et_pb_column:has(> .max_price) {
  background-color: #ffffff;
  background-image: none;
  border: 1px solid #EDE7F6;
}

/* ---- 2. text colour: undo the blanket white ------------------------- */
/* :2691 sets `color:#ffffff!important` on every text module inside a violet
   card, so a module added later is legible by default. Max is no longer a
   violet card, so it takes the site's text token -- with a literal fallback,
   never a bare var(). */
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner h3 {
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
}

/* :2703 makes links white-and-underlined so they survive the gradient. On the
   white card they take the colour of the line they sit in, which is how the
   Starter card's ADLA link already resolves to #636363. */
body.page-id-987491327 .et_pb_column:has(> .max_price) .et_pb_text_inner a {
  color: inherit !important;
}

/* ---- 3. the per-element colours, mirrored off Starter --------------- */
/* the unit ("AUD/MONTH"): #636363, undoing :3127's #F4F4F4 */
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-price-row .permth .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-price-row .permth p {
  color: #636363 !important;
}

/* the SMS line: #000000, undoing :7828's #F4F4F4 */
body.page-id-987491327 .et_pb_column:has(> .max_price) .max_sms_text .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .max_sms_text p {
  color: #000000 !important;
}

/* the footnote and the ADLA line: #636363, undoing :3448 and :3162 */
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-foot .et_pb_text_inner,
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-foot .et_pb_text_inner p,
body.page-id-987491327 .et_pb_column:has(> .max_price) .adla_price_text .et_pb_text_inner p {
  color: #636363 !important;
}

/* ---- 4. INFERRED: the plan name reads like Starter's ---------------- */
/* Delete this rule to keep Max's small uppercase name. The h3's source text is
   already "Max", sentence case -- the capitals come from `text-transform`, so
   removing it needs no content change. */
body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-plan-head h3 {
  font-size: 20px !important;
  line-height: 1.2 !important;
  text-transform: none;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
}

@media (min-width: 981px) {
  /* Starter's name is 25px at desktop (design line 77). */
  body.page-id-987491327 .et_pb_column:has(> .max_price) .ss-plan-head h3 {
    font-size: 25px !important;
  }

  /* ---- 4b. INFERRED: the SMS line reads like Starter's -------------- */
  /* Design line 82 gives the WHITE card's SMS line 20px/1; line 115 gives the
     violet one 18px/1.2. Max is white now, so it takes the white card's. At
     <=980 both are already the same size, so this is desktop-only. */
  body.page-id-987491327 .et_pb_column:has(> .max_price) .max_sms_text .et_pb_text_inner,
  body.page-id-987491327 .et_pb_column:has(> .max_price) .max_sms_text p {
    font-size: 20px !important;
    line-height: 1 !important;
  }
}

/* ---- 5. the three cards end level ----------------------------------- */
/* Measured cause: the row is `display:block` at desktop and Divi floats the
   three columns, so they cannot stretch -- heights were 374.9 / 398.9 / 391.9.
   A flex row with the default `align-items: stretch` makes all three the
   tallest. The columns keep their own `width: 359.98px`, and their `float` is
   simply ignored inside a flex container.

   DESKTOP ONLY, and not because of a breakpoint policy: at <=980 this row is
   ALREADY `display:flex` (measured) with the columns stacked full-width, so
   touching it there would put three cards side by side on a phone.

   `:has(.starter_price)` addresses the row by what it contains. Divi numbers
   rows per type in document order, so `.et_pb_row_5` would re-aim at the wrong
   row the moment a row is inserted above it. */
@media (min-width: 981px) {
  body.page-id-987491327 .et_pb_row:has(.starter_price) {
    display: flex;
    align-items: stretch;
  }

  /* Divi's float clearfix becomes a flex ITEM inside a flex container -- an
     empty fourth column that steals no width but is real. Removed rather than
     left to chance. */
  body.page-id-987491327 .et_pb_row:has(.starter_price)::before,
  body.page-id-987491327 .et_pb_row:has(.starter_price)::after {
    content: none;
  }
}


/* ==== typescale-pass 2026-10-02: homepage + /more-tools/ desktop type ==== */
/* Two blocks, concatenated byte-for-byte from homepage-desktop/CANDIDATE.css and
   moretools-desktop/CANDIDATE.css. Each sits inside @media (min-width: 981px) and is
   scoped to its own page-id, so nothing applies below 981px or on any other page.
   Revert: typescale-pass/theme.py restore (BEFORE cards-pass restore). */
/* ---- homepage DESKTOP body type scale (homepage-desktop pass, 2026-10-02) ---- */
/* Closes the finding that the homepage renders body text at Divi's global 14px
   above 980px (`:root{--et_global_body_font_size:14px}`), SMALLER than the phone's
   16px. The design draws card bodies, section intros, the CTA paragraph and the
   hero lead at 18px, "Read more" at 20px, and the "Latest posts" H2 at 35px.

   EVERY RULE IN THIS BLOCK IS INSIDE @media (min-width: 981px) and prefixed
   body.page-id-987489070, including ones whose design value would be safe
   unscoped. Mobile is signed off; scoping the whole block makes "mobile did not
   move" a structural property rather than a claim. 981 is the complement of the
   `max-width: 980px` query this stylesheet already uses, not a new breakpoint.

   NO DIVI ORDINALS. The text modules carry no ss-* class, so each is reached by
   its SIBLING STRUCTURE: the module beside a known module (the one holding the
   h1, `.ss-card-heading`, `.ss-feature-icon`, a blog `.et_pb_image`, a button
   wrapper). An element that cannot be reached this way is listed in RESULTS.txt
   as needing a class in post_content.

   NO `display` ANYWHERE, no `body` font-size change, no `!important`. cssom_walk
   shows every competing declaration for these properties is either inherited
   from Divi's global 14px/500 or sits inside `@media (max-width: 980px)` /
   `(max-width: 767px)`, so plain specificity wins on desktop.

   WEIGHT IS DELIBERATELY UNTOUCHED. The design's paragraphs are 400, but the
   site's body weight is 500 at every width and the signed-off phone view keeps
   it; desktop must not become lighter than the phone on one page only.
   The "Success stories" H2 (35px, the owner's measurement table of the
   2026-08-25 pass) is likewise NOT changed here and is pinned by trap rows in
   targets.py.

   Numbers are transcribed from managed-agents-design-export/Homepage.dc.html by
   line. */

@media (min-width: 981px) {

  /* ---- hero lead: Homepage.dc.html:47, 18px / 1.35 -------------------- */
  body.page-id-987489070 .et-l--post .et_pb_text:has(h1) + .et_pb_text > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.35;
  }

  /* ---- solutions card bodies: Homepage.dc.html:95,109,124,139,153,
          18px / 1.2. The inline links inherit size. -------------------- */
  body.page-id-987489070 .et-l--post .ss-card-heading + .et_pb_text + .et_pb_text > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* ---- feature card bodies: Homepage.dc.html:172,179,186, 18px / 1.2 -- */
  body.page-id-987489070 .et-l--post .ss-feature-icon + .et_pb_text + .et_pb_text > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* ---- section intros (Features, Testimonials, Blog): Homepage.dc.html:
          165,200,237, 18px / 1.2. The FAQ intro already carries .ss-intro
          (same values) and is excluded so this rule cannot touch it. ---- */
  body.page-id-987489070 .et-l--post .et_pb_text + .et_pb_text:has(h2) + .et_pb_text:not(.ss-intro) > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* ---- CTA band paragraph: Homepage.dc.html:228, 18px / 1.3 ---------- */
  body.page-id-987489070 .et-l--post .et_pb_text:has(h2) + .et_pb_text:has(+ .et_pb_button_module_wrapper) > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.3;
  }

  /* ---- "Read more": Homepage.dc.html:244,250,256, 20px / 1.1. Weight is
          left to inheritance: the design's 500 is the site body weight. --- */
  body.page-id-987489070 .et-l--post .et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text > .et_pb_text_inner > p {
    font-size: 20px;
    line-height: 1.1;
  }

  /* ---- "Latest posts" H2: Homepage.dc.html:236, Poppins 600 / 35px / 1 /
          -0.03em. Live is Divi's parent h2 default (26px / 500 / normal).
          Colour and padding are deliberately left alone. ---------------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) .et_pb_text > .et_pb_text_inner > h2 {
    font-size: 35px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
  }
}

/* ---- /more-tools/ (Features) DESKTOP type scale (moretools-desktop, 2026-10-02) ---- */
/* Closes the finding that this page renders its PHONE type scale at every width:
   tile titles 20px (design 25), tile bodies 16px (18), "Learn more" 14px (20),
   hero lead 20px (18), "More enrolment" 16px (20).

   EVERY RULE IN THIS BLOCK IS INSIDE @media (min-width: 981px), and every
   selector is prefixed body.page-id-987489322, so "mobile did not move" is a
   structural property of the block, not a claim. 981 is the complement of the
   max-width:980px query this stylesheet already uses; not a new breakpoint.

   No Divi ordinal is used anywhere: only existing ss-* / mt-* classes and
   structural selectors. No `display` is declared on anything. The 9 anchor
   ids' scroll-margin-top is not touched.

   Design source: managed-agents-design-export/Features.dc.html.

   SPECIFICITY (cssom_walk.py, 1440). What each rule must beat:
     hero lead       (0,4,1) `inherit !important` from .ss-hero-sub p  -> mine is !important at (0,5,2)
     tile h2         (0,4,2) 20px / 1.2 / -0.03em (non-important)      -> mine (0,5,2), later in file
     tile body       (0,2,0) .ss-hub-card .ss-hub-sub                  -> mine (0,3,1)
     tile + lead CTA (0,2,0) / (0,2,1)                                 -> mine (0,3,1) / (0,4,1)
     "More enrolment" body #page-container .et_pb_section .et_pb_button_0 (1,2,1) font-size and
                     letter-spacing are !important, weight is not; Divi's .et_pb_button line-height
                     is 1.7em !important (0,1,0). Mine carries #page-container and is !important
                     where needed, at (1,5,2). The (1,2,1) rule is Divi's per-module sheet and
                     loads AFTER this file, so a tie would lose; the margin is deliberate.
   (The child theme's (0,4,1) `!important` h2 rule is inside max-width:980px and is
   inactive here; at desktop the tile h2 fight is the (0,4,2) rule above.) */

@media (min-width: 981px) {

  /* ---- hero lead: Features.dc.html:52, 18px / line-height 1.2 ------------ */
  body.page-id-987489322 .et-l--post .ss-hero .ss-hero-sub .et_pb_text_inner p {
    font-size: 18px !important;     /* beats (0,4,1) `font-size: inherit !important` */
    line-height: 1.2 !important;    /* same rule's `line-height: inherit !important` */
  }

  /* ---- three large rows: "Learn more", Features.dc.html:64,78,90 ---------- */
  /* 20px / line-height 1 / weight 500. Titles (25), bodies (18) and eyebrows
     (14) are already the design's numbers and are deliberately NOT written. */
  body.page-id-987489322 .mt-leads .mt-lead-card .mt-lead-cta {
    font-size: 20px;
    line-height: 1;
    font-weight: 500;
  }

  /* ---- 17 tiles: title, Features.dc.html:107,133,142 ----------------------- */
  /* h3 Poppins 500 / 25px / 1.2 / -0.03em. The <em> inside four titles inherits. */
  body.page-id-987489322 .et-l--post .et_builder_inner_content .ss-hub-card .et_pb_heading_container h2 {
    font-size: 25px;
    line-height: 1.2;
    letter-spacing: -0.03em;
  }

  /* ---- 17 tiles: body, Features.dc.html:115,120,125,128,147,150 ------------ */
  /* 18px / 1.2. The <strong>/<a>/<b>/<em> inside inherit. Weight stays 500
     (house body weight; the design states none; see REPORT J2). */
  body.page-id-987489322 .ss-hub-card .ss-hub-sub {
    font-size: 18px;
    line-height: 1.2;
  }

  /* ---- 12 tiles: "Learn more", Features.dc.html:110,135,144,154 ------------ */
  body.page-id-987489322 .ss-hub-card .ss-hub-cta {
    font-size: 20px;
    line-height: 1;
    font-weight: 500;
  }

  /* ---- "More enrolment" button, Features.dc.html:64 (secondary-button role) -- */
  /* 20px / line-height 1 / 500 / no tracking. Beats the per-module TB sheet's
     `!important` font-size and letter-spacing (1,2,1) and Divi's 1.7em lh. */
  body.page-id-987489322 #page-container .et-l--post .et_pb_section:has(.et_pb_testimonial_content) a.et_pb_button {
    font-size: 20px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    font-weight: 500;
  }
}


/* ==== comparison-desktop 2026-10-02: 18 comparison pages desktop type ==== */
/* ---- Comparison Page template (18 pages) DESKTOP type scale (comparison-desktop, 2026-10-02) ---- */
/* Closes the finding that these pages render the PHONE type scale at every desktop width:
   hero trust line 13px (design 14), table footnotes 12px (design 14), hero lead 20px (design 18).
   Design source: managed-agents-design-export/Comparison Page Template.dc.html.

   EVERY RULE IS INSIDE @media (min-width: 981px) (the complement of the max-width:980px query this
   stylesheet already uses; not a new breakpoint), and every selector starts with the same :is() list
   of the 18 comparison pages' body.page-id-N, so "mobile did not move" and "no other page moved"
   are structural properties of the block, not claims. A new comparison page needs its id added here.
   No Divi ordinal, no `display`, no var(), no copy change. Font-weight is deliberately NOT written
   anywhere (site body weight is 500 at every width, coordinator's ruling).

   SPECIFICITY (cssom_walk.py, 1440, fresha-alternative):
     hero lead   `inherit !important` from .et-l--post .ss-hero .ss-hero-sub .et_pb_text_inner p (0,4,1)
                 for BOTH font-size and line-height -> mine is !important at (0,5,2).
     trust, note .ss-hero-trust p / .ss-versus-note p (0,1,1), not important -> mine (0,2,2).
   :is() takes the specificity of its most specific argument: body.page-id-N = (0,1,1). */

@media (min-width: 981px) {

  /* ---- hero lead, C:55: 18px / line-height 1.35 -------------------------------- */
  :is(body.page-id-987491173, body.page-id-987491456, body.page-id-987491182, body.page-id-987491462, body.page-id-987491469, body.page-id-987491473, body.page-id-987491176, body.page-id-987491481, body.page-id-987491181, body.page-id-987491179, body.page-id-987491494, body.page-id-987491177, body.page-id-987491178, body.page-id-987491506, body.page-id-987491175, body.page-id-987491510, body.page-id-987491180, body.page-id-987491183) .et-l--post .ss-hero .ss-hero-sub .et_pb_text_inner p {
    font-size: 18px !important;     /* beats (0,4,1) `font-size: inherit !important` */
    line-height: 1.35 !important;   /* same rule's `line-height: inherit !important` */
  }

  /* ---- trust microcopy: hero line (C:57, 14px) and the 'Rated 4.4...' line above the
          table, which carries the same .ss-hero-trust role (INFERRED, see targets.py J1).
          C:57 states no line-height; the theme's 1.3 ratio is kept (J2). ---------- */
  :is(body.page-id-987491173, body.page-id-987491456, body.page-id-987491182, body.page-id-987491462, body.page-id-987491469, body.page-id-987491473, body.page-id-987491176, body.page-id-987491481, body.page-id-987491181, body.page-id-987491179, body.page-id-987491494, body.page-id-987491177, body.page-id-987491178, body.page-id-987491506, body.page-id-987491175, body.page-id-987491510, body.page-id-987491180, body.page-id-987491183) .ss-hero-trust p {
    font-size: 14px;
  }

  /* ---- table footnotes, C:98: 14px / 1.4 (the live line-height is already 1.4, so only the
          size moves and the 19.6px follows). C:82 (16px) is the sub-title ABOVE the table, a
          different element; see targets.py. Applies to all 2-3 <p> in the note block. ---- */
  :is(body.page-id-987491173, body.page-id-987491456, body.page-id-987491182, body.page-id-987491462, body.page-id-987491469, body.page-id-987491473, body.page-id-987491176, body.page-id-987491481, body.page-id-987491181, body.page-id-987491179, body.page-id-987491494, body.page-id-987491177, body.page-id-987491178, body.page-id-987491506, body.page-id-987491175, body.page-id-987491510, body.page-id-987491180, body.page-id-987491183) .ss-versus-note p {
    font-size: 14px;
  }
}


/* ==== layout14-pass 2026-10-02: homepage Latest-posts desktop layout + 11 pages' 14px desktop body ==== */
/* Two blocks, concatenated byte-for-byte from homeblog-desktop/CANDIDATE.css (homepage
   "Latest posts" section layout) and body14-desktop/CANDIDATE.css (14px desktop body text
   on 11 pages). Each sits inside @media (min-width: 981px) and is page-scoped, so nothing
   applies below 981px or on any other page.
   Revert: layout14-pass/theme.py restore (BEFORE comparison-desktop restore). */
/* ---- homepage "Latest posts" DESKTOP layout (homeblog-desktop pass, 2026-10-02) ---- */
/* Closes: three post images at different heights inside an empty 320px box, doubled-up
   vertical gaps, cards running edge to edge of the rounded panel, the BLOG chip left of
   the H2/intro axis, the over-tall "View More Articles" button.

   MECHANISM. The image module is already 320px (module setting) but nothing inside it
   fills it: the wrap is shrink-wrapped and the <img> is height:auto at its natural
   aspect, with no clip and no object-fit. Spacing is flex gap PLUS authored !important
   module margins PLUS Divi's heading padding-bottom PLUS !important row padding; the
   design uses the gap alone. Rows are "full width" (width:100% !important) inside a
   section with 0 side padding.

   EVERY RULE IS INSIDE @media (min-width: 981px) and prefixed body.page-id-987489070,
   so mobile cannot move (981 is the complement of the existing max-width:980px query,
   not a new breakpoint). NO DIVI ORDINALS: the section is the one containing the
   "image + 3 text modules" card pattern, its rows are told apart by what they contain.
   NO `display` on any container or widget state (the one `display: block` is on the
   <img> itself, so it is a box and not an inline). Numbers are Homepage.dc.html:230-249 (the Blog section).

   !important appears only where cssom_walk shows an !important to beat, each cited:
   row padding-bottom (.et_pb_row_N.et_pb_row {padding-bottom: var(--gvid-space-l)
   !important}), module margins (.et_pb_text_N {margin-*: ... !important}) and the
   button line-height (.et_pb_button {line-height: 1.7em !important}). */

@media (min-width: 981px) {

  /* ---- section panel: H:230 padding 140px 50px, gap 70px. Top/bottom 140 already
          right. Rows inside are "full width" (100%), so the side padding is what
          insets the cards. Gap is the ONLY vertical spacing between the three rows. */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) {
    padding-left: 50px;
    padding-right: 50px;
    row-gap: 70px;
  }

  /* rows: the authored 70px row padding-bottom (!important in Divi's generated CSS,
     .et_pb_row_N.et_pb_row) doubled the section gap. H:230 has no row padding. */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row {
    padding-bottom: 0 !important;
  }

  /* ---- header block: H:231 flex column, gap 35, align-items centre ------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(h2) > .et_pb_column {
    row-gap: 35px;
  }
  /* the chip and H2 modules each carry margin-bottom 35px !important (.et_pb_text_N);
     the gap now supplies it */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_module {
    margin-bottom: 0 !important;
  }
  /* chip: a shrink-wrapped flex item left in a stretch column; centre it on the same
     axis as the (text-align:centre) H2 and intro */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_text:first-child {
    align-self: center;
  }
  /* H2: H:235 margin 0, no padding (Divi's heading default is padding-bottom 10px) */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_text:has(h2) > .et_pb_text_inner > h2 {
    padding-bottom: 0;
  }

  /* ---- card grid: H:239 three equal columns, gap 20. Divi sizes each column with
          calc(100% - 5.5% gaps) and spaces them by column-gap 5.5% (var(--horizontal-gap)). */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) {
    column-gap: 20px;
  }
  /* ---- card: H:240 flex column, gap 15 (module margins zeroed below) ------ */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    row-gap: 15px;
  }
  /* date and title modules carry margin 15px / 15px !important (.et_pb_text_N) */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* ---- image box: H:241 height 320, radius 30, overflow hidden, img 100% x 100%
          object-fit cover. Height is stated here (not left to the module's ordinal
          rule .et_pb_image_N). Radius already 30px. ------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image {
    height: 320px;
    overflow: hidden;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image .et_pb_image_wrap,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image picture {
    width: 100%;
    height: 100%;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* ---- date: H:242 18px / 1.2 (size already 18px) ------------------------ */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image + .et_pb_text > .et_pb_text_inner > p {
    line-height: 1.2;
  }
  /* ---- title: H:243 margin 0; drop Divi's heading padding-bottom 10px ---- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_image) > .et_pb_column > .et_pb_image + .et_pb_text + .et_pb_text > .et_pb_text_inner > h3 {
    padding-bottom: 0;
  }

  /* ---- "View More Articles": H:249 padding 12px 30px, line-height 1 (20px).
          Divi's .et_pb_button sets line-height 1.7em !important and padding .3em 1em. */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_button_module_wrapper) .et_pb_button {
    padding: 12px 30px;
    line-height: 1 !important;
  }
  /* hover must keep the same horizontal padding or the button changes width under the
     cursor: the module's own hover rule `body #page-container .et_pb_section
     .et_pb_button_5:hover {padding-left:1em!important; padding-right:1em!important}`
     (1,2,1) is !important AND carries an id, so this needs `#page-container` to out-rank
     it. (Vertical hover padding is already beaten by the rule above.) */
  body.page-id-987489070 #page-container .et-l--post .et_pb_section:has(.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) > .et_pb_row:has(.et_pb_button_module_wrapper) .et_pb_button:hover {
    padding-left: 30px !important;
    padding-right: 30px !important;
  }
}

/* ---- body14-desktop: pages that still render body text at Divi's default 14px above 980px (2026-10-02) ---- */
/* The child theme only sets `html body{font-size:16px}` inside @media (max-width:980px); above it, text that
   sets no size of its own inherits Divi's `:root{--et_global_body_font_size:14px}` (or a 14px declared by a
   child-theme / plugin / Divi-module rule), so these pages show SMALLER text on a desktop than on a phone.
   Design System.dc.html: body 18px / lh 1.2 (:135), small 16px / lh 1.2 (:139), text link 20px / lh 1.1 (:147).

   EVERY RULE IS INSIDE @media (min-width: 981px) (the complement of the existing max-width:980px query, not a
   new breakpoint) and EVERY selector starts with an explicit :is(body.page-id-N, ...) list, so "mobile did not
   move" and "no other page moved" are structural. Divi's global variable is NOT touched and there is no
   unscoped body/html rule. No Divi ordinals, no display, no var(), no !important (cssom_walk shows nothing
   important to beat on any element written here). Font-WEIGHT is written nowhere: body weight stays 500 sitewide
   (owner's ruling, 2026-10-02). A new page of these kinds needs its id added to the matching list.

   NOT touched on purpose (record settles them; see RESULTS.txt): ss-chip / .ao-eyebrow / .mt-eyebrow 14px labels
   (Design System :143 'Subheading chip label' = 14px), numbered slider dots, home + /more-tools/ + the 18
   comparison pages (typescale-pass / comparison-desktop own them), /how-much/ (+ its /sign-up/ and /compareplans/
   redirects), the three legal pages (.ss-legal 16px, open-decisions section 34), the central subscribe block,
   and the 304 blog posts (designed template; one `.ss-post-popular` date row, see RESULTS.txt J7). */

@media (min-width: 981px) {

  /* ======== HUB PAGES: /add-ons/ 987489140, /compare/ 987491190, /industries/ 987492453 ======== */

  /* 'Learn more' / 'See the comparison' / 'See how it works' text link. Mechanism: the child theme's own
     `.ss-hub-card .ss-hub-cta{font-size:14px}` (0,2,0). Same role and same class as /more-tools/'s, which the
     typescale pass set to 20px (F:110, DS :147). Mine (0,3,1) beats it. Weight (live 700) untouched. */
  :is(body.page-id-987489140, body.page-id-987491190, body.page-id-987492453) .ss-hub-card .ss-hub-cta {
    font-size: 20px;
    line-height: 1.1;
  }

  /* /compare/ section intro 'See how Simple Salon compares to other platforms.' (inherits the 14px global).
     The section's own first paragraph and the CTA band paragraph are already 18px and are not matched. */
  :is(body.page-id-987491190) .et-l--post .et_pb_section:has(.ss-hub-grid) .et_pb_heading + .et_pb_text:last-child > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* /industries/ CTA band paragraph 'Start a free trial and see how Simple Salon fits...' (inherits 14px).
     The comparison pages already carry the same band at 18px/1.3 through a :has(.ss-versus) rule that /industries/
     does not match. 1.2 is the DS value (J2: change to 1.3 to match the comparison band). */
  :is(body.page-id-987492453) .ss-cta .et_pb_text > .et_pb_text_inner > p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* ======== /client-membership/ 987489115 (WordPress default template: widgets only) ======== */

  /* Recent-posts links, 'No comments to show.' and the search box inherit the 14px global; the search input and
     button take it from a Divi widget rule (0,2,0), which (0,3,1) beats. DS small 16px (J4). */
  :is(body.page-id-987489115) .et_pb_widget {
    font-size: 16px;
  }
  :is(body.page-id-987489115) .et_pb_widget :is(.wp-block-search__input, .wp-block-search__button) {
    font-size: 16px;
  }

  /* ======== /links/ 987490900 (blank template, custom HTML, no header/footer) ======== */

  :is(body.page-id-987490900) .entry-content :is(.header-tagline, .state-box p, .cta-block p) {
    font-size: 18px;
    line-height: 1.2;
  }
  :is(body.page-id-987490900) .entry-content p.footer-note {
    font-size: 16px;
    line-height: 1.2;
  }

  /* ======== REGION BLOG LISTS: /blog/au|us|uk|eu|my|sg/ (undesigned Divi blog modules) ======== */

  /* Card meta (date | categories). Mechanism: the blog module's own `.et_pb_post .post-meta{font-size:14px}`
     (0,2,0) and `.et_pb_blog_N .et_pb_post p{line-height:1.9em}` (0,2,1); mine (0,3,2) beats both. 16px, not
     the Blog template's 18 (Blog.dc.html draws the date row at 18 on /blog/): a nine-category list is
     fine print (J5). */
  :is(body.page-id-987489620, body.page-id-987489625, body.page-id-987489644, body.page-id-987489650, body.page-id-987490350, body.page-id-987490357) .et_pb_post p.post-meta {
    font-size: 16px;
    line-height: 1.2;
  }

  /* Card excerpt: DS body 18px / 1.2 (Blog.dc.html:62 draws the excerpt at 18/1.2). */
  :is(body.page-id-987489620, body.page-id-987489625, body.page-id-987489644, body.page-id-987489650, body.page-id-987490350, body.page-id-987490357) .et_pb_post .post-content-inner p {
    font-size: 18px;
    line-height: 1.2;
  }

  /* '« Older Entries' pager and 'Region: ...' switcher label. */
  :is(body.page-id-987489620, body.page-id-987489625, body.page-id-987489644, body.page-id-987489650, body.page-id-987490350, body.page-id-987490357) :is(.et_pb_blog .pagination a, .region_switcher .current_region span) {
    font-size: 16px;
    line-height: 1.2;
  }
}


/* ==== homefeed-pass 2026-10-05: homepage "Latest posts" cards become a LIVE divi/blog feed (class ss-home-feed) ==== */
/* The three hand-built card columns are replaced by ONE divi/blog module (number 3, newest first, all categories,
   excerpt / read-more / pagination off), CSS class field = "ss-blog-grid ss-home-feed".

   WHY TWO CLASSES. ss-blog-grid is /blog/'s class and already carries the shared card look (flex column, 15px gap
   / 12px mobile, 320px / 220px image box, 30px radius + clip, cover, Poppins 25px / 20px title, hidden overlay).
   Reused, not copied. Everything below is only what the HOMEPAGE does differently, hooked on ss-home-feed. A
   change to the shared rules therefore reaches both pages on purpose.

   INERT UNTIL THE CONTENT LANDS: every rule here needs .ss-home-feed in the DOM, so this block can be written
   BEFORE the content write and changes nothing. The 44i / homepage-desktop rules that are keyed to the old card
   pattern (.et_pb_image + .et_pb_text + .et_pb_text + .et_pb_text) go inert when the cards are replaced; the
   section-level ones are re-stated below under the new hook, so nothing is lost and the page is never half-styled.

   Numbers: Homepage.dc.html:233-259 (desktop Blog section), Mobile Views.dc.html:185-204 (mobile). Colours:
   Homepage.dc.html:15 `a {color:#7C4DFF}` and :16 `a:hover {color:#FF7043}` (the design's global link rules),
   :259 `style-hover="color:#FF7043"` on "View More Articles". Every rule is body.page-id-987489070 scoped,
   var() only with a literal fallback, no Divi ordinals, no display on any widget state. `display` appears in exactly
   three places and none is a toggled Divi widget: `display: none` on the empty .post-content / .pagination guards,
   `display: none|inline` on the category <a> filter, and `display: block` on the <img>. */

/* ---------------------------------------------------------------------------------------------- all widths */

/* grid: one column (mobile / tablet, the live page stacks the cards through 980) with the design's 25px stack gap;
   three columns from 981 (below). The module's own blogGrid attribute says 3 / 1 / 1; this states it so the page
   does not depend on which Divi-generated rule loads. */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_blog_posts {
  grid-template-columns: minmax(0, 1fr);
  column-gap: 20px;
  row-gap: 25px;
}
/* the module sits in a plain 4_4 column: no margin of its own, the section gap is the spacing */
body.page-id-987489070 .et-l--post .ss-home-feed {
  margin-top: 0;
  margin-bottom: 0;
}
/* excerpt, read-more and pagination are OFF in the module; these only guard an empty wrapper */
body.page-id-987489070 .et-l--post .ss-home-feed .post-content,
body.page-id-987489070 .et-l--post .ss-home-feed .pagination {
  display: none;
}

/* image: Divi's blog.css sets `.et_pb_image_container img {height:auto; min-width:100%}` at a higher specificity than
   ss-blog-grid's `height:100%`, which leaves a band of the box's background under a 400x284 thumbnail. Fill the box
   (H:241: width 100%, height 100%, object-fit cover). */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_image_container img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* card order: Divi prints image, title, meta; the design is image, date line, title, Read more */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post {
  position: relative;
}
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_image_container { order: 1; }
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta { order: 2; }
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title { order: 3; }

/* date line: "Nov 26, 2025 | AU, EU, UK" as today. Divi prints ALL of a post's categories (topic ones too);
   the design and today's line show REGION codes only, so the p is zeroed and only the date and the six region
   links are given their size back. The topic links stay in the DOM, just not displayed. */
body.page-id-987489070 .et-l--post .ss-home-feed {
  --ss-feed-meta-fs: 14px;
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta {
  font-size: 0;
  line-height: 1.3;
  font-weight: 500;
  color: #666666;
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .published,
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a {
  font-size: var(--ss-feed-meta-fs, 14px);
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a {
  display: none;
  color: inherit;
  text-decoration: none;
  position: relative;
  z-index: 2;
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a:is([href$="/category/au/"], [href$="/category/eu/"], [href$="/category/my/"], [href$="/category/sg/"], [href$="/category/uk/"], [href$="/category/us/"]) {
  display: inline;
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a:is([href$="/category/au/"], [href$="/category/eu/"], [href$="/category/my/"], [href$="/category/sg/"], [href$="/category/uk/"], [href$="/category/us/"]):hover {
  text-decoration: underline;
}
/* separators: ", " before every region link that follows another, " | " before the first */
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a:is([href$="/category/au/"], [href$="/category/eu/"], [href$="/category/my/"], [href$="/category/sg/"], [href$="/category/uk/"], [href$="/category/us/"])::before {
  content: ", ";
  white-space: pre;
}
body.page-id-987489070 .et-l--post .ss-home-feed .post-meta .entry-categories a:is([href$="/category/au/"], [href$="/category/eu/"], [href$="/category/my/"], [href$="/category/sg/"], [href$="/category/uk/"], [href$="/category/us/"]):not(:is([href$="/category/au/"], [href$="/category/eu/"], [href$="/category/my/"], [href$="/category/sg/"], [href$="/category/uk/"], [href$="/category/us/"]) ~ a)::before {
  content: " | ";
}

/* title: plain #2F2F2F text as today (the design's h3 is not a link colour); the link is the whole card */
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title {
  color: var(--gcid-90suxw02k0, #2f2f2f);
}
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a,
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a:hover,
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a:focus {
  color: var(--gcid-90suxw02k0, #2f2f2f);
  text-decoration: none;
}
/* "Read more": INFERRED. Divi's own label is the hard-coded lowercase "read more..." (esc_html__, not
   reachable from CSS), so the module has it OFF. The title link (real <a>, text = the post title) is stretched
   over the whole card, and the visible "Read more" is the card's ::after, violet like the design's links
   (Homepage.dc.html:15) and orange on hover (:16). The link's accessible name is the post title; the generated
   "Read more" is plain text after it, so a screen reader may announce it once more after each card (redundant,
   harmless). The alt-text form `content: "Read more" / ""` would silence that; it was not adopted because it
   was not tested (only this WebKit build was). */
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a:focus-visible {
  outline: none;
}
body.page-id-987489070 .et-l--post .ss-home-feed .entry-title a:focus-visible::before {
  outline: 2px solid var(--gcid-bs9uwvujec, #7c4dff);
  outline-offset: 4px;
  border-radius: var(--gvid-radius-card, 30px);
}
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post::after {
  content: "Read more";
  order: 4;
  /* the article carries Divi's `.clearfix::after {height:0; visibility:hidden; font-size:0}` */
  height: auto;
  visibility: visible;
  clear: none;
  font-family: Nunito, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.3;
  color: var(--gcid-bs9uwvujec, #7c4dff);
}
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post:hover::after,
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post:has(.entry-title a:focus-visible)::after {
  color: var(--gcid-6spcyv8qzp, #ff7043);
}

/* "View More Articles" hover: Homepage.dc.html:259 style-hover="color: #FF7043". Today the hover changes nothing
   (measured: rgb(47,47,47) at rest and on hover). #page-container because Divi's own hover rule carries an id. */
body.page-id-987489070 #page-container .et-l--post .et_pb_section:has(.ss-home-feed) .et_pb_button:hover {
  color: var(--gcid-6spcyv8qzp, #ff7043) !important;
}

/* ------------------------------------------------------------------------------------ DESKTOP, from 981px */
@media (min-width: 981px) {

  /* ---- the section-level rules of homeblog-desktop (44i) and homepage-desktop, re-keyed from the old card
          pattern to the feed. Same declarations, same numbers (Homepage.dc.html:233-259). ---- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) {
    padding-left: 50px;
    padding-right: 50px;
    row-gap: 70px;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row {
    padding-bottom: 0 !important;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(h2) > .et_pb_column {
    row-gap: 35px;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_module {
    margin-bottom: 0 !important;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_text:first-child {
    align-self: center;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(h2) > .et_pb_column > .et_pb_text:has(h2) > .et_pb_text_inner > h2 {
    padding-bottom: 0;
  }
  /* "Latest posts" H2 type: Homepage.dc.html:236 (was keyed to the card pattern in homepage-desktop) */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) .et_pb_text > .et_pb_text_inner > h2 {
    font-size: 35px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(.et_pb_button_module_wrapper) .et_pb_button {
    padding: 12px 30px;
    line-height: 1 !important;
  }
  body.page-id-987489070 #page-container .et-l--post .et_pb_section:has(.ss-home-feed) > .et_pb_row:has(.et_pb_button_module_wrapper) .et_pb_button:hover {
    padding-left: 30px !important;
    padding-right: 30px !important;
  }

  /* ---- the feed: three equal columns, gap 20 (H:239) ---- */
  body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_blog_posts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.page-id-987489070 .et-l--post .ss-home-feed {
    --ss-feed-meta-fs: 18px;
  }
  /* date line 18px / 1.2 (H:242), title colour from the shared rule, "Read more" 20px / 1.1 (H:244) */
  body.page-id-987489070 .et-l--post .ss-home-feed .post-meta {
    line-height: 1.2;
  }
  body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post::after {
    font-size: 20px;
    line-height: 1.1;
  }
}


/* ==== homefeed2-pass 2026-10-05: the layout declarations Divi's per-module blog CSS supplied on /blog/ (and in the first simulation) but NOT on the homepage ==== */
/* WHY. CANDIDATE.css (live since the homefeed pass) states grid-template-columns and the gaps of `.et_pb_blog_posts`, but a grid template does
   nothing on a box that is not a grid. On /blog/ the box is `display: grid` because Divi's blog.css and its per-module rules (.et_grid_module,
   .et_pb_blog_N) load there; the homepage's dynamic CSS has no et_pb_blog rules at all, so the container computed `display: block` and the
   three cards stacked, full width, with no gap. This block is only what a computed-style diff of the module subtree (the page as served vs the
   same page with /blog/'s Divi CSS) showed Divi was supplying and the homepage lacks. Same scoping as CANDIDATE.css: body.page-id-987489070,
   every rule needs .ss-home-feed, no ordinals, no var() without a fallback. `display` appears once, on the module's own layout container
   (.et_pb_blog_posts, which is `display: grid` by Divi's own definition of a grid-layout blog module), never on a toggled widget. */

/* the grid container itself */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_blog_posts {
  display: grid;
}
/* cards: let a long word wrap instead of widening its track (Divi: .et_grid_module > .et_pb_post {min-width: 0; word-wrap: break-word}) */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_post {
  min-width: 0;
  overflow-wrap: break-word;
}
/* image box: positioned like Divi's (the overlay and any absolutely placed child anchor to it) */
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_image_container {
  position: relative;
}
body.page-id-987489070 .et-l--post .ss-home-feed .et_pb_image_container img {
  min-width: 100%;
  vertical-align: bottom;
}


/* ==== SUBBAND PASS 2026-10-08 ==== */
/* Part A: orange subscribe band, EMAIL FIELD ONLY (owner ruling: band text, headline and Submit button untouched).
   Rules copied from orange-readable-2026-10/subscribe-white/CANDIDATE-A-subscribe.css, same selectors/specificity. */
html body #page-container form.ss-subscribe input[type="email"] {
  background-color: #FFFFFF !important;
  color: #1A1A1A !important;
  border: 1px solid #FFFFFF !important;
}
html body #page-container form.ss-subscribe input[type="email"]::placeholder {
  color: #555555 !important;
  opacity: 1 !important;
}

/* ---- CORE-10 : empty #F4F4F4 band under the feature-page hero photo ----
   Mechanism: `.ss-hero{padding-bottom:var(--gvid-space-xl,140px)}` (style.css:4089) is the design's 140
   (70 at 390 in the design, but that 70 is not applied below 980 on these pages: measured 70 at 390).
   The hero's own row gap is 70px desktop / 25px phone. Owner: bottom gap = the gap above the photo.
   Matches only a hero whose LAST row is the photo (`.ss-hero-img`), so heroes that end in a trust row
   or other content are untouched. */
.et-l--post .ss-hero:has(> .et_pb_row:last-child .ss-hero-img),
.et-l--body .ss-hero:has(> .et_pb_row:last-child .ss-hero-img) {
  padding-bottom: 70px;                            /* CORE-10: = row gap button->photo at desktop */
}
@media (max-width: 980px) {
  .et-l--post .ss-hero:has(> .et_pb_row:last-child .ss-hero-img),
  .et-l--body .ss-hero:has(> .et_pb_row:last-child .ss-hero-img) {
    padding-bottom: 25px;                          /* CORE-10: = row gap button->photo at 390 */
  }
}


/* ---- desktop-fix-2026-10 pass1: breadcrumb gap, homepage + /how-much/ design match, hero overlays off, old-look sections, section spacing ---- */


/* ======== pass1 part: f1-breadcrumb/CANDIDATE.v2.css ======== */
/* CANDIDATE.css -- f1-breadcrumb, desktop-fix 2026-10. NOT DEPLOYED.
   Append after the live child style.css. Selectors: ss-* classes and one body.page-id (page-specific
   block). No Divi ordinals. The CORE-10 hero-padding-bottom block from spacing-pass-2026-10 is already
   live and is deliberately NOT repeated here.

   WHAT THE GAP REALLY IS (measured, not assumed)
   Live is NOT overlapping the header. The "-1.3px" in the defect reports is the inline box of the first
   link/text (Nunito content area 21.8px > the 19.2px line box at line-height 1.2, so the inline rect
   hangs 1.3px above the line box). The breadcrumb box itself sits at exactly header-bottom (gap 0), which
   is what the desktop design draws: the <nav> is the first child of the hero, no padding above it, in
   all of Features / Feature / Industry / Comparison / Blog Post .dc.html. The 25px added below is therefore
   an OWNER-DIRECTED DIVERGENCE from the 0-gap desktop design (owner complained about breadcrumb padding
   on 7 Oct). The value 25 is the design's own 390 band gap (Mobile Views.dc.html:683/604), which style.css
   P6.2 (~5551) already applies at <=980 as `.ss-hero{padding-top:25px}`. Mechanism of "24 at 390, 0 at
   desktop": style.css:~4084 `.ss-hero{padding-top:0}` is the desktop rule; P6.2 adds 25px only inside
   `@media (max-width:980px)`. */

/* ---- IND-01 / CORE-12 / CMP-15 / OTH-46 / SBS-08 : desktop gap under the sticky header ----
   On the breadcrumb MODULE (not the section): `.ss-post-hero` carries `padding-top:0 !important` (blog
   posts), and a module margin works for both page families. Row margins are zeroed with !important by the
   `.ss-sec > .et_pb_row` rule but the module is a grandchild, so its margin is untouched. Desktop only,
   so <=980 stays byte-identical on the .ss-hero pages. */
@media (min-width: 981px) {
  .et-l--post .ss-hero .ss-crumbs-wrap,
  .et-l--body .ss-hero .ss-crumbs-wrap {
    margin-top: 25px;                              /* owner-directed; = design 390 band gap */
  }
}

/* ---- CORE-12 blog-style posts (.ss-post-hero, template section _tb_body): flush at EVERY width ----
   The spacing-pass attempt put the margin on `.ss-crumbs` (the <nav> inside .et_pb_text_inner); it did not
   take (-1.3 / -1.1 stayed). Putting it on the module `.ss-post-crumbs` (the flex item of the section)
   does. Design Mobile Blog Post frame has gap 25 at 390 (Mobile Views.dc.html:597), so one rule, all
   widths -- this is the only place 390 moves, and it moves TO the design. */
.et-l--body .ss-post-hero .ss-post-crumbs,
.et-l--post .ss-post-hero .ss-post-crumbs {
  margin-top: 25px;                                /* CORE-12 posts: design 390 gap 25, same at desktop */
}

/* ---- OTH-48 : long final crumb wraps at 390 leaving a dangling chevron ----
   Design: single-line 14px crumb (Mobile Views.dc.html:604-609). Keep it one line; if the CURRENT page name
   does not fit it is truncated with an ellipsis (full text stays in the DOM and for assistive tech). Home
   and intermediate links never shrink. Only bites when the crumb overflows -- pages that already fit are
   unchanged. */
@media (max-width: 980px) {
  .et-l--post .ss-hero .ss-crumbs,
  .et-l--body .ss-hero .ss-crumbs {
    flex-wrap: nowrap;                             /* OTH-48 */
  }
  .et-l--post .ss-hero .ss-crumbs > a,
  .et-l--body .ss-hero .ss-crumbs > a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .et-l--post .ss-hero .ss-crumbs [aria-current="page"],
  .et-l--body .ss-hero .ss-crumbs [aria-current="page"] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;                           /* OTH-48 */
  }
}

/* ======== pass1 part: home-pricing/CANDIDATE.v2.css ======== */
/* ============================================================================
   desktop-fix-2026-10 / home-pricing  --  CANDIDATE (simulated by injection only; nothing written)
   Fixes Homepage + /how-much/ rows from desktop-match-2026-10/home-features-pricing/DIFF.md
   and the homepage/CTA/subscribe rows of blog-shared/DIFF.md.

   EVERY RULE IS INSIDE @media (min-width: 981px) -- the complement of the existing
   max-width:980px homepage block, so mobile cannot move. No Divi ordinals: sections are
   keyed on stable content (.ss-card, .ss-feature-icon, .et_pb_slider, form.ss-subscribe,
   .ss-plan-head). Every var() carries a literal fallback.

   !important appears only where a Divi !important has to be beaten, each cited:
     - row padding   `.et_pb_row_N.et_pb_row{padding-*:...!important}`  (landmine C5)
     - module margin `.et_pb_text_N{margin-bottom:var(--gvid-space-m)!important}` (C6)
     - full-width rows `width/max-width:100%!important` (C8) -- NOT touched: with the 50px
       section gutter below, a 100% row is exactly 1340 wide.
   ============================================================================ */

@media (min-width: 981px) {

  /* ---------------------------------------------------------------------------
     A. HOMEPAGE section frame. Design: every section padding-x 50, flex gap 70.
        Rows are 'full width' (C8) so the 50px gutter on the SECTION is what makes
        them 1340 at x=50.                                   rows 6, 10, 18, 22, 23
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card),
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon),
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider),
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) + .et_pb_section {
    padding-left: 50px;
    padding-right: 50px;
    row-gap: 70px;
  }

  /* Divi's 70px row padding-bottom (!important) doubled the 70px section gap. The CTA
     card row and the testimonial card row keep their own all-round padding (they ARE
     the cards), so they are excluded.                                   rows 9, 16, 20 */
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon) > .et_pb_row,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) > .et_pb_row:not(:has(.et_pb_slider)) {
    padding-bottom: 0 !important;
  }

  /* ---------------------------------------------------------------------------
     B. Section header cluster (chip / h2 / tagline): centred, 35px gaps, no module
        margin, no Divi h2 padding. Solutions, Features, Testimonials and the hero text
        stack.                                  rows 1, 7, 8, 14, 16, 20 (DESIGN 35/35)
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row:first-child > .et_pb_column,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon) > .et_pb_row:first-child > .et_pb_column,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) > .et_pb_row:first-child > .et_pb_column,
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child > .et_pb_column {
    row-gap: 35px;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row:first-child > .et_pb_column > .et_pb_module,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon) > .et_pb_row:first-child > .et_pb_column > .et_pb_module,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) > .et_pb_row:first-child > .et_pb_column > .et_pb_module,
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child > .et_pb_column > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  /* chip centred over its heading (the chip module is width:fit-content in a stretch column) */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row:first-child > .et_pb_column > .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon) > .et_pb_row:first-child > .et_pb_column > .et_pb_text:first-child,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) > .et_pb_row:first-child > .et_pb_column > .et_pb_text:first-child {
    align-self: center;
  }
  /* h2: Divi's parent h1..h6 padding-bottom:10px */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row:first-child h2,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-feature-icon) > .et_pb_row:first-child h2,
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) > .et_pb_row:first-child h2,
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child h1 {
    padding-bottom: 0;
  }

  /* ---------------------------------------------------------------------------
     C. HERO. stats cluster + photo.                                  rows 5, 6
        Design: one centred cluster, gap 90, number->label 6, label 16 #636363;
        photo x=50 w1340 (section gutter above), radius 30, brightness .85.
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:not(:first-child):not(:has(.et_pb_image)) {
    justify-content: center;
    column-gap: 90px;
  }
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:not(:first-child):not(:has(.et_pb_image)) > .et_pb_column {
    flex: 0 0 auto;
    width: auto;
    row-gap: 0;
    align-items: center;
    text-align: center;
  }
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:not(:first-child):not(:has(.et_pb_image)) > .et_pb_column > .et_pb_text:last-child,
  body.page-id-987489070 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:not(:first-child):not(:has(.et_pb_image)) > .et_pb_column > .et_pb_text:last-child p {
    color: #636363;
  }

  /* ---------------------------------------------------------------------------
     D. SOLUTIONS. cards 2-col, gap 20, 1340 wide.                   rows 9, 10
        heading -> first card 70, card -> card 20.
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) {
    row-gap: 20px;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .et_pb_row:first-child {
    margin-bottom: 50px;                         /* 20 section gap + 50 = design 70 */
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column.ss-card) {
    column-gap: 20px;
  }
  body.page-id-987489070 .et-l--post .et_pb_row > .et_pb_column.ss-card {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
  /* 'More solutions' (not in the design): keep it 70 below the last card */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.ss-card) > .ss-solutions-button-row {
    margin-top: 50px;
  }

  /* ---------------------------------------------------------------------------
     E. FEATURES. three cards gap 20, 1340 wide.                    rows 14-19
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column > .ss-feature-icon) {
    column-gap: 20px;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column > .ss-feature-icon) > .et_pb_column {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }

  /* ---------------------------------------------------------------------------
     F. TESTIMONIAL CARD.                                            row 22
        card 1340 (gutter A), min-height 660, image 512 radius 30 stretched,
        stars 36 / gap 10, quote starts 35 under the stars.
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) {
    min-height: 660px;
    column-gap: 35px;
    align-items: stretch;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column {
    margin: 0;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:first-child {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    row-gap: 35px;
    justify-content: center;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:last-child {
    flex: 0 0 512px;
    width: 512px;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;                 /* the 35px gap is the only spacing (C6) */
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:first-child > .et_pb_text:first-child p {
    font-size: 36px;
    line-height: 1;
    letter-spacing: 10px;
    margin: 0;
    padding: 0;
    text-align: center;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:last-child > .et_pb_image {
    height: 100%;
    overflow: hidden;
    border-radius: 30px;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:last-child > .et_pb_image .et_pb_image_wrap,
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:last-child > .et_pb_image picture {
    display: block;
    width: 100%;
    height: 100%;
  }
  body.page-id-987489070 .et-l--post .et_pb_row:has(> .et_pb_column .et_pb_slider) > .et_pb_column:last-child > .et_pb_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 30px;
  }
  /* the slide description carries ~16%-of-width padding (91px top) so the quote floated ~100px
     below the stars; design puts it 35 below. Container height stays JS-owned (inactive slides
     are display:none, so height:auto would make the card jump on every rotation). */
  body.page-id-987489070 .et-l--post .et_pb_slider .et_pb_slide .et_pb_slide_description {
    padding: 0;
  }
  /* Divi's slide container is a table-cell, vertical-align:middle: top-align it so the quote
     sits under the stars instead of floating mid-slide */
  body.page-id-987489070 .et-l--post .et_pb_slider .et_pb_slide .et_pb_slider_container_inner {
    vertical-align: top;
  }
  /* slider dots: 12px, gap 8, active orange (design); live dots were near-invisible */
  body.page-id-987489070 .et-l--post .et_pb_slider .et-pb-controllers {
    display: flex;
    justify-content: center;
    gap: 8px;
  }
  body.page-id-987489070 .et-l--post .et_pb_slider .et-pb-controllers a {
    width: 12px;
    height: 12px;
    margin: 0;
    border-radius: 200px;
    background-color: #D9D9D9;
    opacity: 1;
  }
  body.page-id-987489070 .et-l--post .et_pb_slider .et-pb-controllers a.et-pb-active-control {
    background-color: var(--gcid-6spcyv8qzp, #ff7043);
  }

  /* ---------------------------------------------------------------------------
     G. CTA band.                                         rows 23, 24, 25, 27
        card 1340 (gutter A); h2 600 / -0.03em / max 842 balanced; gaps 35.
        Tagline font-size untouched (owner decision pending, row 26).
     --------------------------------------------------------------------------- */
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) + .et_pb_section > .et_pb_row > .et_pb_column {
    row-gap: 35px;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) + .et_pb_section > .et_pb_row > .et_pb_column > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  body.page-id-987489070 .et-l--post .et_pb_section:has(.et_pb_slider) + .et_pb_section h2 {
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
    padding-bottom: 0;
    max-width: 842px;
    margin-left: auto;
    margin-right: auto;
    text-wrap: balance;
  }

  /* ---------------------------------------------------------------------------
     H. SUBSCRIBE band -- SITE-WIDE (homepage + posts): 50px gutter so the full-width
        (C8) row is 1340 at x=50. Keyed on the band's own form class.   rows 31, 38
     --------------------------------------------------------------------------- */
  .et_pb_section:has(form.ss-subscribe) {
    padding-left: 50px;
    padding-right: 50px;
  }
  /* inside the 1340 band the two 5.5%-gap halves (567px) wrapped the heading to 2 lines
     (107 -> 120 tall). Design: heading left, form right, vertically centred, 35 gap. */
  .et_pb_row:has(form.ss-subscribe) {
    justify-content: space-between;
    align-items: center;
    column-gap: 35px;
  }
  .et_pb_row:has(form.ss-subscribe) > .et_pb_column {
    flex: 0 1 auto;
    width: auto;
    margin: 0;
  }

  /* ---------------------------------------------------------------------------
     I. /how-much/ (987491327).
     --------------------------------------------------------------------------- */
  /* plan cards: design 1340 wide, 30px gap, equal thirds (426.7)         row 41 / CORE-26 */
  body.page-id-987491327 .et-l--post .et_pb_row:has(> .et_pb_column > .ss-plan-head) {
    width: 100%;
    max-width: 1340px;
    column-gap: 30px;
  }
  body.page-id-987491327 .et-l--post .et_pb_row:has(> .et_pb_column > .ss-plan-head) > .et_pb_column {
    flex: 0 0 calc((100% - 60px) / 3);           /* exact thirds; flex:1 1 0 gave 427/425/427 */
    width: calc((100% - 60px) / 3);
    min-width: 0;
    margin: 0;
  }
  /* Testimonials head: chip pill centred + h2 35/600, gaps 35.            row 49
     NEEDS CLASS (clean fix): ss-sec on the section, ss-chip on the chip module. Until then
     keyed on the section that holds the 2/3 + 1/3 review row. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(.et_pb_column_2_3) > .et_pb_row:first-child .et_pb_text:first-child {
    display: block;
    width: fit-content;
    margin: 0 auto 35px;
    border: 1px solid rgba(47, 47, 47, 0.5);
    border-radius: 50px;
    padding: 7px 20px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    text-transform: uppercase;
    color: var(--gcid-90suxw02k0, #2f2f2f);
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(.et_pb_column_2_3) > .et_pb_row:first-child .et_pb_text:first-child p {
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    padding: 0;
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(.et_pb_column_2_3) > .et_pb_row:first-child h2 {
    font-family: var(--et_global_heading_font, 'Poppins'), sans-serif;
    font-size: 35px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #000000;
    padding-bottom: 0;
  }
}

/* ============================================================================
   v2 ADDITIONS (verify pass 2026-10-12). Everything above is CANDIDATE.css unchanged except block C,
   whose `:nth-child(2)` row pick is now `:not(:first-child):not(:has(.et_pb_image))` (same row: the
   hero stats row is the one non-first row with no image) -- positional pick removed.
   ============================================================================ */
@media (min-width: 981px) {
  /* J. /how-much/ content width + gutter -- verbatim f3-gutters block B (CORE-28, CORE-50/51 equivalents).
     CANDIDATE block I set the plan row to `width:100%;max-width:1340px` but gave its section no gutter:
     at 1024 the plan cards ran flush 0..1024 (f3: 50..974), and the breadcrumb + every other row stayed at
     the Divi 80%/1080 (x=180..1260 at 1440, design 50..1390). Same declarations as f3, no !important
     (Divi's C8 `width:100%!important` full-width rows are not fought; the section padding does the work). */
  body.page-id-987491327 .et-l--post .et_builder_inner_content > .et_pb_section:not(.ss-sec) {
    padding-left: 50px;
    padding-right: 50px;
  }
  body.page-id-987491327 .et-l--post .et_builder_inner_content > .et_pb_section:not(.ss-sec) > .et_pb_row:not(.et_pb_row_nested) {
    width: 100%;
    max-width: 1340px;
  }
}

@media (min-width: 981px) {
  /* L. Block H fix (SITE-WIDE: home + every blog post band). With the 50px gutter the two `flex:0 1 auto`
     halves squeezed the form column at 981..~1150: Submit wrapped under the email field (band 190 -> 241
     at 1024). Form column keeps its content width; the heading column takes the rest and wraps instead. */
  .et_pb_row:has(form.ss-subscribe) > .et_pb_column:has(form.ss-subscribe) {
    flex: 0 0 auto;
  }
  .et_pb_row:has(form.ss-subscribe) > .et_pb_column:not(:has(form.ss-subscribe)) {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* K. /how-much/ Testimonials chip centring at ALL widths -- verbatim f2-chips CORE-25 block. Block I only
   reaches >=981px; at 390/768 the chip ink sat -129.8 / -318.8 off the heading centre. Needs !important
   to beat style.css ~3347 `.et_pb_section:has(blockquote) .et_pb_text_inner p{text-align:left !important}`. */
body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text:has(+ .et_pb_text h2) .et_pb_text_inner p {
  text-align: center !important;
}

/* ======== pass1 part: f4-overlays/CANDIDATE.v2.css ======== */
/* CANDIDATE.css -- f4-overlays, desktop-fix 2026-10. NOT DEPLOYED. Append after the live child style.css.
   Fixes CORE-01 (/more-tools/), IND-02 (/industries/), CORE-30 overlay only (/add-ons/) and re-resolves CORE-02.
   OPTION (b): the dark veil is OFF the photo and the photo moves out from behind the text into the site's
   standard hero: text on the #F4F4F4 panel, photo below it (730 / 280 at <=980, radius 20), exactly what
   /more-enrolment/ and the Feature / Industry templates draw (Industry Page Template.dc.html:43-60).
   No contrast is borrowed from a veil, so the photo is shown at 100%.

   WHY A PSEUDO-ELEMENT. On these 3 pages the photo is the SECTION's own background-image (a Divi section
   setting): `background-image:linear-gradient(<veil>), url(https://simplesalon2-dev.10web.cloud/wp-content/themes/divi-simpleworld/photo) !important` in the page's inline critical
   CSS, plus a fixed section height (`clamp(760px,56.25vw,1150px)`) and, on /industries/, `min-height:720px
   !important` twice. A rule cannot remove ONE layer of a background-image list, so the gradient and the photo
   go together: the section's image is cleared and the same photo is re-drawn as the section's last flex
   item (`::after`). The standard hero is a flex column (`.et_flex_section`), so the pseudo-element sits in
   the row flow exactly where `.ss-hero-img` sits on /more-enrolment/ (row gap 70 / 25 comes from the section).
   The photo URL is root-relative so it resolves on staging and on production.
   DEPENDENCY, stated once: if the photo file is swapped in Divi, update the URL here (3 places).
   THE CLEANER LONG-TERM FIX is a post_content change on each page (see TARGETS.md section "post_content"):
   delete the section's background image+gradient and add the photo as a divi/image row with class
   `ss-hero-img`; then this whole block is deleted. Until then this is the CSS-only route.

   The !important on background-image / min-height / height below is required: it answers the page's own
   `!important` declarations (specificity here is (0,5,0)+ against (0,1,0)/(0,2,1), so it is a real win,
   not an injection-order win). */

/* ---- CORE-01 + IND-02 : the two pages that are already `.ss-hero` (panel + type come from the standard rules) ---- */
:is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero {
  background-image: none !important;               /* CORE-01 / IND-02: veil + photo layer off the section */
  height: auto !important;                         /* /more-tools/ had clamp(760px,56.25vw,1150px) */
  min-height: 0 !important;                        /* /industries/ had 720px !important (x2) */
  justify-content: flex-start;                     /* was centre: crumb/heading floated mid-photo (CORE-02) */
  padding-bottom: 70px;                            /* = row gap above the photo, same as CORE-10 live rule */
}
@media (max-width: 980px) {
  :is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero {
    padding-bottom: 25px;                          /* CORE-10 mobile twin */
  }
}
/* the second veil on /more-tools/ (rgba(0,0,0,.58) ::before, style.css ~8266) */
body.page-id-987489322 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero::before {
  content: none;                                   /* CORE-01 */
}
/* the photo, re-drawn as the hero's last flex item
   ponytail: the hero photo URL is restated in CSS (3 pages: more-tools, industries, add-ons `::after` blocks).
   Ceiling: a photo swap in Divi will NOT change this picture; the URL here must be updated by hand.
   Upgrade path: add the photo as a divi/image row with class `ss-hero-img` (the standard hero, style.css:4194) in posts
   987489322, 987492453 and 987489140, clear the section background there, then delete every `::after` photo block and
   the `background-image:none/height/min-height` overrides in this file. */
:is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero::after {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 100%;
  max-width: 1340px;                               /* the rows' own max width; the photo is the same width as the text column */
  height: 730px;                                   /* design 730 */
  border-radius: var(--gvid-radius-row, 20px);     /* design 20 */
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
}
@media (max-width: 980px) {
  :is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero::after {
    height: 280px;                                 /* design mobile 280 */
  }
}
body.page-id-987489322 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero::after {
  background-image: url('https://simplesalon2-dev.10web.cloud/wp-content/uploads/2026/08/ss-more-tools-hero-2026-08.jpg');
}
body.page-id-987492453 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero::after {
  background-image: url('https://simplesalon2-dev.10web.cloud/wp-content/uploads/2026/08/ss-industries-hero-2026-08.jpg');
  background-position: 50% 45%;                    /* the page's own focal point */
}
/* text goes back to the standard panel colours (design #000000 / #636363). Beats the page-scoped white pairs
   (style.css ~8266-8311: (0,5,1)) and `.ss-hero--photo` white (0,3,1)/(0,4,0) by specificity: (0,6,x). */
:is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero h1,
:is(body.page-id-987489322, body.page-id-987492453) .et-l--post .et_builder_inner_content .et_pb_section.ss-hero .ss-hero-sub {
  color: #000000;                                  /* CORE-01 / IND-02 / CORE-02 */
}
body.page-id-987489322 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]) {
  color: #636363;                                  /* CORE-02: standard crumb colour; the F1 white-crumb block is NOT needed */
}
body.page-id-987489322 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero .ss-crumbs [aria-current="page"] {
  color: #000000;
}
body.page-id-987489322 .et-l--post .et_builder_inner_content .et_pb_section.ss-hero .ss-crumbs .ss-crumb-sep {
  border-top-color: #636363;
  border-right-color: #636363;
}

/* ---- CORE-30 (overlay part ONLY) : /add-ons/ hero, 987489140 ----
   Not a `.ss-hero` (old Divi hero: serif H1, uppercase sub, 60% black gradient on the section image, white
   text from module settings). Same mechanism and same remedy as above: veil + photo layer cleared, photo
   re-drawn below the text as the section's last flex item, text on the standard #F4F4F4 panel.
   The old serif/uppercase look and the missing breadcrumb are NOT touched (listed in TARGETS.md). */
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child {
  background-image: none !important;               /* CORE-30: 0.58 black gradient + photo layer off */
  background-color: #F4F4F4;
  border-bottom-left-radius: 30px;
  border-bottom-right-radius: 30px;
  height: auto;                                    /* was clamp(760px,56.25vw,1150px) */
  justify-content: flex-start;
  align-items: center;
  row-gap: 70px;
  padding: 70px 50px 70px;
}
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child::after {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 100%;
  max-width: 1340px;
  height: 730px;
  border-radius: var(--gvid-radius-row, 20px);
  background: url('https://simplesalon2-dev.10web.cloud/wp-content/uploads/2026/06/ss-add-ons-hero-2026-06-r3.jpg') 50% 50% / cover no-repeat;
}
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child h1,
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text p {
  color: #000000 !important;                       /* CORE-30: module settings set white (read-only here) */
  text-shadow: none;
}
@media (max-width: 980px) {
  body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child {
    row-gap: 25px;
    padding: 25px 15px 25px;
  }
  body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child::after {
    height: 280px;
  }
}

/* ==== v2 additions ==== */
/* ---- CORE-30 typography : /add-ons/ hero H1 + sub-line match /more-tools/ (values MEASURED live on /more-tools/ at 390/1440/2560) ----
   /more-tools/ H1: Poppins stack, 600, normal, 60px (30px <=980), letter-spacing -0.03em (-1.8px / -0.9px), line-height 1,
   no bottom padding, #000. Sub: Nunito 400, 18px / lh 1.2 (16px / lh 1.3 <=980), no text-transform, #000.
   /add-ons/ was: Yeseva One 700 73px (30 <=980) with 10px bottom padding; sub Montserrat 700 uppercase 18/14px.
   !important because the faces/weights/case come from module settings (inline critical CSS). Breakpoint 980 = the site's. */
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child h1 {
  font-family: 'Poppins', Helvetica, Arial, Lucida, sans-serif !important;
  font-weight: 600 !important;
  font-style: normal !important;
  font-size: 60px !important;
  letter-spacing: -0.03em !important;
  line-height: 1 !important;
  padding-bottom: 0 !important;
  text-transform: none !important;
}
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text p {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
@media (max-width: 980px) {
  body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child h1 {
    font-size: 30px !important;
  }
  body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text p {
    font-size: 16px !important;
    line-height: 1.3 !important;
  }
}
/* H1 -> sub gap: /more-tools/ measured 30px (390 and 1440), 31 here to net 30 after the 1px h1 line-box difference; /add-ons/ stacks two separate text modules with none */
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text ~ .et_pb_text {
  margin-top: 31px !important;
}
/* the old hero row carried margin-top 77px + padding-top 10px (centred-on-photo spacing); on the panel it is dead air above the H1 */
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child > .et_pb_row {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ======== pass1 part: f8-oldlook/CANDIDATE.css ======== */
/* CANDIDATE.css -- f8-oldlook, desktop-fix 2026-10. NOT DEPLOYED.
   Append after the live child style.css AND after f1-breadcrumb/CANDIDATE.css. No Divi ordinals;
   ss-* classes and Divi's own stable semantic classes (.et_pb_testimonial, .et_pb_button) only.
   Does not touch hero sections or section padding (f4 / f-spacing own those).

   WHAT THE DESIGN ACTUALLY DRAWS (transcribed, not assumed)
   The Industry/Feature templates' Values header is chip + H2 + ONE short centred sentence
   (Industry Page Template.dc.html:67-70: 18px/1.2, text-align:center, max-width 619, #000). The design
   has NO long-prose block anywhere, and it never left-aligns a standalone paragraph; its only left
   aligned body text is inside cards (radius 30, padding 35, 18px). The long SEO copy is therefore
   re-housed in the design's OWN card language (the testimonial-card wash, radius 30, padding 35,
   left aligned), keeping every word. That is a judgement call, listed in the reply. */

/* ====================================================================================
   A1. LONG SEO COPY IN THE VALUES HEADER (13 industry pages: .ss-values .ss-intro with 2+ paragraphs)
   Divi sets the header row to `max-width:659px!important` per module (.et_pb_row_N, an ordinal we
   cannot select), so the override must be !important too. Only rows that CONTAIN a multi-paragraph
   intro are widened; the short one-sentence intros of the rebuilt Feature pages are untouched.
   ==================================================================================== */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .et_pb_row:has(.ss-intro p + p) {
    max-width: 1340px !important;                    /* design content width */
    width: 100% !important;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) {
    max-width: none !important;
    width: 100%;
    box-sizing: border-box;
    text-align: left;                                /* long prose is never centred */
    background: linear-gradient(179.386deg, rgba(124, 77, 255, 0.07) -2.86%, rgba(166, 166, 166, 0.07) 107.83%); /* testimonial card wash */
    border-radius: 30px;                             /* design card radius */
    padding: 35px;                                   /* design card padding */
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) .et_pb_text_inner {
    column-count: 2;
    column-gap: 70px;                                /* design section gap */
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) p {
    margin: 0 0 20px;                                /* design card inner gap */
    font-size: 18px;
    line-height: 1.35;                               /* design accordion answer 18/1.35; 1.2 is too tight for 600px prose */
    text-align: left;
    color: #2F2F2F;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) p:last-child {
    margin-bottom: 0;
  }
  /* the bold lead sentence becomes the card's headline (design h3: Poppins 500, 25/1.2, -0.03em) */
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) p:first-child > strong:first-child {
    display: block;
    margin-bottom: 20px;
    font-family: Poppins, sans-serif;
    font-weight: 500;
    font-size: 25px;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: #000000;
  }
}

/* ====================================================================================
   A2. IND-06 (hair-salon): second H2 inside the intro text module touches the paragraph above it.
   Design header gap is 35px. Only targets an H2 that follows a paragraph inside .ss-intro.
   ==================================================================================== */
:is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro p + h2 {
  margin-top: 35px;
}

/* ====================================================================================
   C. IND-05 -- "Real Results from Real Businesses" case-study paragraphs (12 industry pages).
   Three unattributed case-study paragraphs sat as plain centred body text (no card).
   Re-housed as THREE cards in the design's card language (wash, radius 30, padding 35, left aligned,
   18px). NO stars, name or photo: these are unattributed case studies, not quotes, and industry-rebuild
   SPEC.md:212/716 forbids inventing a rating or testimonial. Words untouched.
   ==================================================================================== */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-testimonials .et_pb_row:has(.ss-intro p + p) {
    max-width: 1340px !important;
    width: 100% !important;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-testimonials .ss-intro:has(p + p) {
    max-width: none !important;
    width: 100%;
    text-align: left;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-testimonials .ss-intro:has(p + p) .et_pb_text_inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;                                       /* design card grid gap */
    align-items: stretch;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-testimonials .ss-intro:has(p + p) p {
    margin: 0;
    padding: 35px;                                   /* design card padding */
    border-radius: 30px;                             /* design card radius */
    background: linear-gradient(179.386deg, rgba(124, 77, 255, 0.07) -2.86%, rgba(166, 166, 166, 0.07) 107.83%);
    font-size: 18px;
    line-height: 1.35;
    text-align: left;
    color: #2F2F2F;
  }
}

/* ====================================================================================
   B. OLD-LOOK TESTIMONIAL BLOCKS -> the design's testimonial card.
   Design (Industry Page Template.dc.html:123-150, Mobile Views.dc.html:752-768): card radius 30 on the
   lavender wash, padding 35 (25 phone), five orange stars, quote Poppins 500 25px/1.2 -0.03em (18/1.3
   phone) centred, attribution 18px/1.2 (16 phone), all centred.
   Two legacy families, one shared look:
     (1) Divi 4 Testimonial module  .et_pb_testimonial  -- navy #0a223e slab, quote #2f2f2f on navy
         (1.2:1), portrait box holding the quote-mark image (renders as an empty outline on posts)
         [CORE-04 CORE-05 CORE-35]; 25 posts + /more-tools/ + /add-ons/
     (2) Divi 4 Slider used as a quote carousel inside a post (.ss-post-body .et_pb_slider)
         -- teal/white-on-colour slides, purple quote text [IND-21]; ~19 posts
   Divi's own rules for these are (0,2,0)-(0,4,0) and several are !important, so the overrides use
   body-prefixed selectors and !important only where Divi does.
   ==================================================================================== */
/* B0. the navy slab behind the module is a SECTION background set !important at (0,4,0) */
body .et-l--post .et_builder_inner_content .et_pb_section:has(.et_pb_testimonial) {
  background-color: transparent !important;
  background-image: none !important;
}
/* B1. the card */
body .et-l--post .et_pb_testimonial.et_pb_testimonial {
  background: linear-gradient(179.386deg, rgba(124, 77, 255, 0.07) -2.86%, rgba(166, 166, 166, 0.07) 107.83%) !important;
  border-radius: 30px;
  padding: 35px !important;                          /* Divi sets 100px !important on the module */
  margin: 0 auto !important;
  max-width: 1340px;
  box-sizing: border-box;
  text-align: center;
}
body .et-l--post .et_pb_testimonial .et_pb_testimonial_inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 35px;                                         /* design card inner gap */
}
/* stars: the design draws five 36px orange stars above every quote */
body .et-l--post .et_pb_testimonial .et_pb_testimonial_inner::before {
  content: "\2605\2605\2605\2605\2605";
  display: block;
  font-size: 36px;
  line-height: 1;
  letter-spacing: 10px;                              /* design star gap */
  padding-left: 10px;                                /* balances the trailing letter-space so the row is centred */
  color: #FF7043;
}
/* the quote-mark "portrait" is decoration only (alt=""), and renders as an empty outlined box on posts */
body .et-l--post .et_pb_testimonial .et_pb_testimonial_portrait {
  display: none !important;
}
body .et-l--post .et_pb_testimonial .et_pb_testimonial_description {
  margin: 0 !important;
  padding: 0;
  width: 100%;
  min-height: 0;
}
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_content,
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_content p {
  font-family: Poppins, sans-serif !important;       /* literal: on posts --et_global_heading_font resolves to Nunito */
  font-weight: 500 !important;
  font-size: 25px !important;                        /* posts: `.ss-post-body p{font-size:18px!important}` (0,2,1) */
  line-height: 1.2 !important;
  letter-spacing: -0.03em;
  color: #000000 !important;                         /* design quote #000; kills the 1.2:1 #2f2f2f-on-navy */
  text-align: center;
  max-width: 660px;                                  /* design quote measure */
  margin-left: auto;
  margin-right: auto;
}
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_company,
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_company a,
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_position,
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_separator {
  display: inline;                                   /* "Name, role, company" reads as one attribution line */
  font-size: 18px;
  line-height: 1.2;
  font-weight: inherit;
  color: #2F2F2F !important;
  margin: 0;
  padding: 0;
}
body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_author {
  display: block;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 18px;                                   /* design attribution 18 */
  font-weight: inherit;
  line-height: 1.2;                                  /* Divi's 0.1em made name and role collide (CORE-05) */
  color: #2F2F2F !important;
  text-align: center;
  margin: 35px 0 0;                                  /* design inner gap 35 (flex gap cannot reach: quote + author share one wrapper) */
  padding: 0;
}
body .et-l--post .et_pb_testimonial .et_pb_testimonial_meta {
  display: block;                                    /* carries role/company text on a few posts: keep every word, style as attribution */
  font-size: 18px;
  line-height: 1.2;
  color: #2F2F2F !important;
  text-align: center;
  margin: 0;
}
body .et-l--post .et_pb_testimonial .et_pb_testimonial_meta * {
  display: inline;                                   /* role + company were split across lines on a few posts */
  margin: 0;
}
/* the light-theme variant draws a grey quote-mark badge (Divi's icon pseudo) straddling the card's top edge */
body .et-l--post .et_pb_testimonial.et_pb_testimonial::before {
  display: none !important;
}

/* B2. the coral ALL-CAPS pill beside the quote on /more-tools/ and /add-ons/ (CORE-04, CORE-05):
   the design's one button is the orange pill, sentence case, 100 radius. The row is a 3/4 + 1/4 block
   layout; stack it so the pill sits centred under the card (and gets a gutter on phones). */
body .et-l--post .et_builder_inner_content .et_pb_row:has(.et_pb_testimonial) {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 35px;
  width: 100%;
  max-width: 1340px;
}
body .et-l--post .et_builder_inner_content .et_pb_row:has(.et_pb_testimonial) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}
body .et-l--post .et_builder_inner_content .et_pb_row:has(.et_pb_testimonial) > .et_pb_column:not(:has(.et_pb_testimonial)) {
  width: auto !important;
}
body #page-container .et-l--post .et_pb_row:has(.et_pb_testimonial) a.et_pb_button {
  background-color: #FF7043 !important;              /* brand orange, fixed */
  border: 0 !important;
  border-radius: 100px !important;
  padding: 12px 30px !important;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #FFFFFF !important;
}
body #page-container .et-l--post .et_pb_row:has(.et_pb_testimonial) a.et_pb_button:hover {
  background-color: #E85F35 !important;
  padding: 12px 30px !important;
}
body #page-container .et-l--post .et_pb_row:has(.et_pb_testimonial) a.et_pb_button::after {
  display: none !important;                          /* the "->" icon glyph; the design pill has none */
}

@media (max-width: 980px) {
  body .et-l--post .et_pb_testimonial.et_pb_testimonial {
    padding: 25px !important;                        /* design phone card padding 25 */
  }
  body .et-l--post .et_pb_testimonial .et_pb_testimonial_inner {
    gap: 20px;                                       /* design phone card inner gap 20 */
  }
  body .et-l--post .et_pb_testimonial .et_pb_testimonial_inner::before {
    font-size: 24px;                                 /* design phone star 24 */
    letter-spacing: 8px;
    padding-left: 8px;
  }
  body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_content,
  body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_content p {
    font-size: 18px !important;                      /* design phone quote 18/1.3 (posts force 16px !important) */
    line-height: 1.3 !important;
    max-width: none;
  }
  body .et-l--post .et_pb_testimonial.et_pb_testimonial .et_pb_testimonial_author {
    font-size: 16px;                                 /* design phone attribution 16 */
    margin-top: 20px;                                /* design phone inner gap 20 */
  }
  body #page-container .et-l--post .et_pb_row:has(.et_pb_testimonial) a.et_pb_button {
    font-size: 18px !important;                      /* design phone button 18 / 15px 30px */
    padding: 15px 30px !important;
  }
  body .et-l--post .et_builder_inner_content .et_pb_row:has(.et_pb_testimonial) {
    padding-left: 15px;                              /* the pill was flush to x=0 at 390 (CORE-05) */
    padding-right: 15px;
    box-sizing: border-box;
  }
}

/* ====================================================================================
   B3. (family 2) Divi Slider used as an in-post quote carousel -- IND-21 (afterpay-is-here,
   afterpaycomingsoon, zip-is-here..., and ~16 more posts; every instance is a quote slider: title text
   starts with a quotation mark, name + role in the slide content).
   Why these are not folded into the existing `.ss-testimonials .et_pb_slider` rules (style.css ~2555,
   3708-3760, 5465): those are scoped to the `ss-testimonials` section class, which in-post sliders do not
   carry, and the card wash itself is a Divi module setting there, not CSS. Same numbers, new scope.
   ==================================================================================== */
body .ss-post-body .et-l--post .et_pb_section:has(.et_pb_slider .et_pb_slide_title) {
  background-color: transparent !important;
  background-image: none !important;                 /* teal photo/colour slab (bg image lives on production uploads) */
}
body .ss-post-body .et-l--post .et_pb_slider:has(.et_pb_slide_title) {
  background: linear-gradient(179.386deg, rgba(124, 77, 255, 0.07) -2.86%, rgba(166, 166, 166, 0.07) 107.83%) !important;
  border-radius: 30px;
  padding: 35px;
  box-sizing: border-box;
}
body .ss-post-body .et-l--post .et_pb_slider:has(.et_pb_slide_title)::before {
  content: "\2605\2605\2605\2605\2605";
  display: block;
  text-align: center;
  font-size: 36px;
  line-height: 1;
  letter-spacing: 10px;
  padding-left: 10px;
  margin-bottom: 35px;
  color: #FF7043;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide {
  padding-left: 0;
  padding-right: 0;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide .et_pb_slide_description {
  padding: 0;
  text-shadow: none;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et_pb_slide .et_pb_slide_description .et_pb_slide_title,
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et_pb_slide .et_pb_slide_description .et_pb_slide_title a {   /* beats Divi's per-slide `.et_pb_slide_N` 35px!important at (0,5,0) */
  font-family: Poppins, sans-serif !important;
  font-weight: 500 !important;
  font-size: 25px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em;
  color: #000000 !important;                         /* the link inside was brand purple on teal */
  text-decoration: none;
  padding-bottom: 0;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_title {
  max-width: 660px;
  margin: 0 auto;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content,
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content p {
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 18px !important;
  line-height: 1.2 !important;
  color: #2F2F2F !important;
  text-shadow: none;
  margin: 0;
  padding: 0;
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content {
  margin-top: 35px;
}
body .ss-post-body .et-l--post .et_pb_slider .et-pb-controllers {
  position: static;
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 35px;
  width: auto;
  height: auto;
}
body .ss-post-body .et-l--post .et_pb_slider .et-pb-controllers a {
  width: 12px;
  height: 12px;
  margin: 0;
  border-radius: 200px;
  background-color: #D9D9D9;
  opacity: 1;
}
body .ss-post-body .et-l--post .et_pb_slider .et-pb-controllers a.et-pb-active-control {
  background-color: #FF7043;
}
@media (max-width: 980px) {
  body .ss-post-body .et-l--post .et_pb_slider:has(.et_pb_slide_title) {
    padding: 25px;
  }
  body .ss-post-body .et-l--post .et_pb_slider:has(.et_pb_slide_title)::before {
    font-size: 24px;
    letter-spacing: 8px;
    padding-left: 8px;
    margin-bottom: 20px;
  }
  body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et_pb_slide .et_pb_slide_description .et_pb_slide_title,
  body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et_pb_slide .et_pb_slide_description .et_pb_slide_title a {
    font-size: 18px !important;
    line-height: 1.3 !important;
  }
  body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content,
  body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content p {
    font-size: 16px !important;
  }
  body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide_content {
    margin-top: 20px;
  }
}
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et-pb-active-slide,
body .ss-post-body .et-l--post .et_pb_slider .et_pb_slide.et-pb-active-slide .et_pb_container {
  min-height: 0 !important;                          /* Divi's JS pins an inline min-height (~400px) = a tall empty card */
  height: auto !important;
}

/* ======== pass1 part: f-spacing/CANDIDATE.css ======== */
/* CANDIDATE.css -- f-spacing, desktop-fix 2026-10. NOT DEPLOYED. Re-based 8 Oct whitespace-2026-10/CANDIDATE-SPACING.css.
   Write order (append to live child style.css, in this order):
     live style.css (568,545 B, sha 25eca1a6..., already holds the CORE-10 hero-bottom rule)
       -> f1-breadcrumb/CANDIDATE.css -> home-pricing/CANDIDATE.css -> THIS FILE (last).
   Section padding  <= 35 per side @<=980  /  <= 70 per side @>=981
   In-section flex row-gap 25 @<=980 / 40 @>=981;  row padding <= 15 / 35;  see whitespace-2026-10/REPORT.md s3, s6.
   Rules: ss-* classes / body.home / body.page-id-N only; no Divi ordinals; no var(); literal px; every breakpoint
   rule fully inside its own media query. CSS cannot "cap" an unknown value, so each rule names a family whose live
   value is ALWAYS above the target (it can only reduce); nothing here may grow a gap (checked by run.py).
   !important on section padding / row-gap: Feature/Industry pages carry padding in Divi module settings
   (`.et_pb_section_N.et_pb_section`, 0,2,0) and the comparison block in style.css s8 is !important.

   CHANGES vs the 8 Oct candidate (all measured against live+f1+home-pricing):
   1. spacing-pass-2026-10/CANDIDATE.css is no longer a prerequisite: its CORE-10 rule is LIVE, its crumb rule is
      superseded by f1. The photo-hero exclusion below stays: live CORE-10 owns photo-ended heroes (70 / 25) and an
      !important rule here would otherwise override it.
   2. home-pricing owns "/" and /how-much/ at >=981. Same property on the same element -> this file defers:
        - desktop `body.home` row padding-bottom 35 (hp sets 0 !important on those rows): REMOVED
        - desktop `body.home` CTA-card row padding 70 (card interior, design-matched by hp): REMOVED
        - desktop in-section row-gap 40 !important (hp sets 70 / 35 / 20 on home sections): home excluded
        - desktop `.ss-feature-icon` margin-bottom 25 (hp section B/E zero/own the home feature cards): REMOVED
      Properties hp does NOT set stay: section padding-top/bottom, how-much crumb margin. They are kept in the
      HOME + HOW-MUCH blocks so the coordinator can delete them in one cut if hp should own the whole page.
   2b. Two "can only reduce" repairs found by the nothing-grows check (a fixed value GROWS a section whose live value is lower):
        - /contact-us/ (page-id-987489178): its ss-values carries Divi's 54/54 default, so desktop 70/70 made it +32px taller:
          excluded from the desktop ss-values rule.
        - /more-tools/ (page-id-987489322): fixed-height photo hero (760 @390 / 810 @1440, content centred); cutting its
          padding-bottom saves no scroll, only shoves the centred crumb/heading (+17px gap @390): excluded from both hero-bottom rules.
   3. <=980 rules are unchanged (hp and f1 do not touch them at <=980 except f1's breadcrumb margin). */

/* =====================================================================================================
   A. SECTION PADDING -- phone/tablet (<=980): 35 per side
   ===================================================================================================== */
@media (max-width: 980px) {
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-faq,           /* ss-faq        35|70 / 70|70 -> 35/35 (top already 35 after a CTA, 70 otherwise) */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-values,        /* ss-values     70/70          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-benefits,      /* ss-benefits   70/70 or 50/50 -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-versus-sec,    /* ss-versus-sec 70/35          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-intro-sec,     /* ss-intro-sec  50/50          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry,       /* ss-enquiry    70/70          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-post-main,     /* ss-post-main  50/50          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-post-relsec,   /* ss-post-relsec 50/50         -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-legal,         /* ss-legal      50/50          -> 35/35 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-blog {         /* ss-blog       50/50          -> 35/35 */
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }

  /* ss-hero, NON-photo heroes only (trust-row / stats ending). Top stays (25, below cap).
     bottom 70 -> 35. Photo-ended heroes keep CANDIDATE.css (25). */
  body:not(.page-id-987489322) :is(.et-l--post, .et-l--body) .et_pb_section.ss-hero:not(:has(> .et_pb_row:last-child .ss-hero-img)) {
    padding-bottom: 35px !important;                             /* HERO BAND: 70 -> 35 */
  }

  /* HOME + HOW-MUCH plain Divi sections (no ss-* class): hooked on a CHILD class that only that section holds. */
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-card-heading),     /* home 'solutions' cards:  35|70 -> 35/35 */
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-home-feed),        /* home blog-feed (tint):   70/70 -> 35/35 */
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .et_pb_section:has(.compare_cta),    /* how-much compare: 70/70 -> 35/35 */
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .et_pb_section:has(.et_pb_column_2_3) { /* how-much grey band: 70/70 -> 35/35 */
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }
  /* how-much plans section: top is 0, only the bottom (70) comes down; the top MUST NOT be raised */
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-plan-head) {
    padding-bottom: 35px !important;                             /* how-much plans: 0|70 -> 0|35 */
  }
  /* home 'features' section (icons): bottom 35 already, top 70 -> 35 */
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-feature-icon) {
    padding-top: 35px !important;                                /* home features: 70 -> 35 */
  }
}

/* =====================================================================================================
   A. SECTION PADDING -- desktop (>=981): 70 per side
   ===================================================================================================== */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-faq,           /* ss-faq        70|140 / 140|140 -> 70/70 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-values:not(body.page-id-987489178 .ss-values),        /* ss-values     140/140          -> 70/70 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-versus-sec,    /* ss-versus-sec 140/70           -> 70/70 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry {      /* ss-enquiry    140/140          -> 70/70 */
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }
  /* ss-benefits: 140/140 on Feature/Industry/Home pages, but 54/54 (Divi default, already <70) on comparison pages.
     Comparison pages are the ones that also carry .ss-versus-sec, as an earlier sibling. Exclude them so the rule
     only ever reduces. */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-benefits:not(.ss-versus-sec ~ .ss-benefits) {
    padding-top: 70px !important;                                /* ss-benefits 140 -> 70 */
    padding-bottom: 70px !important;
  }

  /* ss-hero, non-photo heroes: bottom 140 -> 70. Top 0 stays. Photo-ended heroes keep CANDIDATE.css (70). */
  body:not(.page-id-987489322) :is(.et-l--post, .et-l--body) .et_pb_section.ss-hero:not(:has(> .et_pb_row:last-child .ss-hero-img)) {
    padding-bottom: 70px !important;                             /* HERO BAND: 140 -> 70 */
  }

  /* HOME plain sections */
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-card-heading) {
    padding-bottom: 70px !important;                             /* home solutions: 70|140 -> 70/70 */
  }
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-feature-icon) {
    padding-top: 70px !important;                                /* home features: 140|70 -> 70/70 */
  }
  body.home :is(.et-l--post, .et-l--body) .et_pb_section:has(.ss-home-feed) {
    padding-top: 70px !important;                                /* home blog-feed (tint): 140/140 -> 70/70 */
    padding-bottom: 70px !important;
  }
  /* HOW-MUCH compare section: top 140 -> 70 */
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .et_pb_section:has(.compare_cta) {
    padding-top: 70px !important;                                /* how-much compare: 140|70 -> 70/70 */
  }
}

/* =====================================================================================================
   B. IN-SECTION FLEX ROW-GAP (the doubled 70 row padding + 60 gap = 130 on the homepage)
   ===================================================================================================== */
@media (max-width: 980px) {
  /* 35 (home), 60 (blog post), 25 (ss-*, no change) -> 25. Home 'solutions' cards section is already 20 (<25):
     excluded so this rule only ever reduces. */
  :is(.et-l--post, .et-l--body) .et_pb_section.et_flex_section:not(:has(.ss-card-heading)) {
    row-gap: 25px !important;                                    /* ROW-GAP: 35|60|25 -> 25 */
  }
}
@media (min-width: 981px) {
  body:not(.page-id-987489070) :is(.et-l--post, .et-l--body) .et_pb_section.et_flex_section {   /* "/" is home-pricing's */
    row-gap: 40px !important;                                    /* ROW-GAP: 60|70 -> 40 */
  }
}

/* =====================================================================================================
   C. ROW PADDING
   ===================================================================================================== */
/* CTA card row (`.ss-cta`, and the same unclassed card on the Home page): the 140/70 here is the INSIDE of a
   filled gradient card, not white space between blocks. DELIBERATE DEVIATION from the generic 35/15 row cap:
   15px inside a rounded card on a 390 screen would jam the heading to the card edge. Halved instead (design
   ratio), 140 -> 70 desktop / 70 -> 35 phone. */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_pb_section > .et_pb_row.ss-cta {
    padding-top: 70px !important;                                /* CTA card row: 140/140 -> 70/70 */
    padding-bottom: 70px !important;
  }
  /* (8 Oct: HOME stacked-row padding-bottom 70 -> 35 removed: home-pricing sets those rows to 0 !important.) */
}
@media (max-width: 980px) {
  :is(.et-l--post, .et-l--body) .et_pb_section > .et_pb_row.ss-cta,
  body.home :is(.et-l--post, .et-l--body) .et_pb_section > .et_pb_row:only-child:has(> .et_pb_column > .et_pb_button_module_wrapper) {
    padding-top: 35px !important;                                /* CTA card row: 70/70 -> 35/35 */
    padding-bottom: 35px !important;
  }
  /* REMOVED after the visual review: capping the ss-testimonials slider row (25/25 -> 15/15). That row IS the
     lilac testimonial card, so 15 left the stars and the pager dots 15px from the card edge: cramped. Kept at 25. */
  /* Home closing-note section (single row, two stacked modules, no button): row 25/25 -> 15/15 */
  body.home :is(.et-l--post, .et-l--body) .et_pb_section > .et_pb_row:only-child:not(:has(> .et_pb_column > .et_pb_button_module_wrapper)):has(> .et_pb_column > .et_pb_module + .et_pb_module) {
    padding-top: 15px !important;                                /* home closing-note row: 25 -> 15 */
    padding-bottom: 15px !important;
  }
}

/* =====================================================================================================
   D. MODULE MARGINS (only the families that have a class to hang on; the rest are Divi module settings
      with no class, see the report in the hand-off)
   ===================================================================================================== */
@media (min-width: 981px) {
  /* (8 Oct: .ss-feature-icon margin-bottom 35 -> 25 removed: card-internal, design 35, home-pricing owns the home feature cards.) */
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .ss-crumbs {
    margin-bottom: 25px !important;                              /* how-much crumb -> H1: 70 -> 25 */
  }
}
@media (max-width: 980px) {
  :is(.et-l--post, .et-l--body) .ss-versus-note {
    margin-top: 20px !important;                                 /* versus note: 25 -> 20 */
  }
  body.page-id-987491327 :is(.et-l--post, .et-l--body) .ss-crumbs {
    margin-bottom: 25px !important;                              /* how-much crumb -> H1: 70 -> 25 */
  }
}

/* =====================================================================================================
   E. TRANSACTIONAL PAGES (/stripe /afterpay /payleadr /tyro /zip-2): ss-testimonials and the closing ss-sec carry
      140/140 (35 or 70 per side at <=980) here, unlike the 0/70 everywhere else. Added in f-spacing after the
      stacked run still showed 250 / 235 px seams on these pages. Hooked on `.ss-enquiry ~ ...` (only these pages
      have an enquiry section as an earlier sibling), so nothing else can match and nothing can grow.
   ===================================================================================================== */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry ~ .et_pb_section.ss-testimonials,   /* 140/140 -> 70/70 */
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry ~ .et_pb_section.ss-faq + .et_pb_section.ss-sec {   /* stripe closing band 140/140 -> 70/70 */
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }
}
@media (max-width: 980px) {
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry ~ .et_pb_section.ss-testimonials,
  :is(.et-l--post, .et-l--body) .et_pb_section.ss-enquiry ~ .et_pb_section.ss-faq + .et_pb_section.ss-sec {
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }
}

/* ======== pass1 part: CANDIDATE.fix.css (combined-stack interaction) ======== */
/* CANDIDATE.fix.css -- append AFTER CANDIDATE.css (combined-check 2026-10-12).
   Interaction f4-overlays x f-spacing on /industries/ (page-id-987492453) at <=980 only.
   f4 draws that hero's photo as a ::after, so f-spacing's "non-photo hero" rule
   (`.ss-hero:not(:has(> .et_pb_row:last-child .ss-hero-img))`, specificity 0,7,1, !important) does not recognise it as
   photo-ended and RAISES the hero's bottom padding 25 -> 35 (hero 556.2 -> 566.2 @390). /more-tools/ is already excluded
   there by page id; /industries/ was missed. Restores the CORE-10 mobile value f4 set (25). Desktop is unaffected
   (f-spacing's desktop bottom is 70 = f4's 70). Selector is (0,8,1) so it wins on specificity, not only on order. */
@media (max-width: 980px) {
  body.page-id-987492453.page-id-987492453 .et-l--post .et_builder_inner_content .et_pb_section.et_pb_section.ss-hero.ss-hero {
    padding-bottom: 25px !important;
  }
}


/* ---- desktop-fix-2026-10 pass2: testimonial dots gap, /industries/ hero top ---- */

/* P2-1 (homepage testimonial dots). Divi's default .et-pb-controllers is position:absolute;bottom:20px, which pins the
   dots INSIDE the slide box, on top of the author line (the .ss-testimonials class that fixes this on the feature pages
   is not on the home slider, and the live home rule only restyled the dots, not their position). Put them back in flow
   below the author. Design (Homepage.dc.html:210-217): column gap 35px + dots margin-top 35px = 70px author->dots,
   dots 12px / gap 8px (already set by the live home rule). Desktop only: the <=980 home rule already does position:static. */
@media (min-width: 981px) {
  body.page-id-987489070 .et-l--post .et_pb_slider .et-pb-controllers {
    position: static;
    bottom: auto;
    width: auto;
    height: auto;
    margin-top: 70px;
  }
  /* Divi's slider JS stamps the TALLEST slide's height on every slide's .et_pb_container as an inline style, so the
     author line of any shorter slide floats above the dots by a variable extra gap (measured 50-155px). Let the active
     slide size to its own content so the gap is the design's 70px on every slide; the column is centred inside a
     660px-min-height row (as in the design), so the page below does not move. Needs !important: it overrides an
     inline style. */
  body.page-id-987489070 .et-l--post .et_pb_slider .et_pb_slide .et_pb_container {
    height: auto !important;
  }
}

/* P2-2 (/industries/ hero top). This hero has no breadcrumb, so its H1 sits flush under the header (0px at desktop,
   25px at 390). A breadcrumb'd hero (/more-enrolment/) puts the H1 84.2px (desktop) / 66.8px (390) below the header
   bottom. Pad the hero section by the difference. Cleaner fix: add the breadcrumb module to this page's post_content
   like every other content page, then delete this block. */
@media (min-width: 981px) {
  body.page-id-987492453 .et-l--post .ss-hero.ss-hero--photo {
    padding-top: 84.2px;
  }
}
@media (max-width: 980px) {
  body.page-id-987492453 .et-l--post .ss-hero.ss-hero--photo {
    padding-top: 66.8px;
  }
}


/* ---- desktop-fix-2026-10 pass3: homepage card in-card gaps at desktop (f-cardgap) ---- */
/* CANDIDATE.css -- f-cardgap, desktop-fix 2026-10. NOT DEPLOYED. Append to the live child style.css (637,648 B, sha caf0c8dc...).

   DEFECT CG-1  Homepage solutions cards (More bookings / enrolment / clients / freedom / tools):
                gaps icon+title -> chip -> blurb -> image measured 45 / 65 / 65 px @>=981 vs 20 / 20 / 20 @390.
   DEFECT CG-2  Homepage violet "Features" cards (Bookings / Reports / Online booking):
                gaps icon -> title -> paragraph measured 65 / 50 px @>=981 vs 35 / 15 @390.

   MECHANISM (measured with computed styles + CSSOM rule match, see TARGETS.md)
   Every gap is the SUM of two things Divi stacks on desktop and the signed-off 390 pass removes:
     a) the column flex row-gap:  `.et_flex_column{row-gap:var(--vertical-gap)}` = 30px at >=981 (the mobile pass
        sets 20 / 15 inside max-width:980px);
     b) per-module margins authored in the post_content module settings, emitted by Divi's critical CSS as
        ordinal rules, !important:
          .et_pb_text_13,_16,_19,_22,_25 {margin-bottom:15px !important}                     (card title)
          .et_pb_text_15,_18,_21,_24,_27 {margin-top/bottom:var(--gvid-space-m)=35px !important} (card blurb)
          feature icon margin-bottom 35, feature title margin-bottom 20.
      The 390 pass zeroes (b) with `@media(max-width:980px){body.page-id-987489070 .et_pb_column>.et_pb_module{margin:0!important}}`
      and restores the feature icon's 20px; there is no desktop counterpart, so desktop = 30 + 15, 30 + 35 + 35 ...

   FIX: the desktop counterpart of the 390 pass, hooked on the card's OWN classes (.ss-card; the column that
   holds .ss-feature-icon) -- no Divi ordinals, no body/page-id scope. Target = the live 390 rhythm exactly
   (20/20/20 and 35/15). The design export is looser (see TARGETS.md); the owner asked for the 390 feel.
   !important on module margins is REQUIRED (the authored ordinal rules are !important); the selectors out-specify
   them (0,4,0 / 0,5,0 vs 0,1,0), so the rule does not depend on injection position. Row-gap needs no !important:
   (0,3,0) beats Divi's (0,1,0). Entirely inside min-width:981px, so 360/390/430/768 cannot move. */

@media (min-width: 981px) {
  /* CG-1  solutions cards: gap is the only spacer, 20px = the 390 value */
  .et-l--post .et_pb_column.ss-card {
    row-gap: 20px;
  }
  .et-l--post .et_pb_column.ss-card > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* CG-2  features cards: 15px gap + 20px under the icon (=35) + 15 between title and paragraph, as at 390 */
  .et-l--post .et_pb_column:has(> .ss-feature-icon) {
    row-gap: 15px;
  }
  .et-l--post .et_pb_column:has(> .ss-feature-icon) > .et_pb_module {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .et-l--post .et_pb_column:has(> .ss-feature-icon) > .ss-feature-icon.et_pb_module {
    margin-bottom: 20px !important;
  }
}


/* ---- desktop-fix-2026-10 pass4: pricing slider labels, pricing spacing, desktop burger hidden ---- */

/* == f-hamburger == */
/* f-hamburger: owner complaint "hamburger menu meant for mobile only showing on desktop".
   The header code module (Theme Builder header, inline <style>) draws `.ssh-burger` as
   display:inline-flex at EVERY width and only shrinks it (48->36px) under 980px; it never
   hides it. The full nav (.ssh-nav) and Free Trial are hidden only at max-width:980px, so
   at 981px+ the burger is redundant. 981 matches the module's own (max-width:980px) edge and
   ss-mobile-nav.js BREAKPOINT, so mobile (<=980) is untouched.
   Specificity (0,2,0) beats the module's `.ssh-burger` (0,1,0) irrespective of source order. */
@media (min-width: 981px) {
  .ssh .ssh-burger {
    display: none;
  }
}

/* == f-slider == */
/* ======================================================================
   F-SLIDER -- "slider is not precise to the operator numbers" (owner, 2026-10-12)
   Page: /how-much/ (post 987491327). Markup is built at runtime by ss-pricing.js
   (input.ss-staff-range + div.ss-staff-ticks > span.ss-staff-tick x7); no
   post_content or JS change is needed.

   ROOT CAUSE: the 7 tick labels were laid out `display:flex; justify-content:
   space-between` with content-sized (unequal-width) items, so each label's CENTRE
   fell wherever its text width put it. The native range thumb centre travels
   from d/2 to W-d/2 in 6 equal steps. Two different layouts -> up to 46px apart.

   FIX: give each tick ZERO layout width and let its text overflow centred
   (flex + justify-content:center overflows both sides equally), and pad the tick
   row by d/2 so the 7 zero-width items are spread across exactly the thumb's
   travel. Centre of tick i = d/2 + (W-d) * i/6 = the thumb centre at value i.
   Weight change on .is-active cannot move a centre (overflow is symmetric).

   --ss-staff-thumb MUST equal the rendered thumb diameter set in the existing
   ::-webkit-slider-thumb rules: 22px at <=980, 26px at >=981. Firefox's
   ::-moz-range-thumb rule is the base file's 24px (never overridden), so on
   Firefox the residual is 1px (<=980) / 1px (>=981) -- both well under a pixel
   of visual meaning; noted, not chased.
   ====================================================================== */
body.page-id-987491327 .ss-staff-ticks {
  --ss-staff-thumb: 22px;
  justify-content: space-between;
  padding-left: calc(var(--ss-staff-thumb, 22px) / 2);
  padding-right: calc(var(--ss-staff-thumb, 22px) / 2);
}

@media (min-width: 981px) {
  body.page-id-987491327 .ss-staff-ticks {
    --ss-staff-thumb: 26px;
  }
}

body.page-id-987491327 .ss-staff-tick,
body.page-id-987491327 .ss-staff-tick:first-child,
body.page-id-987491327 .ss-staff-tick:last-child {
  display: flex;
  justify-content: center;
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  text-align: center;
}

/* == f-pricing-spacing == */
/* CANDIDATE.css -- f-pricing-spacing, desktop-fix 2026-10. NOT DEPLOYED. Append to the live child style.css (640,678 B, sha ec484987...).

   COMPLAINT  "The Pricing page needs work ... The spacing between things needs adjusting to match the rest of the site".
   TARGET     the site rhythm the owner just approved, as measured on /online-bookings/ and the homepage:
                section content -> next section content   140 desktop (70 + 70) / 70 phone
                header block -> content                    40 desktop / 25 phone
                control or caption stacks                  20 desktop / 12-20 phone
   MECHANISM  /how-much/ is plain Divi sections (no ss-sec / ss-* section class), so the site-wide section and row
              caps never reached it. Divi's default 27px row padding (top AND bottom, !important) stacks on top of the
              section padding and on the previous row's padding. The phone pass already zeroes those rows on this page
              (live style.css, "vertical rhythm" blocks); desktop was "deliberately left as authored" (live comment).
              This file is the desktop counterpart, plus two phone gaps that are out of step at 390 as well.
   HOOKS      content-stable, no Divi ordinals: #ddlOperatorCount (slider section), h1, .starter_price (plans),
              .ss-compare-wrap / .compare_cta, blockquote (testimonials), .ss-see-features. Page scope body.page-id-987491327.
   CASCADE    Divi emits row padding !important, so every row rule here is !important at the same specificity as the
              live phone rules. Rules that TIE with live ones (hero/slider/plans section padding, same selector) win
              by source order only -- they are appended after them, as the injection simulates.
   The operator slider itself (.ss-staff*, #ddlOperatorCount, ticks) is not touched; only the rows around it. */

@media (min-width: 981px) {
  /* PR-1  hero sub -> region picker  94 -> 40.  The hero row keeps its top padding (breadcrumb), loses its bottom 27. */
  body.page-id-987491327 .et-l--post > .et_builder_inner_content .et_pb_section:has(h1) > .et_pb_row.et_pb_row {
    padding-bottom: 0 !important;
  }

  /* PR-2  region -> slider -> toggle  54 / 54 -> 20 / 20;  PR-3 toggle -> first plan card  149 -> 40.
     Rows lose the 27/27 Divi padding; each control row gets a 20 bottom, the last (an empty code row that was 55px of
     phantom space) none; the section's own bottom goes to 0 so the plans section's 20 top is the only spacer left. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) {
    padding-bottom: 0 !important;
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) > .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 20px !important;
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(#ddlOperatorCount) > .et_pb_row.et_pb_row:last-child {
    padding-bottom: 0 !important;
  }

  /* PR-4  plan cards -> price footnote  54 -> 20;  PR-5 footnote -> "See All Features"  52 -> 40.
     Card internals (15 between name / price / SMS / button / text) already equal the site and are untouched. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) > .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(> .et_pb_row .starter_price) > .et_pb_row.et_pb_row + .et_pb_row {
    margin-top: 20px;
  }
  body.page-id-987491327 .ss-see-features {
    margin-top: 40px;
  }

  /* PR-6  "See All Features" -> compare heading  167 -> 140 (= 70 + 70, the site's section boundary);
     PR-7  heading -> table  70 -> 40;  PR-8 table -> section CTA  69 -> 40;  PR-9 CTA -> rating band  117 -> 90 (as on /online-bookings/). */
  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) > .et_pb_row.et_pb_row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) > .et_pb_row.et_pb_row + .et_pb_row {
    margin-top: 40px;
  }
  /* the compare table's own wrapper already carries 15 below it, so the CTA row needs 25 to make the gap 40 */
  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) > .et_pb_row.et_pb_row:has(.compare_cta) {
    margin-top: 25px;
  }

  /* PR-10  rating band -> TESTIMONIALS chip  117 -> 90 (20 band padding + 70 section top = the band's other side and the
     site boundary).  The grey section keeps its 70 top: a chip flush to the grey edge looks wrong (0 was tried and
     rejected from the screenshots).  Only Divi's 27 row padding goes. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) > .et_pb_row.et_pb_row:first-child {
    padding-top: 0 !important;
  }
}

@media (max-width: 980px) {
  /* (390 rating band -> chip stays 55 = 20 + 35, the same as the band's other side and every other 390 section boundary.) */
  /* PR-11p  TESTIMONIALS chip -> "Success stories"  0 -> 25 (site chip -> heading at 390 = 25; the FAQ chip on this page
     already has it).  Same "module just before the heading" hook the live FAQ rule uses; !important because the
     phone pass zeroes module margins with !important. */
  body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text:has(+ .et_pb_text h2) {
    margin-bottom: 25px !important;
  }
  /* PR-12p  "Success stories" -> lavender quote panel  ~12 -> 25 at 390 (site heading -> content = 25). */
  body.page-id-987491327 .et-l--post .et_pb_section:has(blockquote) .et_pb_text:has(h2) {
    margin-bottom: 13px !important;
  }
  /* PR-8p table -> section CTA  12 -> 25 (site: content -> section button = 25 at 390). */
  body.page-id-987491327 .et-l--post .et_pb_section:has(.ss-compare-wrap) > .et_pb_row.et_pb_row:has(.compare_cta) {
    padding-top: 13px !important;
  }
}


/* ---- desktop-fix-2026-10 pass5: /how-much/ controls card + yearly monthly-equivalent pricing (Direction A) ---- */
/* ======================================================================
   F-PRICING-A -- /how-much/ controls card (owner-approved Direction A) + yearly plan-card price.
   APPEND to the end of the live child style.css (divi-simpleworld, 649,542 B, sha 3438ea73...).
   Needs CANDIDATE-ss-pricing.js: every `.ss-*` hook below is added by that script at runtime
   (.ss-ctl-card .ss-ctl-head .ss-ctl-gone .ss-badge .ss-was .ss-billed .ss-cur, body.ss-yearly,
   body.ss-play, body.ss-ctl-ready). Without the script none of these rules match -> old page.

   WHAT  1 grey control card: heading "Choose how many staff:" (plain, no orange pill) + outlined globe
         region pill top-right with its menu anchored under it; the existing slider; a divider; a
         sliding Yearly|Monthly switch (Yearly first) + a "2 months free" badge.
         2 plan cards, yearly state: struck monthly price, big price = yearly/12, "Billed yearly at ... ".
   WHY SPECIFICITY  The live sheet styles these elements through `:has(#ddlOperatorCount)` selectors
         (an id inside :has() counts as an id), plus the page's own inline <style> uses !important on
         .lnkPricePeriod / #divPricePeriod. Every card rule therefore carries the same `:has(#ddlOperatorCount)`
         plus the extra .ss-ctl-card class, and the toggle rules repeat !important. Position in the file
         is irrelevant for the card rules (they win on specificity); the plan-card rules tie some live
         selectors on specificity and win by being appended after them.
   Brand orange #FF7043 untouched. Every var() has a literal fallback (none used).
   ====================================================================== */

/* ---- 1. the card (section that holds the slider) ------------------------------------------ */
body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) {
  box-sizing: border-box;
  width: calc(100% - 30px);
  max-width: 760px;
  /* hero -> card 40 (hero section keeps its own 20 bottom padding) and card -> plans 40 (plans section keeps its
     20 top padding): the same 40 / 40 the page measured before the card existed (f-pricing-spacing PR-1/PR-3) */
  margin: 20px auto 20px !important;
  padding: 30px 35px 34px !important;
  background: #F4F4F4;
  border-radius: 30px;
}
body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) > .et_pb_row.et_pb_row {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 !important;
}
body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) > .et_pb_row.ss-ctl-gone {
  display: none !important;            /* the region row, now empty (picker moved into the heading line) */
}

/* ---- 2. heading line: label left, region pill right ---------------------------------------- */
body.page-id-987491327 .ss-ctl-card .ss-ctl-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 26px;
}
body.page-id-987491327 .ss-ctl-card .ss-staff-host {
  margin: 0;
  padding: 0;
  text-align: left !important;
}
body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) .ss-staff-label {
  display: block;
  background: none;
  border-radius: 0;
  padding: 8px 0 0;
  color: #1A1A1A;
  font-family: 'Poppins', Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

/* region picker: the plugin's own .region_switcher / .current_region / .region_dropdown, restyled */
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher {
  position: relative;
  display: block;
  flex: none;
  width: auto;
  text-align: left;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: auto;
  box-sizing: border-box;
  background: #FFFFFF;
  border: 1px solid #E5E5EA;
  border-radius: 100px;
  padding: 9px 16px 9px 14px;
  text-align: left;
  font-family: 'Nunito', Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.25;
  color: #1A1A1A;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region:hover {
  border-color: #1A1A1A;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(255, 112, 67, 0.45);
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region span:after,
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher.show .current_region span:after {
  content: none;                       /* the old dashicon arrow; the SVG chevron replaces it */
}
body.page-id-987491327 .ss-ctl-card .region_switcher .ss-globe {
  flex: none;
  color: #636363;
}
body.page-id-987491327 .ss-ctl-card .region_switcher .ss-chev {
  flex: none;
  transition: transform 0.2s;
}
body.page-id-987491327 .ss-ctl-card .region_switcher.show .ss-chev {
  transform: rotate(180deg);
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown {
  display: none;
  position: absolute;
  z-index: 1000;
  top: calc(100% + 8px);               /* anchored directly under the pill */
  right: 0;
  left: auto;
  box-sizing: border-box;
  min-width: 100%;
  width: max-content;
  max-width: calc(100vw - 30px);
  margin: 0;
  padding: 8px;
  list-style: none;
  text-align: left;
  background: #FFFFFF;
  border: 1px solid #E5E5EA;
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.10);
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher.show .region_dropdown {
  display: block;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown li {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 10px 14px;
  border-radius: 12px;
  list-style: none;
  font-family: 'Nunito', Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  color: #2F2F2F;
  white-space: nowrap;
  cursor: pointer;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown li:hover,
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown li:focus-visible {
  background: #F4F4F4;
  outline: 0;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown li:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(255, 112, 67, 0.55);
}
body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown li[aria-selected="true"] {
  font-weight: 700;
  color: #1A1A1A;
}
body.page-id-987491327 .ss-ctl-card .region_dropdown li .ss-cur {
  font-size: 14px;
  font-weight: 600;
  color: #636363;
}
body.page-id-987491327 .ss-ctl-card .region_dropdown li[aria-selected="true"]::after {
  content: "";
  flex: none;
  margin-left: auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #FF7043;
}
body.page-id-987491327 .ss-ctl-card .region_dropdown li[aria-selected="true"] .ss-cur {
  margin-right: 14px;
}

/* ---- 3. bill row: divider, then switch + badge --------------------------------------------- */
body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) .et_pb_column:has(> #divPricePeriod) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  column-gap: 22px;
  row-gap: 14px;
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px solid #E3E3E3;
}
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod {
  position: relative;
  isolation: isolate;
  display: block !important;
  width: max-content;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 100px;
  background: #FFFFFF;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04), inset 0 0 0 1px #E5E5EA;
}
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod .et_pb_text_inner > p {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
}
body.page-id-987491327 .ss-ctl-card #divPricePeriod .et_pb_text_inner > p::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  border-radius: 100px;
  background: #000000;
}
body.page-id-987491327 .ss-ctl-card #divPricePeriod .et_pb_text_inner > p:has(.lnkPricePeriod.month.selected)::before {
  transform: translateX(100%);
}
body.page-id-987491327.ss-ctl-ready .ss-ctl-card #divPricePeriod .et_pb_text_inner > p::before {
  transition: transform 0.3s cubic-bezier(0.3, 1.3, 0.5, 1);
}
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod .lnkPricePeriod,
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod a.lnkPricePeriod {
  position: relative;
  z-index: 2;
  display: block;
  text-align: center;
  background: transparent !important;
  color: #1A1A1A !important;
  font-weight: 600 !important;
  transition: color 0.25s;
}
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod .lnkPricePeriod.selected,
body.page-id-987491327 .et-l--post .ss-ctl-card #divPricePeriod a.lnkPricePeriod.selected {
  background: transparent !important;
  color: #FFFFFF !important;
}
body.page-id-987491327 .ss-ctl-card #divPricePeriod .lnkPricePeriod:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(255, 112, 67, 0.55);
}

/* badge: "2 months free" (orange while Monthly, violet "applied" while Yearly) */
body.page-id-987491327 .et-l--post .ss-ctl-card .et_pb_column:has(> #divPricePeriod) > .ss-badge {
  width: auto;
  margin: 0 !important;
  padding: 0;
  flex: 0 0 auto;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .ss-badge .et_pb_text_inner,
body.page-id-987491327 .et-l--post .ss-ctl-card .ss-badge .et_pb_text_inner p {
  margin: 0;
  padding: 0;
  text-align: left;
  font-size: 14px;
  line-height: 1;
}
body.page-id-987491327 .et-l--post .ss-ctl-card .ss-badge .et_pb_text_inner p {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px 8px 12px;
  border-radius: 100px;
  background: #FF7043;
  color: #1A1A1A;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.page-id-987491327.ss-yearly .et-l--post .ss-ctl-card .ss-badge .et_pb_text_inner p {
  background: linear-gradient(135deg, #7C4DFF, #5B2EE0);
  color: #FFFFFF;
}
body.page-id-987491327 .ss-ctl-card .ss-badge .ss-spark {
  flex: none;
}

/* ---- 4. plan cards, yearly state ----------------------------------------------------------- */
body.page-id-987491327 .ss-price-row > .ss-was {
  order: -1;
  display: none;
  align-self: flex-end;
  font-family: 'Poppins', Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.1;
  color: #1A1A1A;
  opacity: 0.6;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}
body.page-id-987491327.ss-yearly .ss-price-row > .ss-was {
  display: inline-block;
}
body.page-id-987491327 .et_pb_column:has(> .pro_price) .ss-price-row > .ss-was {
  color: #FFFFFF;
}
body.page-id-987491327 .ss-price-row > .et_pb_text_inner {
  font-variant-numeric: tabular-nums;
}
body.page-id-987491327 .et_pb_column:has(> .starter_price) > .ss-billed,
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .ss-billed,
body.page-id-987491327 .et_pb_column:has(> .max_price) > .ss-billed {
  order: 2;
  display: none;
  margin-top: -7px;                    /* 15 flex gap -> 8 under the price */
  font-family: 'Nunito', Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.4;
  text-align: left;
  color: #2F2F2F;
}
body.page-id-987491327.ss-yearly .et_pb_column:has(> .starter_price) > .ss-billed,
body.page-id-987491327.ss-yearly .et_pb_column:has(> .pro_price) > .ss-billed,
body.page-id-987491327.ss-yearly .et_pb_column:has(> .max_price) > .ss-billed {
  display: block;
}
body.page-id-987491327 .et_pb_column:has(> .pro_price) > .ss-billed {
  color: #FFFFFF;
}
body.page-id-987491327 .ss-billed b {
  font-weight: 800;
}

/* ---- 5. one-shot animation (class body.ss-play lives ~3.5s after a real click on Yearly) -- */
body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .et_pb_text_inner p {
  animation: ss-pop 0.6s cubic-bezier(0.2, 1.6, 0.4, 1) both;
}
body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .et_pb_text_inner p::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.55) 50%, transparent 70%);
  transform: translateX(-120%);
  animation: ss-sweep 1s 0.6s ease-out 1 forwards;
}
body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .ss-spark {
  animation: ss-spin 0.9s 0.3s ease-out 1;
}
body.page-id-987491327.ss-play .ss-price-row > .ss-was {
  animation: ss-wasin 0.5s 0.1s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}
body.page-id-987491327.ss-play .ss-billed {
  animation: ss-bnin 0.5s 0.55s both;
}
@keyframes ss-pop { 0% { transform: scale(0.6); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
@keyframes ss-sweep { to { transform: translateX(120%); } }
@keyframes ss-spin { to { transform: rotate(180deg) scale(1.15); } }
@keyframes ss-wasin { from { opacity: 0; transform: translateY(8px); } to { opacity: 0.6; transform: none; } }
@keyframes ss-bnin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .et_pb_text_inner p,
  body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .et_pb_text_inner p::after,
  body.page-id-987491327.ss-play .ss-ctl-card .ss-badge .ss-spark,
  body.page-id-987491327.ss-play .ss-price-row > .ss-was,
  body.page-id-987491327.ss-play .ss-billed {
    animation: none !important;
  }
  body.page-id-987491327.ss-ctl-ready .ss-ctl-card #divPricePeriod .et_pb_text_inner > p::before,
  body.page-id-987491327 .ss-ctl-card .region_switcher .ss-chev {
    transition: none;
  }
}

/* <=980: inset the slider so the first/last tick labels ("Just Me" is ~47px wide, centred on the thumb) sit >=12px
   inside the card padding. Padding is symmetric on .ss-staff, so range and ticks keep f-slider's exact alignment. */
@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .ss-ctl-card .ss-staff {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* <=980 (the page's phone/tablet rhythm): before the card, hero->controls was 50 and controls->plans 25 -- both kept */
@media (max-width: 980px) {
  body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) {
    margin: 0 auto 25px !important;
  }
}

/* ---- 6. phone (<=600): region pill full width on top, switch + badge stacked --------------- */
@media (max-width: 600px) {
  body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) {
    padding: 20px 15px 24px !important;
    border-radius: 24px;
  }
  body.page-id-987491327 .ss-ctl-card .ss-ctl-head {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 16px;
    margin-bottom: 20px;
  }
  body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) .ss-staff-label {
    padding-top: 0;
    font-size: 20px;
  }
  body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher {
    width: 100%;
  }
  body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region {
    display: flex;
    width: 100%;
    justify-content: space-between;
  }
  body.page-id-987491327 .ss-ctl-card .region_switcher .ss-globe {
    margin-right: -4px;
  }
  body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .current_region > span {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.page-id-987491327 .et-l--post .ss-ctl-card .region_switcher .region_dropdown {
    left: 0;
    right: 0;
    width: auto;
    max-width: none;
  }
  body.page-id-987491327 .et-l--post .et_pb_section.ss-ctl-card:has(#ddlOperatorCount) .et_pb_column:has(> #divPricePeriod) {
    flex-direction: column;
    row-gap: 14px;
    margin-top: 26px;
    padding-top: 22px;
  }
}


/* ---- desktop-fix-2026-10 pass8: legal pages full width (owner chose option A) ---- */
/* /terms-of-use/ 987489083 and /privacy-policy/ 3 share the `.ss-legal` section class.
   Owner ruling 2026-10-13: the legal content column matches the site frame (1340 at x=50
   in a 1440 viewport, i.e. the header's content edges), not the 580px reading column.
   TWO caps are lifted, both scoped to `.ss-legal`:
     1. the Divi factory row (width var(--content-width) -> 1080 max), desktop only;
     2. the 580px `.ss-legal .et_pb_text_inner` cap in the ss-legal block above.
   Specificity is (0,3,0) via `.et_pb_section.ss-legal`, above both the old (0,2,0) cap
   and Divi's (0,2,0) row rule, so this wins regardless of source order. The old block is
   not edited. Below 981px nothing here applies: the phone layout is unchanged.
   NOT touched: /privacy-policy-text/ (blank template, own rule). Measure note: at 1440 the
   text now runs ~130 characters per line (owner accepted, option A). */
@media (min-width:981px){
  .et_pb_section.ss-legal .et_pb_row{max-width:1340px;width:calc(100% - 100px);}
  .et_pb_section.ss-legal .et_pb_text_inner{max-width:none;margin-left:0;margin-right:0}
}


/* ---- desktop-fix-2026-10 pass10: privacy matches terms ---- */
/* /privacy-policy/ 3 stores its headings as <h1><b>..</b></h1> and <h2><b>..</b></h2>. The h1/h2
   themselves already compute the same weight as Terms (h2: 600 via `.ss-legal h2`), but the inner
   <b> takes the UA `bolder` step above its parent (600 -> 900) so Privacy headings render heavier
   than Terms, whose headings carry no <b>. Inherit the parent's weight instead. Scoped to
   `.ss-legal`, specificity (0,2,1) over the UA/Divi `b,strong` rule. The intro card needs no CSS:
   it reuses the existing `.ss-legal-intro` rule (post_content adds the class). */
.ss-legal h1 b,
.ss-legal h1 strong,
.ss-legal h2 b,
.ss-legal h2 strong{font-weight:inherit}


/* ---- desktop-fix-2026-10 pass11: legal intro text size on phones ---- */
/* The `.ss-legal-intro` card (Terms "Our Disclosures", Privacy opening paragraph) is the module
   numbered et_pb_text_1 on both pages, so the old ordinal rule
   `@media(max-width:767px){.et_pb_text_1 p{font-size:14px!important;line-height:1.4em!important}}`
   (written for hero chips) shrinks its paragraphs to 14px on phones, below the legal body text
   (16px / 24px, the owner's ruling). Both !important, so (0,3,1) here beats that (0,1,1).
   Phones only; at 767px and above nothing changes. line-height 1.5 = the 24px the legal body text
   measures at 16px. */
@media (max-width:767px){
  .et_pb_section.ss-legal .ss-legal-intro p{
    font-size:16px!important;
    line-height:1.5!important;
  }
}


/* ---- signup-restyle-2026-10 pass12: sign-up flow new style (owner approved mock-up) ---- */
/* =====================================================================
   SIGN-UP FLOW RESTYLE -- CANDIDATE (mockup, 2026-10-13). One block, for the
   child style.css. CSS only: no markup change, no copy change, every id, name,
   class, onclick and hidden field is untouched.

   Pages (every rule is scoped by its body class, nothing leaks sitewide):
     P1  body.page-id-987489415   /sign-up/                    form + FAQ + hero
     P2  body.page-id-987490726   /sign-up/thanks-for-signing-up-book-a-call-now/
     P3  body.page-id-987489420   /sign-up/thankyou/

   TOKENS (all taken from the live child stylesheet / design export, none new):
     orange  #FF7043 (hover #E85F35)   never darkened; text on it is white only
                                       where the live site already does that
     violet  #7C4DFF   links, focus ring, Pro plan card (owner rule: violet = Pro only)
     grey    #F4F4F4   hero band, field fill       border #EDE7F6   text #2F2F2F / #1A1A1A
     radius  30px card (--gvid-radius-card)   20px field (--gvid-radius-row)   100px pill
     fonts   Poppins (headings, buttons)  Nunito (body, fields)

   THREE CASCADE FACTS THIS BLOCK LEANS ON (each measured, see mockup/check output):
   1. The plugin styles the form with ID selectors, (1,1,1)-(1,2,1), and several of
      its buttons carry !important. Every rule here starts `body.page-id-N #divStartNowEmbed`
      -> (1,2,x) and wins on specificity; !important is used only where the plugin or
      Divi used it first (button, popup, inline colours).
   2. THE PLUGIN PAINTS INLINE COLOURS. simplesalon.js ss_signupnew_docready() sets, per
      plan, inline `background-color` on .pricing-header / .changeplanbutton, `color` on
      .price, and `style="color:#xxx !important"` on .changeplanbutton, and the Terms /
      Privacy links ship `style="color:#90d4e0 !important"` in the shortcode. Inline
      NON-important values lose to a stylesheet !important, so they are handled below.
      Inline !important CANNOT be beaten by any stylesheet rule -- for those four
      elements (Change link, 3 policy links) the paint is taken over with
      `-webkit-text-fill-color`, which every engine paints in preference to `color`.
      Proper fix, if ever wanted: drop the inline style in simpleworld.php.
   2b. The selected plan is read from the plugin's own hidden input:
      `:has(#txtPlan[value="pro"])`. For type=hidden the value attribute is the value, so
      this tracks server-rendered ?plan=. Plan names: starter | plus | pro | max.
   3. Divi emits the hero text module's typography (Yeseva One 95px, white, text-shadow) and
      the FAQ module's (Montserrat, #252e46) as module CSS, and the sitewide <=980px
      heading scale (h1 30 / h2 25 / h3 20, !important, (0,4,1)) also reaches the form
      headings; the id-qualified rules below out-rank all of it.
   ===================================================================== */


/* ---------- 0. page rhythm (P1 hero + form section, P2, P3 share the gutters) ---------- */

/* HERO. The old serif-on-photo band becomes the site's feature-page hero: #F4F4F4 panel,
   30px bottom radius (same values as the `.ss-hero` block in style.css, which cannot be used
   because it needs a class on the section and this is a no-markup-change pass). The photo is a
   CSS background-image on the section (Divi module CSS, plus a white gradient layer), so
   `background-image:none` removes BOTH layers: the photo CAN be removed with CSS alone.
   The section is also fixed at height 600px / padding-top 179px by module CSS -> reset. */
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child {
  height: auto !important;
  min-height: 0 !important;
  background-image: none !important;
  background-color: #F4F4F4 !important;
  border-radius: 0 0 var(--gvid-radius-card, 30px) var(--gvid-radius-card, 30px);
  padding: 70px 50px !important;
}
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row {
  margin: 0 auto !important;       /* module CSS: margin-top 50px */
  padding: 0 !important;           /* module CSS: padding-bottom 4px, !important (landmine C5) */
  max-width: 1340px !important;
  width: 100% !important;
}
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child .et_pb_text {
  min-height: 0 !important;        /* module CSS: 175px */
}
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child .et_pb_text h1 {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 60px !important;      /* design H1 */
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
  color: #1A1A1A !important;
  text-shadow: none !important;    /* the old hero's text-shadow must not survive onto dark-on-grey */
  padding-bottom: 0 !important;
  text-align: center;
}
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child .et_pb_text p {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: 20px !important;      /* design hero sub */
  line-height: 1.2 !important;
  color: #2F2F2F !important;
  text-shadow: none !important;
  margin-top: 25px;
}
@media (max-width: 767px) {
  body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child { padding: 35px 15px !important; }
  body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child .et_pb_text h1 { font-size: 30px !important; }
  body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:first-child .et_pb_text p { font-size: 18px !important; }
}

/* FORM SECTION: 50px / 15px gutters, 70px / 35px vertical, as `.ss-sec`. */
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:nth-child(2) {
  padding: 70px 50px !important;
}
body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:nth-child(2) > .et_pb_row {
  width: 100% !important;
  max-width: 1340px !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
@media (max-width: 980px) {
  body.page-id-987489415 .et-l--post .et_builder_inner_content > .et_pb_section:nth-child(2) { padding: 35px 15px !important; }
}


/* ---------- 1. P1 form card ---------- */

body.page-id-987489415 #divStartNowEmbed {
  background: #ffffff;
  border: 1px solid var(--gvid-border, #EDE7F6);
  border-radius: var(--gvid-radius-card, 30px);
  box-shadow: none;                          /* plugin: 0 2px 18px rgba(37,46,70,.46) */
  padding: 40px;
  color: var(--gcid-90suxw02k0, #2F2F2F);
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.4;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  body.page-id-987489415 #divStartNowEmbed { padding: 25px 20px; }
}

/* Card headings: "Enter Your Details" (h1), "Summary of Your Plan" / card details (h2). */
body.page-id-987489415 #divStartNowEmbed h1.et_pb_contact_main_title,
body.page-id-987489415 #divStartNowEmbed h2 {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 25px !important;                /* design plan-name / band-title scale */
  line-height: 1.2 !important;
  letter-spacing: -0.03em;
  color: #1A1A1A !important;
  text-align: left;
  background: transparent;                   /* plugin: #f3f3f3 strip behind h2 */
  padding: 0 !important;
  margin: 0 0 20px;
}
body.page-id-987489415 #divStartNowEmbed h2 { margin-top: 30px; }

/* Fields: exactly the /contact-sales/ spec (.ss-enquiry block): Nunito 16 (iOS no-zoom),
   #F4F4F4, 1px #EDE7F6, radius 20, 48px tall. The plugin sets 14px / mint / no border
   with an ID selector and `#divStartNowEmbed input,select,textarea` -> same winning trick:
   !important on the properties the plugin sets. */
body.page-id-987489415 #divStartNowEmbed input[type="text"],
body.page-id-987489415 #divStartNowEmbed input[type="email"],
body.page-id-987489415 #divStartNowEmbed select,
body.page-id-987489415 #divStartNowEmbed .StripeElement {
  width: 100%;
  height: 48px;
  box-sizing: border-box;
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;                /* iOS zooms below 16px */
  line-height: 1.4;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
  background-color: var(--gvid-surface, #F4F4F4) !important;
  border: 1px solid var(--gvid-border, #EDE7F6) !important;
  border-radius: var(--gvid-radius-row, 20px) !important;
  padding: 12px 16px !important;
  margin: 0 0 12px;
}
body.page-id-987489415 #divStartNowEmbed select {
  padding-right: 40px !important;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5l5 5 5-5' fill='none' stroke='%232F2F2F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 12px 8px !important;
}
body.page-id-987489415 #divStartNowEmbed ::placeholder {
  color: var(--gcid-swkupkpb8j, #A0A0A0);
  opacity: 1;
}
/* the two-up rows: 49% floats are the plugin's; keep them, just close the gap evenly */
body.page-id-987489415 #divStartNowEmbed .column { width: calc(50% - 8px); }
@media (max-width: 767px) {
  body.page-id-987489415 #divStartNowEmbed .column { width: 100%; float: none; }
}
/* the "Promo Code (Optional)" captions are bare text inside .column */
body.page-id-987489415 #divStartNowEmbed .column {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
body.page-id-987489415 #divStartNowEmbed .column > span { font-size: 14px; }

/* Focus ring: site violet, visible on every control. */
body.page-id-987489415 #divStartNowEmbed input:focus-visible,
body.page-id-987489415 #divStartNowEmbed select:focus-visible,
body.page-id-987489415 #divStartNowEmbed a:focus-visible,
body.page-id-987489415 #divStartNowEmbed .StripeElement--focus {
  outline: 2px solid var(--gcid-bs9uwvujec, #7C4DFF) !important;
  outline-offset: 2px;
}
/* validation: plugin adds class `error`, which has no styling of its own */
body.page-id-987489415 #divStartNowEmbed input.error,
body.page-id-987489415 #divStartNowEmbed select.error,
body.page-id-987489415 #divStartNowEmbed .StripeElement--invalid {
  border-color: #C62828 !important;
  background-color: #FDECEA !important;
}
body.page-id-987489415 #divStartNowError {
  color: #C62828;                            /* plugin: #ff0000 */
  font-size: 16px;
}

/* ---------- 2. P1 plan summary: the pricing-card look ---------- */

body.page-id-987489415 #divStartNowEmbed #signupPackageSelect { margin-bottom: 25px; white-space: normal; }
body.page-id-987489415 #divStartNowEmbed .pricing-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  width: 100%;
  max-width: 420px;
  box-sizing: border-box;
  padding: 30px;
  background: #ffffff;
  border: 1px solid var(--gvid-border, #EDE7F6);
  border-left: 1px solid var(--gvid-border, #EDE7F6);   /* plugin: first column has a 2px left only */
  border-radius: var(--gvid-radius-card, 30px);
  box-shadow: none;
  text-align: left;
  float: none;
}
/* the header holds the inline plan colour (non-important) -> neutralise, then draw the chip */
body.page-id-987489415 #divStartNowEmbed .pricing-header {
  background: transparent !important;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  width: 100%;
}
body.page-id-987489415 #divStartNowEmbed .pricingtitle {
  display: inline-block;
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #1A1A1A;                            /* dark text on orange: brand orange stays fixed */
  background: var(--gcid-6spcyv8qzp, #FF7043);
  border-radius: 54px;                       /* design badge radius */
  padding: 8px 16px;
  margin: 0;
}
body.page-id-987489415 #divStartNowEmbed .operators {
  padding: 0;
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  color: #636363;
}
body.page-id-987489415 #divStartNowEmbed .price {
  padding: 0;
  line-height: 1;
  color: #1A1A1A !important;                 /* inline colour is the plan tint, non-important */
}
body.page-id-987489415 #divStartNowEmbed .price .amt {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif;
  font-size: 35px;                           /* design price */
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
}
body.page-id-987489415 #divStartNowEmbed .price br { display: none; }
body.page-id-987489415 #divStartNowEmbed .price .permth {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  color: #636363;
  margin-left: 8px;
}
body.page-id-987489415 #divStartNowEmbed .planincluded {
  font-size: 16px;
  line-height: 1.25;
  color: #2F2F2F;
}
body.page-id-987489415 #divStartNowEmbed .planincluded:empty { display: none; }
body.page-id-987489415 #divStartNowEmbed .pricing-footer { padding: 0; }

/* "Change": a readable outlined pill (the design's toggle pill: 1px #000, radius 100).
   Inline `color:...!important` cannot be overridden by a stylesheet; text-fill-color is. */
body.page-id-987489415 #divStartNowEmbed .pricing-footer a.changeplanbutton {
  display: inline-block;
  width: auto;
  background: transparent !important;
  border: 1px solid #1A1A1A !important;
  border-radius: 100px;
  padding: 10px 24px !important;
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  -webkit-text-fill-color: #1A1A1A;
}
body.page-id-987489415 #divStartNowEmbed .pricing-footer a.changeplanbutton:hover {
  background: #1A1A1A !important;
  -webkit-text-fill-color: #ffffff;
}

/* PRO ONLY: violet (design violet card gradient; owner rule). Other plans stay white + orange chip. */
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .pricing-column {
  background: linear-gradient(179.978deg, rgb(237, 231, 246) -108.62%, rgb(124, 77, 255) 125.55%);
  border-color: transparent;
}
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .pricingtitle {
  background: rgba(255, 255, 255, 0.25);     /* design badge */
  color: #ffffff;
}
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .operators,
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .price .permth { color: #F4F4F4; }
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .price,
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .planincluded { color: #ffffff !important; }
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .pricing-footer a.changeplanbutton {
  background: #ffffff !important;
  border-color: #ffffff !important;
  -webkit-text-fill-color: #1A1A1A;
}
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .pricing-footer a.changeplanbutton:hover {
  background: #F4F4F4 !important;
  -webkit-text-fill-color: #1A1A1A;
}
body.page-id-987489415 #divStartNowEmbed .pricing-footer a.changeplanbutton:focus-visible {
  outline-color: #7C4DFF !important;
}
body.page-id-987489415 #divStartNowEmbed:has(#txtPlan[value="pro"]) .pricing-footer a.changeplanbutton:focus-visible {
  outline-color: #ffffff !important;
}

/* ---------- 3. P1 total, checkboxes, links, START NOW ---------- */

body.page-id-987489415 #divStartNowEmbed .signupTotalToStart { margin: 5px 0 20px; }
body.page-id-987489415 #divStartNowEmbed .signupTotalToStart > span {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif;
  font-size: 20px !important;                /* inline 18px, non-important */
  font-weight: 600 !important;
  letter-spacing: -0.02em;
  color: #1A1A1A;
}
body.page-id-987489415 #divStartNowEmbed #paymentform > div:first-of-type { font-size: 14px !important; line-height: 1.3 !important; }

body.page-id-987489415 #divStartNowEmbed input[type="checkbox"] {
  width: 20px !important;
  height: 20px;
  margin: 0 8px 0 0 !important;
  vertical-align: -4px;
  accent-color: var(--gcid-bs9uwvujec, #7C4DFF);
}
/* the Terms / Privacy links are DIRECT children of #signup1 (the Change link is deeper: not touched here) */
body.page-id-987489415 #divStartNowEmbed #signup1 > a {
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  -webkit-text-fill-color: var(--gcid-bs9uwvujec, #7C4DFF);   /* inline `color:#90d4e0 !important` */
}
body.page-id-987489415 #divStartNowEmbed #signup1 > a:hover {
  -webkit-text-fill-color: var(--gcid-6spcyv8qzp, #FF7043);
}
/* consent lines: a little air between the two checkbox rows (they are bare text + <br>) */
body.page-id-987489415 #divStartNowEmbed #signup1 { line-height: 1.5; }
body.page-id-987489415 #divStartNowEmbed #signup1 > input#privacy { margin-top: 10px !important; }
body.page-id-987489415 #divStartNowEmbed #divSMSOptIn { margin-top: 8px; }
body.page-id-987489415 #divStartNowEmbed #divSMSOptIn span {
  font-size: 14px;
  line-height: 1.3;
  color: #636363;
  padding-left: 28px;
}

/* START NOW: the live /contact-sales/ submit (style.css `.ss-enquiry ... a.et_pb_contact_submit`),
   orange, white text, pill. The plugin sets border / colour / font / weight / transform with
   !important, so these do too. */
body.page-id-987489415 #divStartNowEmbed a#signupNext.et_pb_contact_submit {
  float: none !important;
  display: inline-block;
  margin: 10px 0 0 !important;
  padding: 15px 30px !important;
  background: var(--gcid-6spcyv8qzp, #FF7043);
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 100px;
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;                 /* Divi emits 1.7em !important on buttons */
  text-transform: none !important;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 150ms ease;
}
body.page-id-987489415 #divStartNowEmbed a#signupNext.et_pb_contact_submit:hover {
  background: var(--gcid-hv4rq8m2ns, #E85F35);
  border: 0 !important;
}
body.page-id-987489415 #divStartNowEmbed a#signupNext.et_pb_contact_submit:focus-visible {
  outline: 2px solid #7C4DFF !important;
  outline-offset: 3px;
}
body.page-id-987489415 #divStartNowEmbed .buttons { padding: 0; }
@media (max-width: 767px) {
  body.page-id-987489415 #divStartNowEmbed a#signupNext.et_pb_contact_submit { width: 100%; box-sizing: border-box; }
}
/* the two legacy in-page states (never reached by the current flow, which redirects) */
body.page-id-987489415 #divStartNowEmbed #signup5 a#signupLogin.et_pb_contact_submit {
  background: var(--gcid-6spcyv8qzp, #FF7043);
  border: 0 !important;
  border-radius: 100px;
  padding: 15px 30px !important;
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  text-transform: none !important;
}

/* ---------- 4. P1 right-hand FAQ column: site H3 / body ---------- */

body.page-id-987489415 .et-l--post .et_pb_column_1_3 .et_pb_text h3 {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 20px !important;                /* design h3 */
  line-height: 1.2 !important;
  letter-spacing: -0.02em;
  color: #1A1A1A !important;
  padding: 0 0 10px !important;
  margin: 0 !important;
}
body.page-id-987489415 .et-l--post .et_pb_column_1_3 .et_pb_text h3 ~ h3 { margin-top: 25px !important; }
body.page-id-987489415 .et-l--post .et_pb_column_1_3 .et_pb_text p {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--gcid-90suxw02k0, #2F2F2F) !important;
  margin: 0;
}
@media (min-width: 981px) {
  body.page-id-987489415 .et-l--post .et_pb_column_1_3 { padding-left: 40px; box-sizing: border-box; }
}


/* ---------- 5. validation / info popups (#divNewSWPopUp clones, .stackedPopup) ---------- */
/* The plugin positions the clone with inline `top/left: calc(-Npx + 50vw)` and a fixed 350px
   width. Centre it by transform instead so it can be fluid on a phone. Loading popups
   (.stackedLoading) are left transparent, as the plugin does. */

:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .sw_mask {
  background-color: #1A1A1A;
  opacity: 0.5;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) {
  width: min(420px, calc(100vw - 32px)) !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%);
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  box-sizing: border-box;
  background: #ffffff;
  border: 1px solid var(--gvid-border, #EDE7F6);
  border-radius: var(--gvid-radius-card, 30px);
  box-shadow: 0 20px 50px rgba(26, 26, 26, 0.16);
  padding: 35px 30px 30px;
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .expandable_heading {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: 25px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: #1A1A1A;
  padding: 0;
  margin: 0 0 15px;
  text-align: center;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .expandable_content {
  padding: 0;
  font-size: 16px;
  line-height: 1.4;
  color: var(--gcid-90suxw02k0, #2F2F2F);
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupcontent ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupbuttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 25px !important;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupbuttons a {
  width: auto;
  min-width: 110px;
  margin: 0;
  padding: 13px 30px;
  box-sizing: border-box;
  border-radius: 100px;
  background: transparent;
  border: 1px solid #1A1A1A;
  color: #1A1A1A;
  font-family: 'Poppins', Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupbuttons a:hover {
  background: #F4F4F4;
  text-decoration: none;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupbuttons a.ok {
  background: var(--gcid-6spcyv8qzp, #FF7043);
  border-color: var(--gcid-6spcyv8qzp, #FF7043);
  color: #ffffff;
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup:not(.stackedLoading) .popupbuttons a.ok:hover {
  background: var(--gcid-hv4rq8m2ns, #E85F35);
  border-color: var(--gcid-hv4rq8m2ns, #E85F35);
}
:is(body.page-id-987489415, body.page-id-987490726, body.page-id-987489420) .divNewSWPopUp.stackedPopup .popupbuttons a:focus-visible {
  outline: 2px solid #7C4DFF;
  outline-offset: 2px;
}


/* ---------- 6. P2 book-a-call: the two .chooseoption cards ---------- */
/* Both stay clickable (jQuery click handlers on .chooseoption.freetrial / .paynow; no markup
   or handler touched). Free option = white card with border; paid option = the violet pricing
   card. Their icons are WHITE PNGs: on the white card they sit on an orange tile. */

body.page-id-987490726 .chooseoption {
  display: block;
  box-sizing: border-box;
  height: auto !important;                   /* module CSS fixed 400px */
  min-height: 0 !important;
  padding: 30px !important;
  border-radius: var(--gvid-radius-card, 30px);
  border: 1px solid var(--gvid-border, #EDE7F6);
  box-shadow: none !important;               /* module CSS: drop shadow */
  background-color: #ffffff !important;      /* module CSS: #8edce6 / #70cb8d */
  background-image: none !important;
  color: #2F2F2F;
  cursor: pointer;
  text-align: left !important;
  transition: border-color 150ms ease, transform 150ms ease;
}
body.page-id-987490726 .chooseoption:hover { border-color: #7C4DFF; transform: translateY(-2px); }
body.page-id-987490726 .chooseoption.paynow {
  background-image: linear-gradient(179.978deg, rgb(237, 231, 246) -108.62%, rgb(124, 77, 255) 125.55%) !important;
  border-color: transparent;
  color: #ffffff;
}
body.page-id-987490726 .chooseoption .et_pb_blurb_content { max-width: none; margin: 0; display: flex; flex-direction: column; gap: 20px; }
body.page-id-987490726 .chooseoption .et_pb_main_blurb_image {
  margin: 0 !important;
  align-self: flex-start;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gvid-radius-row, 20px);
  background: var(--gcid-6spcyv8qzp, #FF7043);
}
body.page-id-987490726 .chooseoption.paynow .et_pb_main_blurb_image { background: rgba(255, 255, 255, 0.25); }
body.page-id-987490726 .chooseoption .et_pb_main_blurb_image img { width: 64px !important; height: auto !important; max-width: 64px; }
body.page-id-987490726 .chooseoption .et_pb_blurb_container { padding: 0 !important; text-align: left !important; }
body.page-id-987490726 .chooseoption h4.et_pb_module_header {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 25px !important;                /* design plan-name scale */
  line-height: 1.2 !important;
  letter-spacing: -0.03em;
  color: #1A1A1A !important;
  padding: 0 0 10px !important;
}
body.page-id-987490726 .chooseoption .et_pb_blurb_description,
body.page-id-987490726 .chooseoption .et_pb_blurb_description p {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  color: #2F2F2F !important;
  text-align: left !important;
  text-shadow: none !important;
}
body.page-id-987490726 .chooseoption.paynow h4.et_pb_module_header,
body.page-id-987490726 .chooseoption.paynow .et_pb_blurb_description,
body.page-id-987490726 .chooseoption.paynow .et_pb_blurb_description p { color: #ffffff !important; }
body.page-id-987490726 .choosebuttons { gap: 30px; align-items: stretch; }
body.page-id-987490726 .choosebuttons .et_pb_blurb { height: 100%; }
body.page-id-987490726 .chooseoption h4,
body.page-id-987490726 .chooseoption .et_pb_blurb_container,
body.page-id-987490726 .chooseoption .et_pb_blurb_description { text-align: left !important; }   /* module is et_pb_text_align_center */
@media (max-width: 980px) {
  body.page-id-987490726 .choosebuttons .et_pb_column:not(:last-child) { margin-bottom: 20px !important; }
  body.page-id-987490726 .chooseoption { padding: 25px !important; }
}
/* P2 supporting copy */
body.page-id-987490726 .signup_success_nextstepchoose p {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-size: 20px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: #2F2F2F !important;
  text-align: center;
}


/* ---------- 7. P2 + P3: heading / body treatment ---------- */

:is(body.page-id-987490726, body.page-id-987489420) .et-l--post .et_pb_heading h1.et_pb_module_header {
  font-family: var(--et_global_heading_font, 'Poppins'), Helvetica, Arial, sans-serif;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #1A1A1A;
  text-align: center;
  padding-bottom: 0;
}
body.page-id-987489420 .et-l--post .et_pb_text p {
  font-family: var(--et_global_body_font, 'Nunito'), Helvetica, Arial, sans-serif !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  color: #2F2F2F !important;
  margin-bottom: 15px;
}
body.page-id-987489420 .et-l--post .et_pb_text p:last-child { margin-bottom: 0; }
body.page-id-987489420 .et-l--post .et_pb_text #loginEmail { font-weight: 700; }
body.page-id-987489420 .et-l--post .et_pb_text a:not([class*="et_pb_button"]) {
  color: #7C4DFF;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.page-id-987489420 .et-l--post .et_pb_text a:not([class*="et_pb_button"]):hover { color: #FF7043; }
:is(body.page-id-987490726, body.page-id-987489420) .et-l--post .et_pb_text p a img { margin: 0 4px; vertical-align: middle; }


/* ---------- 7. P2 "Skip the Queue" payment popup (#divStackedPopUp_enterpaymenttostart) ---------- */
/* Added from the Stripe investigation (signup-restyle-2026-10/stripe/RESULT.json). The three
   .StripeElement boxes get the same values as the P1 form fields (section 1: 48px, #F4F4F4,
   1px #EDE7F6, radius 20, focus violet, invalid red). The text INSIDE the Stripe iframes cannot
   be styled from CSS (the plugin's Elements `style` option does that) and is left alone.
   Scoped to this popup id on the book-a-call page only. */
body.page-id-987490726 #divStackedPopUp_enterpaymenttostart .StripeElement {
  box-sizing: border-box;
  height: 48px;
  padding: 14px 16px;
  margin: 0 0 12px;
  background: var(--gvid-surface, #F4F4F4);
  border: 1px solid var(--gvid-border, #EDE7F6);
  border-radius: var(--gvid-radius-row, 20px);
  transition: border-color .15s, box-shadow .15s;
}
body.page-id-987490726 #divStackedPopUp_enterpaymenttostart .StripeElement--focus {
  border-color: #7C4DFF;
  box-shadow: 0 0 0 2px #7C4DFF;
}
body.page-id-987490726 #divStackedPopUp_enterpaymenttostart .StripeElement--invalid {
  border-color: #C62828;
  background: #FDECEA;
}
/* "Start Now!" ships inline `background-color:#70cb8d`. An inline non-important value loses to a
   stylesheet !important, so this is the one place !important is required. Same pill as the other
   popup OK buttons (section 5). */
body.page-id-987490726 #divStackedPopUp_enterpaymenttostart .popupbuttons a.ok {
  background-color: var(--gcid-6spcyv8qzp, #FF7043) !important;
  border-color: var(--gcid-6spcyv8qzp, #FF7043) !important;
  color: #ffffff !important;
}
body.page-id-987490726 #divStackedPopUp_enterpaymenttostart .popupbuttons a.ok:hover {
  background-color: var(--gcid-hv4rq8m2ns, #E85F35) !important;
  border-color: var(--gcid-hv4rq8m2ns, #E85F35) !important;
}


/* ---- desktop-fix-2026-10 pass17: five layout fixes (industry intro box, orphan tiles, sign-up tablet fields, Pro card alignment, See All Features pill) ---- */
/* APPENDED, nothing above this line is edited. Page-scoped (body.page-id-*) or content-scoped (.ss-values .ss-intro:has(p + p)),
   no Divi ordinals. Brand orange #FF7043 is not touched; the Pro card stays the only violet plan card.
   Each block names the rule it beats. Remove a block to revert that one fix. */

/* ====================================================================================
   17.1  "Built for Your Business" intro box (12 industry pages, >=981 only)
   Was: ONE 1270px box split into `column-count:2; column-gap:70px` (desktop-fix pass1 f8-oldlook A1). The first
   paragraph ran across the column break mid-sentence, and column 2 began with the tail of that paragraph, so the
   second paragraph started 87-184px lower than column 1's first line. The bold lead sentence (25px card headline)
   sat in column 1 only.
   Design: Industry Page Template.dc.html:65-69 draws the Values header as ONE centred block, `max-width:659px`, with
   a 619px text line, and all its other body copy is single-column, left aligned, inside a card (radius 30,
   padding 35). It never sets columns. So: single column. The card is narrowed to 700px (the header column is 659)
   and centred, which makes the 25px lead sentence the full-width heading of the card and keeps the prose to ~70
   characters a line, instead of a 1270px box with a 600px column hugging one side.
   Beats: f8-oldlook A1, `:is(.et-l--post,.et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p)`
   (same selector, `max-width:none !important`) -- equal specificity, this block is later in the file.
   ==================================================================================== */
@media (min-width: 981px) {
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) {
    max-width: 700px !important;
    margin-left: auto;
    margin-right: auto;
  }
  :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-values .ss-intro:has(p + p) .et_pb_text_inner {
    column-count: 1;
  }
}

/* ====================================================================================
   17.2  Orphan tile on the last row (>=981 only)
   /industries/ 987492453 and /add-ons/ 987489140: 13 hub cards, 3 per row, the 13th centred alone under the
   middle column. /contact-us/ 987489178: 4 value cards, the 4th (Developer) centred alone.
   Cause: `.ss-cards-3 {justify-content:center}` (P2.5, written for the five-card Feature pages).
   Fix, hub pages (13 = prime, no column count fills it): the grid is left-packed, as the design's own
   `grid-template-columns:1fr 1fr 1fr` (Blog.dc.html) is, so the last tile sits under the first column.
   Fix, /contact-us/ (4 cards): four across, the same 4-up the owner chose for the seven-card pages (P11.1,
   2026-08-20), so the row fills exactly.
   Beats: P2.5 at (0,3,0); these carry the body class, (0,4,1) / (0,5,1).
   ==================================================================================== */
@media (min-width: 981px) {
  body.page-id-987492453 .et-l--post .et_builder_inner_content .ss-cards-3,
  body.page-id-987492453 .et-l--body .et_builder_inner_content .ss-cards-3,
  body.page-id-987489140 .et-l--post .et_builder_inner_content .ss-cards-3,
  body.page-id-987489140 .et-l--body .et_builder_inner_content .ss-cards-3 {
    justify-content: flex-start;
  }
  body.page-id-987489178 .et-l--post .et_builder_inner_content .ss-cards-3 > .et_pb_column,
  body.page-id-987489178 .et-l--body .et_builder_inner_content .ss-cards-3 > .et_pb_column {
    flex-basis: calc(25% - 15px);                  /* 4-up with three 20px gaps, as P11.1 */
    max-width: calc(25% - 15px);
  }
}

/* ====================================================================================
   17.3  /sign-up/ 768-980: name / business / email / mobile (and the two code fields) were half-width and stacked
   The plugin floats `#divStartNowEmbed .column` left at 49% and drops to `width:100%; float:none` at <=980. Pass12
   set the width back to `calc(50% - 8px)` at every size but only restored `float:none` at <=767, so 768-980 got
   half-width blocks, one per row, next to a full-width country select. Put the plugin's floats back for that band
   (`.column` left, `.column.right` right, which is what makes the 16px gutter): the fields go two-up exactly as they
   do from 981, and below 768 they stay full width.
   ==================================================================================== */
@media (min-width: 768px) and (max-width: 980px) {
  body.page-id-987489415 #divStartNowEmbed .column {
    float: left;
  }
  body.page-id-987489415 #divStartNowEmbed .column.right {
    float: right;                                  /* the plugin's own right-hand column; its <=980 reset is `float:none` */
  }
}

/* ====================================================================================
   17.4  /how-much/ plan cards: Pro's content sat 7.2px higher than Starter's and Max's (>=981)
   Pro's name is the design's 14px uppercase (so its head row is 23.8px, the chip's height) where Starter/Max are
   25px/30px, so everything below it rose 6.2px; Pro also has no 1px card border (1px) and its SMS line is the
   violet card's 18px/1.2 = 21.6px against 20px (1.6px more, which put the CTA 5.6px off). Fix: every head row is
   30px tall (items centred), Pro's top padding takes the missing border pixel, and Pro's SMS line is 20px tall.
   Design values (name 14px uppercase, SMS 18px) are unchanged.
   ==================================================================================== */
@media (min-width: 981px) {
  body.page-id-987491327 .et_pb_column:has(> .starter_price) > .ss-plan-head,
  body.page-id-987491327 .et_pb_column:has(> .pro_price) > .ss-plan-head,
  body.page-id-987491327 .et_pb_column:has(> .max_price) > .ss-plan-head {
    min-height: 30px;
  }
  body.page-id-987491327 .et_pb_column:has(> .pro_price) {
    padding-top: 36px;
  }
  body.page-id-987491327 .et_pb_column:has(> .pro_price) .pro_sms_text .et_pb_text_inner,
  body.page-id-987491327 .et_pb_column:has(> .pro_price) .pro_sms_text p {
    line-height: 20px !important;
  }
}

/* ====================================================================================
   17.5  "See All Features" pill (ss-pricing.js buildJump): auto width, like every other secondary pill
   Was 620px (360px at 390) wide: the design's `width:100%` button (Pricing.dc.html:125) at a 620px cap. The site's
   own pills are content-width: the card CTAs directly above it on this page are `padding:12px 30px; font:500 20px/20px`
   at desktop and `14px 24px; 16px/16px` on phones, 44px tall, max-content wide. The pill now takes exactly those.
   Colour, radius, hover and margins are untouched. Beats: `body.page-id-987491327 .ss-see-features` (0,2,1) in the
   live "See All Features" block -- same selector, this block is later.
   ==================================================================================== */
body.page-id-987491327 .ss-see-features {
  width: max-content;
  max-width: calc(100% - 30px);
  padding: 14px 24px;
  font-size: 16px;
  line-height: 16px;
}
@media (min-width: 768px) {
  body.page-id-987491327 .ss-see-features {
    padding: 12px 30px;
    font-size: 20px;
    line-height: 20px;
  }
}

/* ====================================================================================
   17.6  /add-ons/ 987489140 breadcrumb (row added by content pass18 "addons-crumbs")
   Every crumb rule in this file is scoped `.ss-hero .ss-crumbs`; /add-ons/'s hero is the old Divi hero without the
   `ss-hero` class, so the new crumb rendered Divi-link blue (46,163,242), with no chevron and "HomeAdd ons" run
   together. These rules give `.ss-crumbs` on this one page exactly the declarations the industry pages get from
   the `.ss-hero .ss-crumbs` blocks (flex row, gap 7 / 6 at <=980, 16 / 14px, #636363 links, #000 current page,
   the 6x6 border chevron, 25px desktop margin above the wrap, one line + ellipsis at <=980).
   Appended as a page-scoped copy instead of widening the shared selectors: those rules sit in six places and
   feed ~90 pages, so splicing them is a sitewide edit; this is one revertible block. If /add-ons/ ever gets
   `ss-hero` on its hero section this block becomes redundant and can be deleted.
   ==================================================================================== */
body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  font-family: var(--et_global_body_font, 'Nunito'), sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #636363;
}
body.page-id-987489140 :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]) {
  color: #636363;
  text-decoration: none;
}
body.page-id-987489140 :is(.et-l--post, .et-l--body) .et_builder_inner_content .ss-crumbs a:not([class*="et_pb_button"]):not([class*="ssh-"]):hover {
  color: var(--gcid-6spcyv8qzp, #ff7043);
}
body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs [aria-current="page"] {
  color: #000000;
}
body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs .ss-crumb-sep {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid #636363;
  border-right: 1.5px solid #636363;
  transform: rotate(45deg);
  flex: 0 0 auto;
}
/* The old hero's own page-scoped rules force every `.et_pb_text p` in the first section to 18px (16px at <=980)
   `!important`, line-height 1.3 and its text black, at (0,7,2): `body.page-id-987489140 .et-l--post .et_builder_inner_content >
   .et_pb_section.et_block_section:first-child .et_pb_text p`. That is the crumb size/colour leak, so this restates
   size and colour on `p.ss-crumbs` at the same prefix + the class (0,8,2), !important to match theirs. */
body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text p.ss-crumbs {
  font-size: 16px !important;
  line-height: 1.2 !important;
  color: #636363 !important;
}
@media (max-width: 980px) {
  body.page-id-987489140 .et-l--post .et_builder_inner_content > .et_pb_section.et_block_section:first-child .et_pb_text p.ss-crumbs {
    font-size: 14px !important;
  }
}
@media (min-width: 981px) {
  body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs-wrap {
    margin-top: 25px;
  }
}
@media (max-width: 980px) {
  body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs {
    gap: 6px;
    font-size: 14px;
    flex-wrap: nowrap;
  }
  body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs .ss-crumb-sep {
    width: 5px;
    height: 5px;
  }
  body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs > a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  body.page-id-987489140 :is(.et-l--post, .et-l--body) .ss-crumbs [aria-current="page"] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}


/* ---- content-fix-2026-10 pass22: blog post body buttons at <=980px ----
   Appended to the STAGING child style.css by css/pass22css.py (after the pass17 block). Nothing above is edited.
   Why: the sitewide <=980px rule makes every .ss-btn-primary display:block; width:100%. Inside a blog post body that spans the whole
   text column (15px from the screen edge) and reads as an edge-to-edge bar (738px on a tablet).
   What: scoped to .ss-post-body (the Theme Builder post-content module; the shared CTA banner sits outside it and is not matched),
   the button shrinks to its text and centres. display:table centres whatever alignment the module was saved with; max-width:100% lets
   a long label wrap. Specificity (0,5,0) beats the sitewide rule (0,4,0). >=981px is untouched; .ss-btn-secondary shares the class. */
@media (max-width: 980px) {
  .et-l--body .ss-post-body .et_builder_inner_content .et_pb_section .ss-btn-primary {
    display: table;
    width: auto;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}


/* ---- content-fix-2026-10 pass25: /how-much/ Yearly|Monthly toggle -- hide the savings label on Monthly ----
   Appended to the STAGING child style.css by css/pass25css.py (after the pass22 block). Nothing above is edited. CSS only: no JS, no post_content,
   no plugin file, so the sign-up calculator (simplesalon.js / ss-pricing.js) is untouched.

   Why: ss-pricing.js turns the savings paragraph into the "2 months free" chip and never hides it. The plugin's own click handlers already
   move `.selected` between the two .lnkPricePeriod links, so the label follows that class: Monthly selected -> label gone; Yearly -> back.
   Gated on body.ss-ctl-ready: ss-pricing.js adds it only AFTER its load-time "default to Yearly" click, and the plugin selects Monthly for an
   instant before that click. Without the gate the chip would blink away and back at boot. The module is addressed by the toggle's own ID
   (`#divPricePeriod + .et_pb_text`), like the existing pass-5 rules, not by a Divi ordinal. */
body.page-id-987491327.ss-ctl-ready .et_pb_column:has(> #divPricePeriod .lnkPricePeriod.month.selected) > #divPricePeriod + .et_pb_text {
  display: none !important;
}


/* ---- content-fix-2026-10 pass24: ONE size for every .ss-btn-primary / .ss-btn-secondary (PROPOSAL, not applied) ----
   Append to the child style.css AFTER the pass22 block. Nothing above is edited.

   STANDARD (design: Homepage/Pricing/Feature Page 20px/500/line-height 1, padding 12px 30px, radius 100):
     >=981px : 20px, padding 12px 30px  -> 44px tall. Shared CTA banner keeps the design's 12px 35px (P7.4) -> still 44 tall.
     <=980px : 18px, padding 15px 30px  -> 48px tall, shrink-to-text and centred (never edge to edge), in hero, body, post body and banner alike.
   Outline (.ss-btn-secondary) keeps the 2px #FF7043 border and gives it back out of the padding, so its OUTER box equals the solid button
   (44 / 48 tall, same width for the same label).

   WHY THE SELECTOR IS LONG: Divi emits per-module `body #page-container .et_pb_section .et_pb_button_N { font-size:20px !important }`
   (1,3,0) and the pass-1 `.ss-btn-section` rule is (0,5,0) !important, so an ID plus !important is the only thing that wins. (1,3,2) here. */

/* ---- <=980px: one size, auto width, centred. Replaces the sitewide display:block/width:100% rule, the .ss-btn-section 16px/14px 24px rule
        and the pass22 .ss-post-body-only table rule (all three become dead; pass22's block can stay, it agrees). ---- */
@media (max-width: 980px) {
  body #page-container .et_pb_section a.ss-btn-primary.et_pb_button,
  body #page-container .et_pb_section a.ss-btn-primary.et_pb_button:hover {
    display: table;
    width: auto;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    font-size: 18px !important;
    line-height: 1 !important;
    padding: 15px 30px !important;
  }
  body #page-container .et_pb_section a.ss-btn-primary.ss-btn-secondary.et_pb_button,
  body #page-container .et_pb_section a.ss-btn-primary.ss-btn-secondary.et_pb_button:hover {
    padding: 13px 28px !important;                /* 15/30 minus the 2px border */
  }
}

/* ---- >=981px: only the two things that deviate today. Solid buttons are already 44px everywhere except the pages listed below. ---- */
@media (min-width: 981px) {
  body #page-container .et_pb_section a.ss-btn-primary.ss-btn-secondary.et_pb_button,
  body #page-container .et_pb_section a.ss-btn-primary.ss-btn-secondary.et_pb_button:hover {
    padding: 10px 28px !important;                /* 12/30 minus the 2px border: outer 44px, same width as solid */
  }
  body #page-container .et_pb_section .ss-cta a.ss-btn-primary.ss-btn-secondary.et_pb_button,
  body #page-container .et_pb_section .ss-cta a.ss-btn-primary.ss-btn-secondary.et_pb_button:hover {
    padding: 10px 33px !important;                /* banner: 12/35 minus border */
  }
}

/* ---- blog-post hero built from a Fullwidth Header module (managing-packages and the other 2 fullwidth-header posts):
        Divi core `.et_pb_button{line-height:1.7em!important}` beats the module's line-height:1em, so the pill is 58px not 44. ---- */
.ss-post-body .et_pb_fullwidth_header a.et_pb_button.et_pb_button_one,
.ss-post-body .et_pb_fullwidth_header a.et_pb_button.et_pb_button_two {
  line-height: 1 !important;
}
@media (max-width: 980px) {
  .ss-post-body .et_pb_fullwidth_header a.et_pb_button.et_pb_button_one,
  .ss-post-body .et_pb_fullwidth_header a.et_pb_button.et_pb_button_two {
    font-size: 18px !important;
    padding: 15px 30px !important;
  }
}

/* ---- /how-much/ pricing-card buttons (CTA modules, no .ss-btn-primary class; they intentionally fill the card, so ONLY type + padding are aligned) ---- */
@media (min-width: 981px) {
  body.page-id-987491327 #page-container .compare_cta .et_pb_promo_button.et_pb_button {
    padding: 12px 30px !important;               /* was 20px 30px -> 60px tall */
  }
}
@media (max-width: 980px) {
  body.page-id-987491327 #page-container :is(.btn_starter_signup, .btn_pro_signup, .btn_max_signup, .compare_cta) .et_pb_promo_button.et_pb_button {
    font-size: 18px !important;                  /* was 16px */
    padding: 15px 30px !important;               /* was 14px 24px */
  }
}


/* ---- content-fix-2026-10 pass27: blog-post buttons that are NOT a.ss-btn-primary (promo/CTA-module, header/slider "more") to the pass24 standard (PROPOSAL, not applied) ----
   Append to the child style.css AFTER the pass24 block. Nothing above is edited. Colours, borders and font-family are NOT touched.

   STANDARD (same as pass24): >=981px 20px, 44px tall; <=980px 18px, 48px tall; sentence case as typed; auto width; never wider than its box.
   Height is set with min-height + a flex-centred label (padding-block 6px only keeps a wrapped label off the edge), so the 2px-bordered outline
   variants and the solid ones both come out at exactly 44 / 48 without needing a per-variant padding. Wrapping is allowed only if the label
   cannot fit the box at all (max-width:100%).

   SPECIFICITY: Divi emits per-module `body #page-container .et_pb_section .et_pb_button_N {font-size/padding !important}` (1,3,0) and core
   `.et_pb_button{line-height:1.7em!important}`. Here: body #page-container .ss-post-body a.et_pb_button.et_pb_X:not(.ss-btn-primary) = (1,4,2). */

body #page-container .ss-post-body a.et_pb_button.et_pb_promo_button:not(.ss-btn-primary),
body #page-container .ss-post-body a.et_pb_button.et_pb_promo_button:not(.ss-btn-primary):hover,
body #page-container .ss-post-body a.et_pb_button.et_pb_more_button:not(.ss-btn-primary),
body #page-container .ss-post-body a.et_pb_button.et_pb_more_button:not(.ss-btn-primary):hover {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: auto !important;
  max-width: 100% !important;
  text-transform: none !important;
  text-align: center;
  font-size: 20px !important;
  line-height: 1 !important;
  min-height: 44px;
  padding: 6px 30px !important;
}

@media (max-width: 980px) {
  body #page-container .ss-post-body a.et_pb_button.et_pb_promo_button:not(.ss-btn-primary),
  body #page-container .ss-post-body a.et_pb_button.et_pb_promo_button:not(.ss-btn-primary):hover,
  body #page-container .ss-post-body a.et_pb_button.et_pb_more_button:not(.ss-btn-primary),
  body #page-container .ss-post-body a.et_pb_button.et_pb_more_button:not(.ss-btn-primary):hover {
    font-size: 18px !important;
    min-height: 48px;
    padding: 6px 30px !important;
  }
  /* promo/CTA modules left-align their button wrapper; the standard is centred below 981px */
  body #page-container .ss-post-body .et_pb_promo .et_pb_button_wrapper {
    text-align: center;
  }
  /* header/slider text column is ~210px wide here, narrower than the button: let the column use the full section width so a one-line label fits */
  body #page-container .ss-post-body .et_pb_fullwidth_header .header-content-container,
  body #page-container .ss-post-body .et_pb_fullwidth_header .et_pb_fullwidth_header_container {
    width: 100%;
    max-width: 100%;
  }
  body #page-container .ss-post-body .et_pb_fullwidth_header .header-content {
    width: 100%;
    max-width: 100%;
    padding-left: 5px;
    padding-right: 5px;
    box-sizing: border-box;
  }
  body #page-container .ss-post-body .et_pb_fullwidth_header .et_pb_header_button_wrapper {
    width: 100%;
    max-width: 100%;
  }
  /* real Divi sliders: same idea, less side padding on the slide description */
  body #page-container .ss-post-body .et_pb_slide .et_pb_slide_description {
    padding-left: 5%;
    padding-right: 5%;
  }
}

/* header "more" button: Divi gives a lone button_one a trailing 15px margin that pushes it 7.5px off centre */
body #page-container .ss-post-body .et_pb_fullwidth_header .et_pb_header_button_wrapper a.et_pb_more_button.et_pb_button_one:last-child {
  margin-right: 0 !important;
}


/* ---- content-fix-2026-10 pass29: NEW-01 hero top gap (/blog/, /contact-us/), NEW-02 YouTube facade width (/3-stunning-reports/), IND-24a violet card contrast, CMP-01 intro line-height, CMP-02 panel->table gap (PROPOSAL, not applied) ----
   Append to the child style.css AFTER the pass27 block. Nothing above is edited. Brand orange #FF7043 untouched. */

/* NEW-01 (/blog/, /contact-us/): .ss-hero is padding-top:0 on desktop by design because a breadcrumb
   (.ss-crumbs-wrap, which carries its own 25px margin-top, desktop-fix pass1) normally sits first.
   These two heroes have NO breadcrumb, so the H1 butts the sticky header. Give them the same 25px
   (= design 390 band gap; <=980 already gets 25px from P6.2). Reuses existing .ss-hero, no new class. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-hero:not(:has(.ss-crumbs-wrap)),
  .et-l--body .et_builder_inner_content .ss-hero:not(:has(.ss-crumbs-wrap)) {
    padding-top: 25px;
  }
}

/* NEW-02 (/3-stunning-reports/ post 236905): the YouTube facade (.ss-yt, width:100%, 16:9) sits inside a
   Divi Code module whose module settings emit .et_pb_code_0{padding-left:200px;padding-right:200px}
   (0,1,0) -> content box 702-400 = 302px. Zero the side padding on any Code module that holds a facade.
   (0,3,0) beats (0,1,0). Also pins the poster to the 16:9 box so object-fit:cover cannot crop the title. */
.et-l--body .et_pb_code:has(.ss-yt),
.et-l--post .et_pb_code:has(.ss-yt) {
  padding-left: 0;
  padding-right: 0;
}
.et-l--body .ss-yt .ss-yt__poster,
.et-l--post .ss-yt .ss-yt__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------------------------------------------------------------------------------------------
   IND-24a  /sign-up/thanks-for-signing-up-book-a-call-now/ (page-id-987490726): white text on the violet
   "Skip the call and start now" card measured 3.10-4.01:1 (below 4.5 for the 18px body) because the card
   gradient starts at #EDE7F6 (-108%) so the top of the card, where the heading and first lines sit, is nearly white.
   Flat #7C4DFF (the site's violet token) puts white text at 4.81:1 everywhere on the card. Only the card colour
   changes; the .freetrial card, the click handlers, and all text are untouched.
   (The section's .chooseoption rules in style.css s6 set background-image with !important, so this is !important too.) */
body.page-id-987490726 .chooseoption.paynow {
  background-image: none !important;
  background-color: #7C4DFF !important;
}

/* ---------------------------------------------------------------------------------------------
   CMP-01  18 *-alternative comparison pages, "Why Salon Owners Are Switching From X" intro prose.
   .ss-intro is 18px / 1.2 (the Feature-page SECTION INTRO value, style.css ~3827). Here it is a left-aligned,
   multi-line prose block with no design counterpart, so 1.2 is too tight. 1.35 = the Comparison design's own
   18px paragraph (hero sub, "Comparison Page Template.dc.html" line 55). Desktop only (the report measured 1440;
   <=980 keeps its 1.25). The grey panel itself (.ss-intro-card, #F4F4F4, 30px radius, 25px padding) is the
   OWNER-APPROVED 2026-08-22 treatment (style.css s1d) -- NOT changed here. */
@media (min-width: 981px) {
  .et-l--post .et_builder_inner_content .ss-intro-sec .ss-intro,
  .et-l--body .et_builder_inner_content .ss-intro-sec .ss-intro {
    line-height: 1.35;
  }
}

/* ---------------------------------------------------------------------------------------------
   CMP-02  same pages: panel -> table-title gap is 125px vs 54px hero -> panel.
   Cause: .ss-intro-sec bottom padding (54) STACKS on .ss-versus-sec padding-top (70, set !important by the
   section-padding block at style.css ~12800). The design has no intro panel, so the 140px hero->table gap it draws
   is already spent by the hero's own bottom padding; the table should sit one panel-gutter (54) under the panel,
   matching the 54 above it. Zero the versus section's top padding ONLY when it directly follows the intro section.
   Same stacking at 390 (35 above the panel, 70 below), so no media query: 54/54 at 1440, 35/35 at 390. */
:is(.et-l--post, .et-l--body) .et_pb_section.ss-intro-sec + .et_pb_section.ss-versus-sec {
  padding-top: 0 !important;
}


/* ---- content-fix-2026-10 pass30: quiet region control (hubs' .region_switcher + /blog/ .ss-blog-regions one-liner) (PROPOSAL, not applied) ----
   Append to the child style.css AFTER the pass29 block. Nothing above is edited. Brand orange #FF7043 only on hover/focus.
   One muted text line "Region: <name> v", right-aligned above the posts grid; compact white panel on open. Class-scoped; no Divi ordinals.
   (B) is the CSS for the nav the mu-plugin ss-blog-brand.php prints (blogbrand30.py); it lives here, not in an inline <style>, so the
   region UI has ONE stylesheet and the 10Web per-page aggregate does not have to be regenerated for the rules to change. */

/* ---- (A) regional hubs: markup unchanged (.region_switcher / .region_dropdown), JS untouched ---- */
div.et_pb_section:has(.region_switcher) { padding: 14px 0 0; }
div.et_pb_section:has(.region_switcher) + div.et_pb_section { padding-top: 14px; }

div.et_pb_module .region_switcher {
  position: relative;
  display: inline-block;
  width: auto;
  text-align: right;
  font: 500 14px/1.3 Nunito, sans-serif;
  color: #595959;
}
div.et_pb_module .region_switcher .current_region {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-height: 32px;
  padding: 0;
  text-align: right;
  color: #595959;
  cursor: pointer;
}
div.et_pb_module .region_switcher .current_region span {
  font: 500 14px/1.3 Nunito, sans-serif;
  color: inherit;
}
/* replace the dashicons caret with a small chevron (no icon-font dependency) */
div.et_pb_module .region_switcher .current_region span:after {
  content: "";
  font: 0/0 sans-serif;
  display: inline-block;
  position: static;
  width: 6px; height: 6px;
  margin: 0 2px 3px 8px;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
  vertical-align: middle;
  transition: transform .15s ease;
}
div.et_pb_module .region_switcher:hover .current_region { color: #1A1A1A; }
div.et_pb_module .region_switcher:hover .current_region span:after { content: ""; border-color: #FF7043; transform: rotate(-135deg); margin-bottom: 0; margin-top: 3px; }
div.et_pb_module .region_switcher.show:not(:hover) .current_region span:after { content: ""; }

div.et_pb_module .region_switcher .region_dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 2px);
  right: 0;
  left: auto;
  box-sizing: border-box;
  width: max-content;
  min-width: 220px;
  max-width: calc(100vw - 30px);
  margin: 0;
  padding: 4px;
  background: #fff;
  border: 1px solid #E2E2E2;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(26, 26, 26, .12);
  z-index: 1000;
  list-style: none;
  text-align: left;
}
div.et_pb_module .region_switcher .region_dropdown:before { content: ""; position: absolute; left: 0; right: 0; top: -4px; height: 4px; }
div.et_pb_module .region_switcher:hover .region_dropdown { display: block; }
div.et_pb_module .region_switcher.show:not(:hover) .region_dropdown { display: none; }  /* stale JS toggle must not pin it open */
div.et_pb_module .region_switcher .region_dropdown li {
  display: flex;
  align-items: center;
  min-height: 36px;
  margin: 0;
  padding: 0 12px;
  border-radius: 8px;
  font: 500 14px/1.3 Nunito, sans-serif;
  color: #1A1A1A;
  cursor: pointer;
}
div.et_pb_module .region_switcher .region_dropdown li:hover { background: #FFF4F0; box-shadow: inset 3px 0 0 #FF7043; }

/* ---- (B) /blog/: one-liner replacing the pill block. Markup (mu-plugin ss-blog-brand.php):
   <nav class="ss-blog-regions" aria-label="Blog regions"><details><summary>Region: All regions</summary><ul><li><a href=...>..</a></li>...</ul></details></nav>
   No JS: native <details> gives keyboard + touch behaviour. ---- */
nav.ss-blog-regions { max-width: 1340px; margin: 0 auto; padding: 14px 15px 0; box-sizing: border-box; text-align: right; }
nav.ss-blog-regions details { position: relative; display: inline-block; text-align: right; font: 500 14px/1.3 Nunito, sans-serif; color: #595959; }
nav.ss-blog-regions summary {
  display: inline-flex; align-items: center; min-height: 32px; cursor: pointer; list-style: none; color: #595959;
}
nav.ss-blog-regions summary::-webkit-details-marker { display: none; }
nav.ss-blog-regions summary:after {
  content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 2px 3px 8px;
  border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .15s ease;
}
nav.ss-blog-regions summary:hover, nav.ss-blog-regions details[open] summary { color: #1A1A1A; }
nav.ss-blog-regions summary:hover:after, nav.ss-blog-regions details[open] summary:after { border-color: #FF7043; }
nav.ss-blog-regions details[open] summary:after { transform: rotate(-135deg); margin: 3px 2px 0 8px; }
nav.ss-blog-regions summary:focus-visible { outline: 2px solid #FF7043; outline-offset: 2px; border-radius: 4px; }
nav.ss-blog-regions ul {
  position: absolute; top: calc(100% + 2px); right: 0; z-index: 1000;
  box-sizing: border-box; width: max-content; min-width: 220px; max-width: calc(100vw - 30px);
  margin: 0; padding: 4px; list-style: none; text-align: left;
  background: #fff; border: 1px solid #E2E2E2; border-radius: 12px; box-shadow: 0 6px 20px rgba(26, 26, 26, .12);
}
nav.ss-blog-regions li { margin: 0; padding: 0; }
nav.ss-blog-regions a {
  display: flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 8px;
  font: 500 14px/1.3 Nunito, sans-serif; color: #1A1A1A; text-decoration: none;
}
nav.ss-blog-regions a:hover, nav.ss-blog-regions a:focus-visible { background: #FFF4F0; box-shadow: inset 3px 0 0 #FF7043; text-decoration: none; }

/* ---- phones: same line, 44px tap rows ---- */
@media (max-width: 600px) {
  div.et_pb_module .region_switcher .current_region, nav.ss-blog-regions summary { min-height: 44px; }
  div.et_pb_module .region_switcher .region_dropdown li, nav.ss-blog-regions a { min-height: 44px; }
  div.et_pb_module .region_switcher .region_dropdown, nav.ss-blog-regions ul { min-width: 240px; }
}


/* ---- content-fix-2026-10 pass31: one-tap region switcher on touch (.is-open) ---- */
/* pass31: one-tap region switcher on touch. The 10Web delayed-JS loader swallows the first tap's mouse events (no :hover, no mouseenter), so touch uses its own .is-open class set by a click handler. Desktop (hover:hover, fine pointer) is untouched. */
@media (hover: none), (pointer: coarse) {
  div.et_pb_module .region_switcher:hover .region_dropdown,
  div.et_pb_module .region_switcher.show .region_dropdown { display: none; }
  div.et_pb_module .region_switcher.is-open.is-open.is-open .region_dropdown { display: block; }
  div.et_pb_module .region_switcher.is-open.is-open .current_region { color: #1A1A1A; }
  div.et_pb_module .region_switcher.is-open.is-open .current_region span:after { border-color: #FF7043; transform: rotate(-135deg); margin-bottom: 0; margin-top: 3px; }
}


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

	body, input, textarea, select {
		font-family: 'Montserrat',Helvetica,Arial,Lucida,sans-serif;
	}


/*FILESTART   */

/* 10Web Booster optimized this CSS file */
h1{text-wrap:balance;}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/et-cache/taxonomy/category/84/et-divi-customizer-tb-987493208-tb-987493209.min.css */

body,.et_pb_column_1_2 .et_quote_content blockquote cite,.et_pb_column_1_2 .et_link_content a.et_link_main_url,.et_pb_column_1_3 .et_quote_content blockquote cite,.et_pb_column_3_8 .et_quote_content blockquote cite,.et_pb_column_1_4 .et_quote_content blockquote cite,.et_pb_blog_grid .et_quote_content blockquote cite,.et_pb_column_1_3 .et_link_content a.et_link_main_url,.et_pb_column_3_8 .et_link_content a.et_link_main_url,.et_pb_column_1_4 .et_link_content a.et_link_main_url,.et_pb_blog_grid .et_link_content a.et_link_main_url,body .et_pb_bg_layout_light .et_pb_post .post-content,body .et_pb_bg_layout_dark .et_pb_post .post-content{font-size:14px}.et_pb_slide_content,.et_pb_best_value{font-size:15px}@media only screen and (min-width:1350px){.et_block_row{padding:27px 0}.et_pb_section{padding:54px 0}.single.et_pb_pagebuilder_layout.et_full_width_page .et_post_meta_wrapper{padding-top:81px}.et_pb_fullwidth_section{padding:0}}@media only screen and (max-width:980px){.et_header_style_centered .mobile_nav .select_page,.et_header_style_split .mobile_nav .select_page,.et_mobile_menu li a,.mobile_menu_bar:before,.et_nav_text_color_light #top-menu>li>a,.et_nav_text_color_dark #top-menu>li>a,#top-menu a,.et_mobile_menu li a,#et_search_icon:before,#et_top_search .et-search-form input,.et_search_form_container input,#et-top-navigation .et-cart-info{color:rgba(0,0,0,0.6)}.et_close_search_field:after{color:rgba(0,0,0,0.6)!important}.et_search_form_container input::-moz-placeholder{color:rgba(0,0,0,0.6)}.et_search_form_container input::-webkit-input-placeholder{color:rgba(0,0,0,0.6)}.et_search_form_container input:-ms-input-placeholder{color:rgba(0,0,0,0.6)}}	h1,h2,h3,h4,h5,h6{font-family:var(--et_global_heading_font)}body,input,textarea,select{font-family:var(--et_global_body_font)}

/*FILESTART  /home/wpstaging/web/wp-staging/wp-content/et-cache/taxonomy/category/84/et-divi-customizer.min.css */

.pa-multi-line-highlight h2{color:#ffffff;background-color:#8EDCE6;line-height:1.7em;padding-bottom:5px;padding-top:5px;padding-left:10px;padding-right:10px;display:inline;border-radius:50px 50px 50px 50px;box-decoration-break:clone}.et_pb_menu_0_tb_header.et_pb_menu ul li.login-nav a{color:#8EDCE6!important}.et_pb_db_shortcode_popup_popup_inner{overflow-y:initial!important}.et_pb_db_shortcode_popup_popup_inner #calendly-inline-widget{min-height:80vh}@media only screen and (max-width:767px){.et_pb_text_1 h1{font-size:36px!important;letter-spacing:-1px!important;line-height:1.1em!important}.et_pb_text_1 p{font-size:14px!important;line-height:1.4em!important}}.grecaptcha-badge{display:none!important}@media only screen and (max-width:767px){.et_pb_section_3 .et_pb_column_1_2{width:47%!important;float:left!important;margin-bottom:15px!important;margin-right:2%!important}.et_pb_section_3 .et_pb_column_1_2:nth-child(even){margin-right:0!important}.et_pb_section_3 .et_pb_text_inner{border-right:none!important}}a[href*="book-a-demo"],a[href*="book-a-simple-salon-demo"]{display:none!important}.et_pb_image_wrap img[data-src*="app_store"]{content:attr(data-src)}@media (max-width:980px){.et_pb_image_2_tb_footer,.et_pb_image_3_tb_footer{max-width:160px!important}.et_pb_image_2_tb_footer .et_pb_image_wrap,.et_pb_image_3_tb_footer .et_pb_image_wrap{max-width:160px!important}.et_pb_image_2_tb_footer img,.et_pb_image_3_tb_footer img{width:140px!important;height:auto!important}.et_pb_cta_0.et_pb_promo,.et_pb_cta_1.et_pb_promo,.et_pb_cta_2.et_pb_promo,.et_pb_cta_3.et_pb_promo{padding:20px 16px!important}.et_pb_cta_0 .et_pb_module_header,.et_pb_cta_1 .et_pb_module_header,.et_pb_cta_2 .et_pb_module_header{font-size:18px!important;padding:8px 12px!important}.et_pb_cta_0 .et_pb_promo_description h2,.et_pb_cta_1 .et_pb_promo_description h2,.et_pb_cta_2 .et_pb_promo_description h2{font-size:36px!important}.et_pb_cta .et_pb_button.et_pb_promo_button{padding:10px 20px!important;font-size:14px!important;min-width:0!important;width:auto!important}.btn_starter_signup .et_pb_module_header,.btn_pro_signup .et_pb_module_header,.btn_max_signup .et_pb_module_header{border-width:4px!important}}@media (min-width:768px) and (max-width:980px){.et_pb_cta_0.et_pb_promo,.et_pb_cta_1.et_pb_promo,.et_pb_cta_2.et_pb_promo,.et_pb_cta_3.et_pb_promo{padding:28px 20px!important}}@media (max-width:980px){#et-boc .et-l .et_pb_image_2_tb_footer,#et-boc .et-l .et_pb_image_3_tb_footer{width:160px!important;max-width:160px!important;padding-left:0!important;padding-right:0!important}#et-boc .et-l .et_pb_image_2_tb_footer .et_pb_image_wrap,#et-boc .et-l .et_pb_image_3_tb_footer .et_pb_image_wrap{width:140px!important;max-width:140px!important}#et-boc .et-l .et_pb_image_2_tb_footer .et_pb_image_wrap img,#et-boc .et-l .et_pb_image_3_tb_footer .et_pb_image_wrap img{width:140px!important;max-width:140px!important;height:auto!important}}.page-id-987489714 .et_pb_section_1{min-height:300px;display:flex;align-items:center}.page-id-987489714 .et_pb_section_1 h1,.page-id-987489714 .et_pb_section_1 h2{font-family:'Yeseva One',serif!important;color:#ffffff!important;font-size:48px!important;text-align:center}.page-id-987489714 .et_pb_section_1 h1 em,.page-id-987489714 .et_pb_section_1 h2 em{font-style:italic}.page-id-987489714 .et_pb_section_1 p{color:rgba(255,255,255,0.9)!important;font-family:'Montserrat',sans-serif!important;font-size:18px!important;text-align:center}@media (max-width:980px){.page-id-987489714 .et_pb_section_1{min-height:220px;padding:60px 20px!important}.page-id-987489714 .et_pb_section_1 h1,.page-id-987489714 .et_pb_section_1 h2{font-size:32px!important}.page-id-987489714 .et_pb_section_1 p{font-size:16px!important}}body.page-id-987492453 .et_pb_section_0{min-height:720px!important}body.page-id-987492453 .et_parallax_bg--et_pb_section_0{background-position:50% 45%!important}@media only screen and (max-width:980px){body.page-id-987492453 .et_pb_section_0{min-height:0!important}body.page-id-987492453 .et_parallax_bg--et_pb_section_0{background-position:50% 50%!important}}body.page-id-987489714 .et_pb_section_0{display:none!important}.et-l--header{position:relative;z-index:99999}@media (max-width:980px){.et-l--header .et_pb_menu_0_tb_header .et_pb_menu_inner_container{justify-content:flex-end!important}.et-l--header .et_pb_menu_0_tb_header{padding-right:0!important}}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/group/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

:where(.wp-block-group.has-background){padding:1.25em 2.375em}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/group/theme.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/archives/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/categories/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/heading/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

:where(.wp-block-latest-comments){padding-left:0}ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/latest-comments/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-right:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/latest-posts/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/search/style.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}
/*# sourceURL=https://simplesalon2-dev.10web.cloud/wp-includes/blocks/search/theme.min.css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */

:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:6ae91abfd3f54*/
/*# sourceURL=wp-block-library-inline-css */


/*FILESTART   */

/* 10Web Booster optimized this CSS file */
/* Simple Salon header -- built from design source B (page mockups) + Jason's
   2026-08-17 decisions. Sticky, NOT fixed: a sticky band occupies flow space so
   no page needs a compensating top offset (spec 3.5). */
.et-l--header{position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,0.85);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
#page-container,#et-boc,#et-main-area,.et-l--header,
.et-l--header .et_builder_inner_content{overflow:visible;}
.ssh,.ssh *{box-sizing:border-box;}
.ssh{display:flex;align-items:center;justify-content:space-between;
  height:94px;padding:0 50px;font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;}
.ssh a{text-decoration:none;}
.ssh-logo{display:flex;align-items:center;line-height:0;flex-shrink:0;}
.ssh-logo img{width:200px;height:auto;display:block;}
.ssh-right{display:flex;align-items:center;gap:var(--gvid-space-s,20px);}
.ssh-nav{display:flex;align-items:center;gap:var(--gvid-space-s,20px);}
.ssh-dd{position:relative;}
.ssh-link{display:flex;align-items:center;gap:7px;font-weight:500;font-size:18px;
  line-height:1.1;color:var(--gcid-90suxw02k0,#2F2F2F);padding:10px 0;cursor:pointer;white-space:nowrap;}
.ssh-link:hover,.ssh-dd:hover .ssh-link{color:var(--gcid-6spcyv8qzp,#FF7043);}
.ssh-panel{display:none;position:absolute;top:100%;left:-30px;padding-top:10px;
  z-index:50;}
.ssh-dd:hover .ssh-panel,.ssh-dd:focus-within .ssh-panel{display:block;}
.ssh-panel-in{background:#ffffff;border:1px solid #E5E5EA;
  border-radius:var(--gvid-radius-row,20px);box-shadow:0 20px 50px rgba(0,0,0,0.10);
  padding:25px 30px;display:grid;gap:4px 45px;width:max-content;}
.ssh-panel-2 .ssh-panel-in{grid-template-columns:1fr 1fr;}
.ssh-panel-1 .ssh-panel-in{grid-template-columns:1fr;}
.ssh-panel-in a{color:var(--gcid-90suxw02k0,#2F2F2F);font-size:16px;line-height:1.4;padding:4px 0;
  display:block;font-weight:400;}
.ssh-panel-in a:hover{color:var(--gcid-6spcyv8qzp,#FF7043);}
.ssh-btn{font-weight:500;font-size:20px;line-height:1;border-radius:100px;
  padding:10px 30px;display:inline-flex;align-items:center;justify-content:center;
  height:42px;white-space:nowrap;transition:color .15s,background .15s,
  border-color .15s;}
.ssh-login{color:var(--gcid-90suxw02k0,#2F2F2F);border:1px solid #000000;background:transparent;}
.ssh-login:hover{border-color:var(--gcid-6spcyv8qzp,#FF7043);color:var(--gcid-6spcyv8qzp,#FF7043);}
.ssh-trial{color:#ffffff;background:var(--gcid-6spcyv8qzp,#FF7043);border:1px solid transparent;}
.ssh-trial:hover{background:var(--gcid-hv4rq8m2ns,#E85F35);color:#ffffff;}
.ssh-burger{width:48px;height:48px;min-width:48px;border-radius:100px;
  border:1px solid var(--gcid-6spcyv8qzp,#FF7043);background:transparent;color:var(--gcid-6spcyv8qzp,#FF7043);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  padding:0;flex-shrink:0;}
/* Breakpoint is an INVENTION -- the design export contains no @media query at
   all and no tablet canvas (spec gap 1). 980px is Divi 5's own tablet edge. */
@media (max-width:1240px){.ssh{padding:0 25px;}}
@media (max-width:980px){
  .et-l--header{position:static;background:#ffffff;
    -webkit-backdrop-filter:none;backdrop-filter:none;}
  .ssh{height:66px;padding:0 15px;}
  .ssh-nav,.ssh-trial{display:none;}
  .ssh-logo img{width:143px;}
  .ssh-right{gap:10px;}
  .ssh-login{font-size:16px;padding:9px 20px;height:36px;color:var(--gcid-6spcyv8qzp,#FF7043);
    border-color:var(--gcid-6spcyv8qzp,#FF7043);}
  .ssh-burger{width:36px;height:36px;min-width:36px;}
}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */
/* Simple Salon footer -- rounded inset card. The violet wash is a LITERAL
   inline gradient, never a saved Divi global gradient: a `gvid-` gradient
   reference on a layout that appears on every page would flip Divi 5.9.0 into
   selective :root emission (spec section 1, the single highest-risk item). */
.ssf,.ssf *{box-sizing:border-box;}
.ssf{margin:0 50px 50px 50px;border-radius:var(--gvid-radius-card,30px);
  background:linear-gradient(180deg,rgba(124,77,255,0.07) -3.92%,
  rgba(255,255,255,0.07) 176.77%);
  padding:var(--gvid-space-l,70px);display:flex;flex-direction:column;gap:var(--gvid-space-l,70px);
  font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--gcid-90suxw02k0,#2F2F2F);font-size:16px;}
.ssf a{color:var(--gcid-90suxw02k0,#2F2F2F);text-decoration:none;}
.ssf a:hover{color:var(--gcid-6spcyv8qzp,#FF7043);}
.ssf p{margin:0;}
.ssf-h{font-size:18px;font-weight:600;line-height:1.3;display:block;}
.ssf-mob{display:none;}
.ssf-top{display:flex;gap:57px;align-items:flex-start;}
.ssf-brand{display:flex;flex-direction:column;gap:var(--gvid-space-m,35px);width:326px;
  flex-shrink:0;}
.ssf-brand img{width:275px;height:auto;display:block;}
.ssf-blurb{font-size:16px;line-height:1.35;}
.ssf-dl{display:flex;flex-direction:column;gap:12px;}
.ssf-dl-row{display:flex;gap:15px;font-size:16px;}
.ssf-grid{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gvid-space-m,35px);}
.ssf-col{display:flex;flex-direction:column;gap:12px;font-size:16px;
  line-height:1.9;}
.ssf-col .ssf-mt{margin-top:var(--gvid-space-s,20px);}
.ssf-legal{display:flex;justify-content:space-between;align-items:center;
  font-size:16px;border-top:1px solid var(--gcid-vak449rdh1,#EDE7F6);padding-top:var(--gvid-space-m,35px);}
.ssf-legal-links{display:flex;gap:var(--gvid-space-m,35px);}
@media (max-width:1240px){.ssf{margin:0 25px 25px 25px;padding:var(--gvid-space-m,35px);}}
@media (max-width:980px){
  .ssf{margin:0 15px 15px 15px;padding:35px 25px;gap:35px;}
  .ssf-desk{display:none;}
  .ssf-mob{display:flex;flex-direction:column;gap:35px;}
  .ssf-mob-brand{display:flex;flex-direction:column;gap:25px;}
  .ssf-mob-brand img{width:200px;height:auto;display:block;}
  .ssf-mob-blurb{font-size:15px;line-height:1.35;}
  .ssf-mob-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;}
  .ssf-mob-cell{display:flex;flex-direction:column;gap:8px;font-size:15px;
    line-height:1.8;}
  .ssf-mob-cell .ssf-h{font-size:16px;}
  .ssf-legal{flex-direction:column;align-items:flex-start;gap:8px;font-size:14px;
    padding-top:20px;}
  .ssf-legal-links{gap:20px;}
}
.ssf .ssf-store{display:inline-block;line-height:0;border-radius:6px}
.ssf .ssf-store img{display:block;height:40px;width:auto;max-width:100%}
.ssf .ssf-store:focus-visible{outline:2px solid #2F2F2F;outline-offset:3px}
.ssf .ssf-dl-row{gap:12px;font-size:0}
.ssf .ssf-mob-cell .ssf-store-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ssf .ssf-store-wrap br{display:none}


/*FILESTART   */

/* 10Web Booster optimized this CSS file */
:root{--et_global_heading_font: 'Poppins';--et_global_body_font: 'Nunito';--et_global_heading_font_weight: 500;--et_global_body_font_weight: 500;--et_global_body_font_size: 14px;--et_global_body_font_height: 1.7em;}body{line-height:var(--et_global_body_font_height);font-size:var(--et_global_body_font_size);}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */
/* Original: https://fonts.googleapis.com/css?family=Poppins:100,100italic,200,200italic,300,300italic,regular,italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;subset=devanagari,latin,latin-ext,cyrillic,cyrillic-ext,vietnamese&#038;display=swap *//* User Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1 *//* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tDMPKhSkFEkm8.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tMMPKhSkFEkm8.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tCMPKhSkFE.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucXtAOvWDSHFF.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLufntAOvWDSHFF.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucHtAOvWDSA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVFteOYktMqlap.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVGdeOYktMqlap.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVF9eOYktMqg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucXtAOvWDSHFF.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTufntAOvWDSHFF.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucHtAOvWDSA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJbecnFHGPezSQ.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJnecnFHGPezSQ.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z11lFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1JlFd2JQEl8qw.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1xlFd2JQEk.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0 *//* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tDMPKzSQ.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tMMPKzSQ.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tCMPI.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucHtA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucXtAKPY.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTufntAKPY.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucHtA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 *//* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tDMPKzSQ.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tMMPKzSQ.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tCMPI.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucHtA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVFteOcEg.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVGdeOcEg.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: italic;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVF9eO.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucXtAKPY.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTufntAKPY.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 100;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucHtA.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 200;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 300;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 400;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 500;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 600;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 700;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 800;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* devanagari */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z11lFc-K.woff2) format('woff2');unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;}/* latin-ext */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face {font-family: 'Poppins';font-style: normal;font-weight: 900;font-display: swap;;src: url(https://fonts.gstatic.com/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */
:root{--gvid-space-s: 20px;--gvid-space-m: 35px;--gvid-space-l: 70px;--gvid-radius-card: 30px;--gvid-radius-row: 20px;}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */
.et_pb_section_0_tb_header.et_pb_section,.et_pb_section_0_tb_footer.et_pb_section{margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px}.et_pb_section_0_tb_header,.et_pb_section_0_tb_footer{padding:0;margin:0}.et_pb_row_0_tb_header.et_pb_row,.et_pb_row_0_tb_footer.et_pb_row{margin-top:0px!important;margin-right:0px!important;margin-bottom:0px!important;margin-left:0px!important;padding-top:0px!important;padding-right:0px!important;padding-bottom:0px!important;padding-left:0px!important;width:100%;max-width:100%}.et_pb_row_0_tb_header,.et_pb_pagebuilder_layout.single-post:not(.et-tb-has-body) #main-content .et_pb_row.et_pb_row_0_tb_header,.et_pb_row_0_tb_footer,.et_pb_pagebuilder_layout.single-post:not(.et-tb-has-body) #main-content .et_pb_row.et_pb_row_0_tb_footer{width:100%!important}.et_pb_row_0_tb_header,.et_pb_row_0_tb_footer{max-width:100%!important}.et_pb_row .et_pb_column_0_tb_header.et_pb_column,.et_pb_row .et_pb_column_0_tb_footer.et_pb_column{margin-top:0px;margin-right:0px!important;margin-bottom:0px}.et_pb_column_0_tb_header,.et_pb_column_0_tb_footer{margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px}.et_pb_code_0_tb_header,.et_pb_code_0_tb_footer{margin-top:0px!important;margin-right:0px!important;margin-bottom:0px!important;margin-left:0px!important;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px}

/*FILESTART   */

/* 10Web Booster optimized this CSS file */
.et-db #et-boc .et-l.et-l--header .et_builder_inner_content{z-index:auto}.et-db #et-boc .et-l.et-l--footer .et_builder_inner_content{z-index:auto}