1<!DOCTYPE html> 2<html dir="ltr" lang="en-US"> 3<head> 4
4<script> 5 if (location.protocol != 'https:') 6 { 7 // location.href = 'https:' + window.location.href.substring(window.location.protocol.length); 8 } 9 </script>
9 10 <link rel="icon" href="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c2d15e9.png"> 11<link rel="apple-touch-icon" href="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c2d15e9.png"> 12 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 13 <meta name="generator" content="AttractWell.com" /> 14 <meta name="author" content="Brooks Demming" /> 15 16 <link rel="stylesheet" href="https://webcache.attractwell.com/app/common/all-marketing-site-css.min.css" type="text/css" /> 17
17<script src="https://webcache.attractwell.com/app/common/all-marketing-site-js.min.js"></script>
17 18 <!-- Stylesheets 19 ============================================= --> 20<!-- <link href="//fonts.googleapis.com/css?family=Lato:300,400,400italic,600,700|Raleway:300,400,500,600,700|Crete+Round:400italic" rel="stylesheet" type="text/css" />--> 21 <!-- 22 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/bootstrap-337.css" type="text/css" /> 23 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/style-2.css" type="text/css" /> 24 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/dark.css" type="text/css" /> 25 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/animate.css" type="text/css" /> 26 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/magnific-popup.css" type="text/css" /> 27 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/responsive.css" type="text/css" /> 28 --> 29 <link href="https://fonts.googleapis.com/css?family=Baloo+Chettan|Caveat:400,700|Comfortaa:400,700|Crete+Round:400,400i|Euphoria+Script|Indie+Flower|Lato:300,400,400i,700,700i|Merriweather:400,400i,700,700i|Nanum+Myeongjo:400,800|Open+Sans:400,400i,700,700i|Oswald:400,700|Permanent+Marker|Playfair+Display:400,400i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Tangerine:400,700|Cormorant+Garamond:400,400i,700,700i|Crimson+Text:400,400i,700,700i|Josefin+Slab:400,400i,700,700i|Livvic:400,400i,600,600i|Montserrat:400,400i,600,600i|Nanum+Gothic:4
2900,700|Old+Standard+TT:400,400i,700|Roboto:400,400i,700,700i|Aguafina+Script&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Comfortaa&display=swap" rel="stylesheet">
29<script src="https://kit.fontawesome.com/569c6654a7.js" crossorigin="anonymous" defer></script>
29 30 <meta name="viewport" content="width=device-width, initial-scale=1" /> 31 <!--[if lt IE 9]> 32
32<script src="//css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
32 33 <![endif]--> 34 35 36 37 <!-- Facebook share tags 38 ============================================= --> 39 <meta property="og:type" content="website" /> 40 <meta property="og:image:type" content="image/jpg" /> 41<!-- <meta property="og:image:width" content="1200" />--> 42<!-- <meta property="og:image:height" content="630" />--> 43 <meta property="og:title" content="The R.I.S.E. Framework Workbook | Store | Brooks Demming" /> 44<meta property="og:description" content="" /> 45 46 <!-- Document Title 47 ============================================= --> 48 <title>The R.I.S.E. Framework Workbook | Store | Brooks Demming</title> 49 50 <!-- Blog RSS feed --> 51 <link rel="alternate" href="https://brooksdemming.com/feed" title="RSS feed" type="application/rss+xml" /> 52 53 <!-- External JavaScripts 54 ============================================= --> 55 <style type="text/css" media="all"> 56 .fr-view span > h1, .fr-view span > h2, .fr-view span > h3, .fr-view span > h4, .fr-view span > h5, .fr-view span > h6 { color: revert !important; font-size: inherit !important; font-weight: inherit !important; } 57 h1 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 58h2 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 59h3 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 60h4 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 61h5 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 62h6 {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 63#logo {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 64#primary-menu ul li a {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 65#primary-menu ul > li > ul > li > a { font-weight: 300; text-transform:none !important; color:#333333; } 66#primary-menu ul li .mega-menu-content.style-2 > ul > li.mega-menu-title > a {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 67.dark #header-wrap:not(.not-dark) #primary-menu > ul > li > a, {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 68.dark #header-wrap:not(.not-dark) #primary-menu > .container > ul > li > a, .dark.overlay-menu #header-wrap:not(.not-dark) #primary-menu > ul > li > a, .overlay-menu #primary-menu.dark > ul > li > a, .dark.overlay-menu #header-wrap:not(.not-dark) #primary-menu > #overlay-menu-close, .overlay-menu #primary-menu.dark > #overlay-menu-close, .dark #header-wrap:not(.not-dark) #top-search a, .dark #header-wrap:not(.not-dark) #top-cart a, .dark #header-wrap:not(.not-dark) #side-panel-trigger a, .dark #top-cart .top-cart-item-desc a, body.top-search-open .dark #header-wrap:not(.not-dark) #top-search a, .dark #header-wrap:not(.not-dark) #top-search a:hover, .dark #header-wrap:not(.not-dark) #top-cart a:hover, .dark #header-wrap:not(.not-dark) #side-panel-trigger a:hover, .dark #header-wrap:not(.not-dark) #top-search form input {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:inherit !important; } 69#top-search form input {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 70.entry-link {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 71.entry.entry-date-section span {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 72.button.button-desc {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 73ul.tab-nav-lg li a {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 74.counter {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 75label {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 76.nav-tree li a {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 77.wedding-head .first-name, .wedding-head .last-name, .wedding-head .and {font-family:Lato,sans-serif; font-weight: 300; text-transform:none !important; color:#333333; } 78body {font-family: Lato,sans-serif; font-weight: 400; } 79small {font-family: Lato,sans-serif; font-weight: 400; } 80.font-body {font-family: Lato,sans-serif; font-weight: 400; } 81#primary-menu ul ul a {font-family: Lato,sans-serif; font-weight: 400; } 82.wp-caption {font-family: Lato,sans-serif; font-weight: 400; } 83.feature-box.fbox-center.fbox-italic p {font-family: Lato,sans-serif; font-weight: 400; } 84.skills li .progress-percent .counter {font-family: Lato,sans-serif; font-weight: 400; } 85.nav-tree ul ul a {font-family: Lato,sans-serif; font-weight: 400; } 86.button { text-transform: none; } 87.font-secondary {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 88.entry-meta li {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; }
89.entry-link span {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 90.entry blockquote p {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 91.more-link {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 920 {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 93.button.button-desc span {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 94.testi-content p {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 95.team-title span {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 96.before-heading {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 97.wedding-head .first-name span, .wedding-head .last-name span {font-family: Lato,sans-serif; font-style: italic; font-weight: 700; } 98 label { 99 font-weight: 500 !important; 100 color: #666; 101 } 102 /* 103 #page-title h1 { 104 font-weight: 600 !important; 105 color: #666; 106 }*/ 107 @media( min-width: 992px ) { 108 .fr-view section, .fr-view a { 109 scroll-margin-top: 100px; 110 } 111 } 112 .color { 113 color: #1c2b4a; 114 } 115 ::selection { 116 background: #1c2b4a; 117 } 118 ::-moz-selection { 119 background: #1c2b4a; /* Firefox */ 120 } 121 ::-webkit-selection { 122 background: #1c2b4a; /* Safari */ 123 } 124 a { 125 color: #1c2b4a; 126 } 127 a:hover:not(.button) { 128 color: #e4ccc4; 129 } 130 h1 > span:not(.nocolor), 131 h2 > span:not(.nocolor), 132 h3 > span:not(.nocolor), 133 h4 > span:not(.nocolor), 134 h5 > span:not(.nocolor), 135 h6 > span:not(.nocolor) { color: inherit; } 136 137 .bgcolor, 138 .bgcolor #header-wrap { background-color: #1c2b4a !important; } 139 140 .color { color: #1c2b4a !important; } 141 142 .border-color { border-color: #1c2b4a !important; } 143 144 .top-links ul ul, 145 .top-links ul div.top-link-section { 146 border-top: 1px solid #1c2b4a; 147 } 148 149 .header-extras li .he-text span { 150 color: #1c2b4a; 151 } 152 153 /*#primary-menu > ul > li:hover a,*/ 154 /*#primary-menu > ul > li.current a { color: *//*; }*/ 155 156 #primary-menu ul ul, 157 #primary-menu ul li .mega-menu-content { 158 border-top: 0; /*2px solid #1c2b4a;*/ 159 } 160 161 .dark #primary-menu:not(.not-dark) ul ul a, #primary-menu.dark ul ul a, #primary-menu ul li a { 162 color: #000000 !important; 163 } 164 165 166 .dark #primary-menu:not(.not-dark) ul ul li:hover > a, #primary-menu.dark ul ul li:hover > a, #primary-menu ul li a:hover { 167 color: #000000 !important; 168 } 169 170 #primary-menu ul ul li:hover > a, #primary-menu ul li a:hover, 171 #header-wrap #primary-menu ul ul li:hover > a, #header-wrap #primary-menu ul li a:hover { 172 color: #000000 !important; 173 } 174 175 /* 176 @media (min-width:992px) { 177 #header.full-header #primary-menu { 178 position: absolute; 179 right: 30px; 180 width: calc( 100% - 577px ); 181 } 182 #header.sticky-header #primary-menu { 183 position: absolute; 184 right: 30px; 185 width: calc( 100% - 250px ); 186 } 187 #header.full-header #primary-menu > ul { 188 float: right; 189 } 190 } 191 */ 192 193 /*#primary-menu ul li .mega-menu-content.style-2 > ul > li.mega-menu-title > a:hover { color: */#eee6db/* !important; }*/ 194 195 /* 196 #primary-menu > div > ul > li:hover a, 197 #primary-menu > div > ul > li.current a { color: #eee6db; } 198 */ 199 200 #primary-menu.style-3 > ul > li.current > a { 201 background-color: #1c2b4a; 202 } 203 204 /* 205 #primary-menu.style-4 > ul > li:hover > a, 206 #primary-menu.style-4 > ul > li.current > a { border-color: #eee6db; } 207 */ 208 209 #primary-menu.style-6 > ul > li > a:after, 210 #primary-menu.style-6 > ul > li.current > a:after { 211 border-top: 2px solid #1c2b4a; 212 } 213 214 /* 215 #primary-menu.sub-title > ul > li:hover > a, 216 #primary-menu.sub-title > ul > li.current > a, 217 #primary-menu.sub-title > div > ul > li:hover > a, 218 #primary-menu.sub-title > div > ul > li.current > a { 219 background-color: #eee6db; 220 } 221 */ 222 223 /*#top-cart a:hover { color: #eee6db; }*/ 224 225 #top-cart > a > span { 226 background-color: #1c2b4a; 227 } 228 229 #top-cart .top-cart-content { 230 border-top: 2px solid #1c2b4a; 231 } 232 233 /*.top-cart-item-image:hover { border-color: #eee6db; }*/ 234 235 /*.top-cart-item-desc a:hover { color: #eee6db !important; }*/ 236 237 .top-cart-action span.top-checkout-price { 238 color: #1c2b4a; 239 } 240 241 #page-menu-wrap { background-color: #1c2b4a; } 242 243 #page-menu.dots-menu nav li.current a { background-color: #1c2b4a; } 244 245 #page-menu.dots-menu nav li .dots-menu-caption { 246 background-color: #1c2b4a; 247 } 248 249 #page-menu.dots-menu nav li .dots-menu-caption:after { 250 border-left: 6px solid #1c2b4a; 251 } 252 253 /*.breadcrumb a:hover { color: #eee6db; }*/ 254 255 /*#portfolio-filter li a:hover { color: #eee6db; }*/ 256 257 #portfolio-filter li.activeFilter a { 258 background-color: #1c2b4a; 259 } 260 261 /*#portfolio-shuffle:hover { 262 background-color: #eee6db; 263 }*/ 264 265 /*.portfolio-desc h3 a:hover { color: #eee6db; }*/ 266 267 /*.portfolio-overlay a:hover { 268 color: #eee6db; 269 }*/ 270 271 /*#portfolio-navigation a:hover { color: #eee6db; }*/ 272 273 /*.entry-title h2 a:hover { color: #eee6db; } 274 275 .entry-meta li a:hover { color: #eee6db; } 276 277 .entry-link:hover { 278 background-color: #eee6db; 279 } 280 281 .post-timeline .entry:hover .entry-timeline, 282 .post-timeline .entry:hover .timeline-divider { 283 border-color: #eee6db; 284 color: #eee6db; 285 } 286 287 .ipost .entry-title h3 a:hover, 288 .ipost .entry-title h4 a:hover { color: #eee6db; } 289 */ 290 291 .more-link { 292 display: inline-block; 293 border-bottom: 1px solid #1c2b4a; 294 } 295 296 /* 297 .spost .entry-title h4 a:hover, 298 .mpost .entry-title h4 a:hover { color: #eee6db; } 299 300 .comment-content .comment-author a:hover { color: #eee6db; } 301 302 .product-title h3 a:hover, 303 .single-product .product-title h2 a:hover { color: #eee6db; } 304 */ 305 306 .product-price ins { 307 color: #1c2b4a; 308 } 309 310 .sale-flash { 311 background-color: #1c2b4a; 312 } 313 314 .single-product .product-price { 315 color: #1c2b4a; 316 } 317 318 /*.cart-product-thumbnail img:hover { border-color: #eee6db; }*/ 319 320 /*.button { 321 background-color: #1c2b4a; 322 }*/ 323 324 /* button color overrides */ 325 326 .button-leaf { background-color: #eeaa7b;}.button-green { background-color: #ee8e4c;} 327 /*.button.button-dark:hover { background-color: #eee6db; }*/ 328 329 /* 330 .button.button-3d:hover { 331 background-color: #eee6db !important; 332 } 333 */ 334 335 .promo.promo-flat { background-color: #1c2b4a; } 336 337 .feature-box .fbox-icon i, 338 .feature-box .fbox-icon img { 339 background-color: #1c2b4a; 340 } 341 342 .feature-box.fbox-outline .fbox-icon { 343 border: 1px solid #1c2b4a; 344 } 345 346 .feature-box.fbox-border .fbox-icon { 347 border: 1px solid #1c2b4a; 348 } 349 350 .feature-box.fbox-border .fbox-icon i, 351 .feature-box.fbox-border .fbox-icon img { 352 color: #1c2b4a; 353 } 354 355 .feature-box.fbox-plain .fbox-icon i, 356 .feature-box.fbox-plain .fbox-icon img { 357 color: #1c2b4a; 358 } 359 360 .fbox-effect.fbox-dark .fbox-icon i:after { box-shadow: 0 0 0 2px #1c2b4a; } 361 362 /*.fbox-effect.fbox-dark .fbox-icon i:hover, 363 .fbox-effect.fbox-dark:hover .fbox-icon i { background-color: #eee6db; } 364 365 .fbox-border.fbox-effect.fbox-dark .fbox-icon i:hover, 366 .fbox-border.fbox-effect.fbox-dark:hover .fbox-icon i { box-shadow: 0 0 0 1px #eee6db; } 367 */ 368 369 .fbox-border.fbox-effect.fbox-dark .fbox-icon i:after { background-color: #1c2b4a; } 370 371 .process-steps li.active h5, 372 .process-steps li.ui-tabs-active h5 { 373 color: #1c2b4a; 374 } 375 376 .process-steps li.active a,
377 .process-steps li.ui-tabs-active a { 378 background-color: #1c2b4a !important; 379 } 380 381 .process-steps li.active a, 382 .process-steps li.ui-tabs-active a { 383 background-color: #1c2b4a !important; 384 border-color: #1c2b4a !important; 385 } 386 387 /* 388 .i-rounded:hover, 389 .i-circled:hover { 390 background-color: #eee6db; 391 } 392 */ 393 394 .tabs.tabs-tb ul.tab-nav li.ui-tabs-active a { 395 border-top: 2px solid #1c2b4a; 396 } 397 398 .tabs.tabs-bb ul.tab-nav li.ui-tabs-active a { 399 border-bottom: 2px solid #1c2b4a; 400 } 401 402 ul.tab-nav.tab-nav2 li.ui-state-active a { 403 background-color: #1c2b4a; 404 } 405 406 ul.tab-nav-lg li.ui-tabs-active a { 407 color: #1c2b4a; 408 } 409 410 /* 411 .sidenav > .ui-tabs-active > a, 412 .sidenav > .ui-tabs-active > a:hover { 413 background-color: #eee6db !important; 414 } 415 */ 416 417 /*.faqlist li a:hover { color: #eee6db !important; }*/ 418 419 .testimonial .flex-control-nav li a { 420 background-color: #1c2b4a; 421 } 422 423 .team-title span { 424 color: #1c2b4a; 425 } 426 427 .pricing-box.best-price .pricing-price { 428 color: #1c2b4a; 429 } 430 431 .skills li .progress { 432 background-color: #1c2b4a; 433 } 434 435 /* 436 .owl-theme .owl-controls .owl-nav [class*=owl-]:hover { 437 background-color: #eee6db !important; 438 }*/ 439 440 .owl-theme .owl-dots .owl-dot span { 441 background-color: #1c2b4a; 442 } 443 444 .title-block { 445 border-left: 7px solid #1c2b4a; 446 } 447 448 .title-block-right { 449 border-right: 7px solid #1c2b4a; 450 } 451 452 .heading-block.border-color:after { border-color: #1c2b4a; } 453 454 .fancy-title.title-border-color:before { 455 border-top: 1px solid #1c2b4a; 456 } 457 458 .fancy-title.title-bottom-border h1, 459 .fancy-title.title-bottom-border h2, 460 .fancy-title.title-bottom-border h3, 461 .fancy-title.title-bottom-border h4, 462 .fancy-title.title-bottom-border h5, 463 .fancy-title.title-bottom-border h6 { 464 border-bottom: 2px solid #1c2b4a; 465 } 466 467 /*#gotoTop:hover { background-color: #eee6db; }*/ 468 469 /*.tagcloud a:hover { 470 border-color: #eee6db !important; 471 color: #eee6db !important; 472 }*/ 473 474 .nav-tree li:hover > a, 475 .nav-tree li.current > a, 476 .nav-tree li.active > a { color: #1c2b4a !important; } 477 478 .btn-link, 479 .pagination > li > a, .pagination > li > span, 480 .pagination > li > a:hover, 481 .pagination > li > span:hover, 482 .pagination > li > a:focus, 483 .pagination > li > span:focus { color: #1c2b4a; } 484 485 .pagination > .active > a, 486 .pagination > .active > span, 487 .pagination > .active > a:hover, 488 .pagination > .active > span:hover, 489 .pagination > .active > a:focus, 490 .pagination > .active > span:focus { 491 background-color: #1c2b4a !important; 492 border-color: #1c2b4a !important; 493 } 494 495 .nav-pills > li.active > a, 496 .nav-pills > li.active > a:hover, 497 .nav-pills > li.active > a:focus { background-color: #1c2b4a; } 498 499 /* 500 .dark.overlay-menu #header-wrap:not(.not-dark) #primary-menu > ul > li:hover > a, 501 .dark.overlay-menu #header-wrap:not(.not-dark) #primary-menu > ul > li.current > a, 502 .overlay-menu #primary-menu.dark > ul > li:hover > a, 503 .overlay-menu #primary-menu.dark > ul > li.current > a { color: #eee6db !important; } 504 */ 505 506 .dark #primary-menu:not(.not-dark) ul ul, 507 .dark #primary-menu:not(.not-dark) ul li .mega-menu-content, 508 #primary-menu.dark ul ul, 509 #primary-menu.dark ul li .mega-menu-content { 510 border-top-color: #1c2b4a; 511 } 512 513 .dark #primary-menu:not(.not-dark) ul li .mega-menu-content.style-2, 514 #primary-menu.dark ul li .mega-menu-content.style-2 { 515 border-top-color: #1c2b4a; 516 } 517 518 .dark #top-cart .top-cart-content { 519 border-top-color: #1c2b4a; 520 } 521 522 /* 523 .dark .top-cart-item-image:hover { border-color: #eee6db; } 524 525 .dark .top-cart-item-desc a:hover { color: #eee6db !important; } 526 527 528 .dark .post-timeline .entry:hover .entry-timeline, 529 .dark .post-timeline .entry:hover .timeline-divider { 530 border-color: #eee6db; 531 color: #eee6db; 532 } 533 534 .dark .cart-product-thumbnail img:hover { border-color: #eee6db; } 535 536 .dark .button-dark:hover { background-color: #eee6db; } 537 */ 538 539 .dark .fbox-effect.fbox-dark .fbox-icon i:after { box-shadow: 0 0 0 2px #1c2b4a; } 540 541 /* 542 .dark .fbox-effect.fbox-dark .fbox-icon i:hover, 543 .dark .fbox-effect.fbox-dark:hover .fbox-icon i { background-color: #eee6db; } 544 545 .dark .fbox-border.fbox-effect.fbox-dark .fbox-icon i:hover, 546 .dark .fbox-border.fbox-effect.fbox-dark:hover .fbox-icon i { box-shadow: 0 0 0 1px #eee6db; } 547 */ 548 549 .dark .fbox-border.fbox-effect.fbox-dark .fbox-icon i:after { background-color: #1c2b4a; } 550 551 /* 552 .dark .i-rounded:hover, 553 .dark .i-circled:hover { 554 background-color: #eee6db; 555 } 556 */ 557 558 .dark ul.tab-nav.tab-nav2 li.ui-state-active a { background-color: #1c2b4a; } 559 560 /*
561 .dark .tagcloud a:hover { 562 background-color: #eee6db; 563 } 564 */ 565 566 /* 567 body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > ul > li:hover a, 568 body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > ul > li.current a, 569 body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > div > ul > li:hover a, 570 body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > div > ul > li.current a { color: #eee6db !important; } 571 */ 572 573 /* 574 #primary-menu ul li .mega-menu-content.style-2 > ul > li.mega-menu-title:hover > a { 575 color: #eee6db !important; 576 } 577 578 #primary-menu ul li .mega-menu-content.style-2 > ul > li.mega-menu-title > a:hover { color: #eee6db !important; } 579 */ 580 581 #page-menu nav { 582 background-color: #1c2b4a; 583 } 584 585 /* 586 #portfolio-filter li a:hover { color: #eee6db; } 587 */ 588 589 .iconlist-color li i { color: #1c2b4a; } 590 591 /* button helper */ 592.button.button-red:not(.button-border) { 593text-decoration:none; 594background-color:#000000; 595color:#ffffff; 596border-radius:1px; 597text-transform:uppercase; 598text-shadow:1px 1px 1px rgba(0,0,0,0.2); 599letter-spacing:2px; 600padding:0.6em 1.4em; 601transition: all 0.3s ease; 602position:relative;z-index:1; 603border-top: 0px solid rgb(255, 255, 255); 604border-right: 0px solid rgb(255, 255, 255); 605border-bottom: 0px solid rgb(255, 255, 255); 606border-left: 0px solid rgb(255, 255, 255); 607} 608 609.button.button-red:hover { 610color:#ffffff; 611} 612 613.button.button-leaf:not(.button-border) { 614text-decoration:none; 615background-color:#000000; 616color:#ffffff; 617border-radius:1px; 618text-transform:uppercase; 619text-shadow:1px 1px 1px rgba(0,0,0,0.2); 620letter-spacing:2px; 621padding:0.6em 1.4em; 622transition: all 0.3s ease; 623position:relative;z-index:1; 624border-top: 0px solid rgb(255, 255, 255); 625border-right: 0px solid rgb(255, 255, 255); 626border-bottom: 0px solid rgb(255, 255, 255); 627border-left: 0px solid rgb(255, 255, 255); 628} 629 630.button.button-leaf:hover { 631color:#ffffff; 632} 633 634.button.button-teal:not(.button-border) { 635text-decoration:none; 636background-color:#53777a; 637color:#ffffff; 638border-radius:1px; 639text-transform:uppercase; 640text-shadow:1px 1px 1px rgba(0,0,0,0.2); 641letter-spacing:2px; 642transition: all 0.3s ease; 643position:relative;z-index:1; 644border-top: 0px none rgb(255, 255, 255); 645border-right: 0px none rgb(255, 255, 255); 646border-bottom: 0px none rgb(255, 255, 255); 647border-left: 0px none rgb(255, 255, 255); 648} 649 650.button.button-teal:hover { 651color:#ffffff; 652} 653 654.button.button-yellow:not(.button-border) { 655text-decoration:none; 656background-color:#ecd078; 657color:#333333; 658border-radius:1px; 659text-transform:uppercase; 660text-shadow:none; 661letter-spacing:2px; 662transition: all 0.3s ease; 663position:relative;z-index:1; 664border-top: 0px none rgb(51, 51, 51); 665border-right: 0px none rgb(51, 51, 51); 666border-bottom: 0px none rgb(51, 51, 51); 667border-left: 0px none rgb(51, 51, 51); 668} 669 670.button.button-yellow:hover { 671color:#333333; 672} 673 674.button:not(.button-border) { 675text-decoration:none; 676background-color:#ffc0cb; 677color:#ffffff; 678border-radius:1px; 679text-transform:uppercase; 680text-shadow:1px 1px 1px rgba(0,0,0,0.2); 681letter-spacing:2px; 682transition: all 0.3s ease; 683position:relative;z-index:1; 684border-top: 0px solid rgb(255, 255, 255); 685border-right: 0px solid rgb(255, 255, 255); 686border-bottom: 0px solid rgb(255, 255, 255); 687border-left: 0px solid rgb(255, 255, 255); 688} 689 690.button.button-:hover { 691color:#ffffff; 692} 693 694.button.button-green:not(.button-border) { 695text-decoration:none; 696background-color:#ee8e4c; 697color:#ffffff; 698border-radius:1px; 699text-transform:uppercase; 700text-shadow:1px 1px 1px rgba(0,0,0,0.2); 701letter-spacing:2px; 702transition: all 0.3s ease; 703position:relative;z-index:1; 704border-top: 0px none rgb(255, 255, 255); 705border-right: 0px none rgb(255, 255, 255); 706border-bottom: 0px none rgb(255, 255, 255); 707border-left: 0px none rgb(255, 255, 255); 708} 709 710.button.button-green:hover { 711color:#ffffff; 712} 713 714.button.button-brown:not(.button-border) { 715text-decoration:none; 716background-color:#774f38; 717color:#ffffff; 718border-radius:1px; 719text-transform:uppercase; 720text-shadow:1px 1px 1px rgba(0,0,0,0.2); 721letter-spacing:2px; 722transition: all 0.3s ease; 723position:relative;z-index:1; 724border-top: 0px none rgb(255, 255, 255); 725border-right: 0px none rgb(255, 255, 255); 726border-bottom: 0px none rgb(255, 255, 255); 727border-left: 0px none rgb(255, 255, 255); 728} 729 730.button.button-brown:hover { 731color:#ffffff; 732} 733 734.button.button-aqua:not(.button-border) { 735text-decoration:none; 736background-color:#40c0cb; 737color:#ffffff; 738border-radius:1px; 739text-transform:uppercase; 740text-shadow:1px 1px 1px rgba(0,0,0,0.2); 741letter-spacing:2px; 742transition: all 0.3s ease; 743position:relative;z-index:1; 744border-top: 0px none rgb(255, 255, 255); 745border-right: 0px none rgb(255, 255, 255); 746border-bottom: 0px none rgb(255, 255, 255); 747border-left: 0px none rgb(255, 255, 255); 748} 749 750.button.button-aqua:hover { 751color:#ffffff; 752} 753 754.button.button-lime:not(.button-border) { 755text-decoration:none; 756background-color:#aee239; 757color:#333333; 758border-radius:1px; 759text-transform:uppercase; 760text-shadow:none; 761letter-spacing:2px; 762transition: all 0.3s ease; 763position:relative;z-index:1; 764border-top: 0px none rgb(51, 51, 51); 765border-right: 0px none rgb(51, 51, 51); 766border-bottom: 0px none rgb(51, 51, 51); 767border-left: 0px none rgb(51, 51, 51); 768} 769 770.button.button-lime:hover { 771color:#333333; 772} 773 774.button.button-purple:not(.button-border) { 775text-decoration:none; 776background-color:#5d4157; 777color:#ffffff; 778border-radius:1px; 779text-transform:uppercase; 780text-shadow:1px 1px 1px rgba(0,0,0,0.2); 781letter-spacing:2px; 782transition: all 0.3s ease; 783position:relative;z-index:1; 784border-top: 0px none rgb(255, 255, 255); 785border-right: 0px none rgb(255, 255, 255); 786border-bottom: 0px none rgb(255, 255, 255); 787border-left: 0px none rgb(255, 255, 255); 788} 789 790.button.button-purple:hover { 791color:#ffffff; 792} 793 794.button.button-pink:not(.button-border) { 795text-decoration:none; 796background-color:#1c2b4a; 797color:#ffffff; 798border-radius:1px; 799text-transform:uppercase; 800text-shadow:1px 1px 1px rgba(0,0,0,0.2); 801letter-spacing:2px; 802padding:0.6em 1.4em; 803transition: all 0.3s ease; 804position:relative;z-index:1; 805border-top: 0px solid rgb(255, 255, 255); 806border-right: 0px solid rgb(255, 255, 255); 807border-bottom: 0px solid rgb(255, 255, 255); 808border-left: 0px solid rgb(255, 255, 255); 809} 810 811.button.button-pink:hover { 812color:#ffffff; 813} 814 815.button.button-blue:not(.button-border) { 816text-decoration:none; 817background-color:#1265a8; 818color:#ffffff; 819border-radius:1px; 820text-transform:uppercase; 821text-shadow:1px 1px 1px rgba(0,0,0,0.2); 822letter-spacing:2px; 823transition: all 0.3s ease; 824position:relative;z-index:1; 825border-top: 0px none rgb(255, 255, 255); 826border-right: 0px none rgb(255, 255, 255); 827border-bottom: 0px none rgb(255, 255, 255); 828border-left: 0px none rgb(255, 255, 255); 829} 830 831.button.button-blue:hover { 832color:#ffffff; 833} 834 835.button.button-dirtygreen:not(.button-border) { 836text-decoration:none; 837background-color:#1693a5; 838color:#ffffff; 839border-radius:1px; 840text-transform:uppercase; 841text-shadow:1px 1px 1px rgba(0,0,0,0.2); 842letter-spacing:2px; 843transition: all 0.3s ease; 844position:relative;z-index:1; 845border-top: 0px none rgb(255, 255, 255); 846border-right: 0px none rgb(255, 255, 255); 847border-bottom: 0px none rgb(255, 255, 255); 848border-left: 0px none rgb(255, 255, 255); 849} 850 851.button.button-dirtygreen:hover { 852color:#ffffff; 853} 854 855.button.button-amber:not(.button-border) { 856text-decoration:none; 857background-color:#eb9c4d; 858color:#ffffff; 859border-radius:1px; 860text-transform:uppercase; 861text-shadow:1px 1px 1px rgba(0,0,0,0.2); 862letter-spacing:2px; 863transition: all 0.3s ease; 864position:relative;z-index:1; 865border-top: 0px none rgb(255, 255, 255); 866border-right: 0px none rgb(255, 255, 255); 867border-bottom: 0px none rgb(255, 255, 255); 868border-left: 0px none rgb(255, 255, 255); 869} 870 871.button.button-amber:hover { 872color:#ffffff; 873} 874 875.button.button-black:not(.button-border) { 876text-decoration:none; 877background-color:#111111; 878color:#ffffff; 879border-radius:1px; 880text-transform:uppercase; 881text-shadow:1px 1px 1px rgba(0,0,0,0.2); 882letter-spacing:2px; 883transition: all 0.3s ease; 884position:relative;z-index:1; 885border-top: 0px none rgb(255, 255, 255); 886border-right: 0px none rgb(255, 255, 255); 887border-bottom: 0px none rgb(255, 255, 255); 888border-left: 0px none rgb(255, 255, 255); 889} 890 891.button.button-black:hover { 892color:#ffffff; 893} 894 895.button.button-white:not(.button-border) { 896text-decoration:none; 897background-color:#f9f9f9; 898color:#333333; 899border-radius:1px; 900text-transform:uppercase; 901text-shadow:none; 902letter-spacing:2px; 903transition: all 0.3s ease; 904position:relative;z-index:1; 905border-top: 0px none rgb(51, 51, 51); 906border-right: 0px none rgb(51, 51, 51); 907border-bottom: 0px none rgb(51, 51, 51); 908border-left: 0px none rgb(51, 51, 51); 909} 910 911.button.button-white:hover { 912color:#333333; 913} 914 915 916 /* Additional overrides for default button styles */ 917 918 .button.button-rounded { 919 border-radius: 3px; 920 } 921 .button.button-3d { 922 border-bottom: 0; 923 border-radius: 3px; 924 } 925 .button { 926 border-radius: 3px; 927 } 928 /*.form-control {*/ 929 /* box-shadow: 0 1px 1px rgba(0, 0, 0, .075);*/ 930 /* border-radius: 1px;*/ 931 /*}
931*/ 932 .panel-default > .panel-heading { 933 border-bottom: 0; 934 padding-bottom: 10px; 935 } 936 .modal-content { 937 border-radius: 8px; 938 box-shadow: 2px 2px 3px rgba(0, 0, 0, .3); 939 } 940 941 .dropdown-menu, .popover { 942 border-radius: 8px; 943 -moz-border-radius: 8px; 944 -webkit-border-radius: 8px; 945 } 946 947 .tooltip, .popover, .team-title span { 948 font-family: Lato,sans-serif; 949 } 950 951 .ui-tooltip { 952 font-family: Lato,sans-serif !important; 953 } 954 955 .ui-widget-content:not(.tabs):not(.tab-container):not(.tab-content):not(.ui-tabs-panel):not(.ui-slider) { 956 background: #eeeeee !important; /*rgb(245,245,245);*/ 957 color: #333333; 958 border-radius: 2px; 959 } 960 .ui-widget-content.tabs { 961 background: #ffffff; 962 border: 0; 963 } 964 .tabs .tab-nav { 965 background: #ffffff; 966 border: 0; 967 } 968 .ui-tabs .ui-tabs-nav:not(.sidenav) .ui-tabs-anchor { 969 padding: 0 15px !important; 970 } 971 .ui-tooltip { 972 box-shadow: none !important; /*1px 1px 3px rgba(0, 0, 0, .1) !important;*/ 973 border: #eeeeee !important; 974 } 975 body .ui-tooltip { 976 border: 1px solid #eeeeee; 977 border-radius: 2px; 978 } 979 .tab-container { 980 padding: 0; 981 background: #ffffff; 982 font-size: 14px; 983 } 984 .popover { 985 box-shadow: 2px 2px 3px rgba(0, 0, 0, .3); 986 } 987 .dropdown-menu { 988 box-shadow: 2px 2px 3px rgba(0, 0, 0, .3); 989 } 990 .tooltip.top .tooltip-arrow { 991 border-top-color: #eeeeee; 992 } 993 .tooltip.left .tooltip-arrow { 994 border-left-color: #eeeeee; 995 } 996 .tooltip.right .tooltip-arrow { 997 border-right-color: #eeeeee; 998 } 999 .tooltip.bottom .tooltip-arrow { 1000 border-bottom-color: #eeeeee; 1001 } 1002 .tooltip-inner { 1003 background-color: #eeeeee; 1004 border-radius: 2px; 1005 color: #333333; 1006 font-size: 13px; 1007 } 1008 .tooltip.in { 1009 opacity: 1; 1010 } 1011 .alert { 1012 border-radius: 1px; 1013 } 1014 1015 1016</style> 1017<style> 1018 :root { 1019 --black-background-color: #000000; 1020 --darkest-background-color: #111111; 1021 --darker-background-color: #2A2A2A; 1022 --dark-background-color: #3A3A3A; 1023 --medium-dark-background-color: #555555; 1024 --dark-mode-default-text-color: #eeeeee; 1025 --dark-mode-muted-text-color: #999999; 1026 --dark-mode-default-contrast-text-color: #333333; 1027 --whitest-background-color: #ffffff; 1028 --not-as-white-background-color: #eeeeee; 1029 --medium-white-background-color: #dddddd; 1030 } 1031 body.dark-mode:not(.no-dark-mode) { 1032 background: var(--darkest-background-color) !important; 1033 color: var(--dark-mode-default-text-color) !important; 1034 } 1035 body.dark-mode:not(.no-dark-mode) { 1036 .popover { 1037 background: var(--medium-dark-background-color) !important; 1038 color: var(--dark-mode-default-text-color) !important; 1039 } 1040 1041 & :is(:not(.fr-view)) { 1042 #content, .content-wrap.app-wrapper, .white-background, 1043 div.back-office-menu-layout-grid-menu, div.sidebar, .grid-equal-row-2 > div, .grid-equal-row-3 > div, 1044 .dropzone, #primary-menu ul ul { 1045 background: var(--darkest-background-color) !important; 1046 color: var(--dark-mode-default-text-color) !important; 1047 } 1048 1049 #primary-menu ul ul { 1050 border-top: 1px solid; 1051 } 1052 1053 .dropdown-menu { 1054 background: var(--black-background-color); 1055 } 1056 1057 .panel, .modal-content, .panel-body, .ui-tabs-panel, .customModal, 1058 .back-office-top-header, #page-title, .list-item-row, .sidenav.ui-tabs-nav, .ui-widget-content:not(.tabs):not(.tab-container):not(.tab-content):not(.ui-tabs-panel):not(.ui-slider), 1059 .settings-description, .callout-wrapper, .callout-wrapper-external, 1060 .table-responsive, .table-hover, .nav-tabs, .settings-group, .pricing-box, 1061 .feature-box.fbox-bg.fbox-center, .well { 1062 background: var(--dark-background-color) !important;
1063 color: var(--dark-mode-default-text-color) !important; 1064 border-color: #444 !important; 1065 } 1066 1067 .modal-header, .modal-footer { 1068 border-color: #444 !important; 1069 } 1070 1071 .table > thead > tr > th, 1072 .table > tbody > tr > th, 1073 .table > tfoot > tr > th, 1074 .table > thead > tr > td, 1075 .table > tbody > tr > td, 1076 .table > tfoot > tr > td { 1077 border-top-color: #444 !important; 1078 } 1079 1080 .table > thead > tr > th { 1081 border-bottom-color: #444 !important; 1082 } 1083 1084 input, textarea, select, .select2-dropdown, .select2-selection { 1085 background: var(--darker-background-color) !important; 1086 color: var(--dark-mode-default-text-color) !important; 1087 caret-color: auto; 1088 } 1089 1090 #_elev_io input { 1091 background: #ffffff !important; 1092 color: #333333 !important; 1093 } 1094 #_elev_io input::placeholder { 1095 color: #555555 !important; 1096 } 1097 1098 .off-white-background, .panel-heading, .table-hover > tbody > tr:hover, 1099 .sidenav > li > a:hover, .pricing-title { 1100 background: var(--medium-dark-background-color) !important; 1101 color: var(--dark-mode-default-text-color) !important; 1102 } 1103 1104 .pricing-title { 1105 text-shadow: none; 1106 } 1107 1108 #wrapper, .back-office-menu-layout-grid-content, .page-end-spacer { 1109 background: var(--darkest-background-color); 1110 } 1111 1112 .always-white-background { 1113 background: var(--not-as-white-background-color) !important; 1114 } 1115 1116 .not-as-white-background-and-text { 1117 background: var(--darkest-background-color) !important; 1118 color: var(--dark-mode-default-text-color) !important; 1119 } 1120 1121 .dim-text, .text-muted { 1122 color: var(--dark-mode-default-text-color) !important; 1123 } 1124 1125 .dark-text-color, .select2-selection--multiple .select2-selection__choice, .c3-tooltip-container, 1126 .keen-c3-legend, .keen-c3-legend-label-overlay, label.contrast, div.style-msg, div.style-msg .sb-msg h4 { 1127 color: var(--dark-mode-default-contrast-text-color) !important; 1128 } 1129 1130 .always-white-background-invert, .charting-panel-body { 1131 background: var(--medium-white-background-color) !important; 1132 filter: invert(1); 1133 } 1134 1135 h1:not(.fr-view h1, .swal2-modal h1), h2:not(.fr-view h2, .swal2-modal h2), h3:not(.fr-view h3, .swal2-modal h3), h4:not(.fr-view h4, .swal2-modal h4), 1136 h5:not(.fr-view h5, .swal2-modal h5), h6:not(.fr-view h6, .swal2-modal h6), 1137 h4.sidebar-menu-header, 1138 .sidenav > li > a, 1139 label:not(.swal2-modal label), button.close, .button-border, .panel-activity, 1140 .select2-container--default .select2-selection--single .select2-selection__rendered { 1141 color: var(--dark-mode-default-text-color) !important; 1142 } 1143 1144 input::placeholder, textarea::placeholder, select::placeholder { 1145 color: var(--dark-mode-muted-text-color) !important; 1146 } 1147 button.close { 1148 opacity: 1; 1149 } 1150 1151 a:not(.button):not(.fr-view a), 1152 .widget_links li a, 1153 .site-name-text { 1154 color: #bd8862 !important; 1155 } 1156 1157 .button-white, .btn-default { 1158 background: var(--medium-dark-background-color) !important; 1159 color: var(--dark-mode-default-text-color) !important; 1160 border-color: #444 !important; 1161 } 1162 1163 i.light-mode { 1164 display:none; 1165 } 1166 1167 i.dark-mode { 1168 display: inline; 1169 } 1170 1171 #primary-menu ul li a { 1172 color: #bd8862 !important; 1173 } 1174 #primary-menu ul ul { 1175 box-shadow: 0 5px 12px 5px rgba( 255,255,255,0.2 ); 1176 } 1177 #primary-menu ul li ul li:hover a { 1178 color: #ffffff !important; 1179 background: var(--medium-dark-background-color) !important; 1180 } 1181 1182 #mobile-menu-header { 1183 background: var(--black-background-color); 1184 } 1185 .mobile-header { 1186 background-color: var(--medium-dark-background-color); 1187 } 1188 } 1189 } 1190 1191 .style-msg { 1192 border-radius: var(--app-border-radius-lg); 1193 } 1194 .style-msg .sb-msg, .style-msg2 .msgtitle, .style-msg2 .sb-msg { 1195 border-left: 0; 1196 } 1197 1198 /* Email Builder Preview Resets in Dark Mode */ 1199 body.dark-mode:not(.no-dark-mode) :is(
1200 .email-builder-preview-email-wrapper, 1201 .preview-email-body-preview, 1202 #email-builder-preview-area, 1203 #email-builder-confirmation-preview-area, 1204 #email-builder-cancellation-preview-area, 1205 #email-builder-reminder-preview-area, 1206 #email-builder-follow-up-preview-area 1207 ) { 1208 background-color: #ffffff !important; 1209 background: #ffffff !important; 1210 color: #333333 !important; 1211 } 1212 body.dark-mode:not(.no-dark-mode) :is( 1213 .email-builder-preview-email-wrapper, 1214 .preview-email-body-preview, 1215 #email-builder-preview-area, 1216 #email-builder-confirmation-preview-area, 1217 #email-builder-cancellation-preview-area, 1218 #email-builder-reminder-preview-area, 1219 #email-builder-follow-up-preview-area 1220 ) :is(h1, h2, h3, h4, h5, h6, p, span, div, label, td, th, table, a):not([style*="color"]) { 1221 color: #333333 !important; 1222 } 1223 body.dark-mode:not(.no-dark-mode) :is( 1224 .email-builder-preview-email-wrapper, 1225 .preview-email-body-preview, 1226 #email-builder-preview-area, 1227 #email-builder-confirmation-preview-area, 1228 #email-builder-cancellation-preview-area, 1229 #email-builder-reminder-preview-area, 1230 #email-builder-follow-up-preview-area 1231 ) :is(.white-background, .always-white-background) { 1232 background-color: #ffffff !important; 1233 background: #ffffff !important; 1234 } 1235 1236 i.dark-mode { 1237 display:none; 1238 } 1239 1240 .mobile-header { 1241 background-color: #f5f5f5; 1242 border-bottom: 1px solid #eeeeee; 1243 padding: 10px 5px 10px 30px; 1244 } 1245 1246 .white-background { 1247 background-color: var(--whitest-background-color); 1248 } 1249 1250 .not-as-white-background-and-text, .off-white-background { 1251 background: var(--not-as-white-background-color) !important; 1252 } 1253 1254 .always-white-background { 1255 background-color: var(--whitest-background-color) !important; 1256 } 1257 1258 .dim-text { 1259 color: var(--dark-mode-muted-text-color) !important; 1260 } 1261 1262 .page-end-spacer { 1263 height: 100px; 1264 background: var(--app-background-color); 1265 } 1266 1267 :root { 1268 --fancy-box-shadow: 0 0 0 1px rgba(64,87,109,0.04),0 2px 4px -1px rgba(64,87,109,0.3),inset 0 0 0 1px rgba(0,0,0,.1); 1269 --fancy-box-shadow-hover: 0 0 0 1px rgba(64,87,109,0.04),0 2px 4px -1px rgba(64,87,109,0.3); 1270 } 1271 1272 textarea { 1273 resize: vertical; 1274 } 1275 .large-font-text-input { 1276 font-size: 1.8rem; 1277 height: auto; 1278 line-height: normal !important; 1279 } 1280 .button { 1281 text-align:center; 1282 height: auto; 1283 padding: 11px 22px 9px 22px; 1284 white-space: normal; 1285 line-height: normal; 1286 } 1287 1288 .button.button-mini { 1289 text-align:center; 1290 padding: 4px 14px 2px 14px; 1291 height: auto; 1292 line-height: 19px; 1293 white-space: normal; 1294 } 1295 1296 .button.button-small { 1297 text-align:center; 1298 padding: 6px 17px 4px 17px; 1299 height: auto; 1300 line-height: 21px; 1301 white-space: normal; 1302 } 1303 1304 .button.button-large { 1305 text-align:center; 1306 padding: 9px 26px 7px 26px; 1307 height: auto; 1308 line-height: 27px; 1309 white-space: normal; 1310 } 1311 1312 .button.button-xlarge { 1313 text-align:center; 1314 padding: 11px 32px 8px 32px; 1315 height: auto; 1316 line-height: 30px; 1317 white-space: normal; 1318 } 1319 1320 .button.button-border { 1321 line-height: normal; 1322 } 1323 #gotoTop, .stretched #gotoTop { 1324 right: 60px; 1325 bottom: 13px; 1326 } 1327 @media (min-width: 992px) { 1328 #header.transparent-header.full-header.sticky-header:not(.dark) > #header-wrap > .container { 1329 background: rgba(255,255,255,0.8); 1330 } 1331 #header.transparent-header.full-header.sticky-header.dark > #header-wrap > .container { 1332 background: rgba(50,50,50,0.9); 1333 } 1334 #header.transparent-header.full-header.sticky-header > #header-wrap > .container > #primary-menu { 1335 height: auto; 1336 } 1337 #header.transparent-header.full-header.sticky-header > #header-wrap > .container > #primary-menu > ul { 1338 height: auto; 1339 }
1340 #header.transparent-header.full-header:not(.dark):not(.sticky-header) > #header-wrap > .container > #primary-menu > ul { 1341 height: auto; 1342 } 1343 #header.transparent-header.full-header:not(.dark):not(.sticky-header) > #header-wrap > .container > #primary-menu > ul.dropped { 1344 background: rgba(255,255,255,0.8); 1345 } 1346 #header.transparent-header.full-header.dark:not(.sticky-header) > #header-wrap > .container > #primary-menu > ul { 1347 height: auto; 1348 } 1349 #header.transparent-header.full-header.dark:not(.sticky-header) > #header-wrap > .container > #primary-menu > ul.dropped { 1350 background: rgba(50,50,50,0.9); 1351 } 1352 #header.transparent-header.full-header.sticky-header.dark > #header-wrap > .container > #primary-menu > ul { 1353 background: rgba(50,50,50,0.9); 1354 } 1355 .modal-xl { 1356 width: 98vw; 1357 } 1358 } 1359 @media (max-width: 991px) { 1360 /* this allows items in the mobile menu to wrap correctly */ 1361 body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > ul > li:hover a, body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > ul > li.current a, body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > div > ul > li:hover a, body:not(.dark) #header:not(.dark) #header-wrap:not(.dark) #primary-menu > div > ul > li.current a { 1362 height: fit-content !important; 1363 color: #e4ccc4 !important; 1364 } 1365 1366 /* Shrink padding in mobile dialog boxes */ 1367 .modal > .modal-dialog { 1368 margin: 0; 1369 } 1370 .modal > .modal-dialog > .modal-body { 1371 padding: 0; 1372 }
1373 .modal-dialog { 1374 width: 100dvw; 1375 } 1376 .modal-xl { 1377 max-width: 100%; 1378 width: 100%; 1379 } 1380 1381 #primary-menu ul li { 1382 padding: 13px 0; 1383 } 1384 1385 #primary-menu ul li a, #primary-menu.style-2 > div > ul > li > a { 1386 line-height: 1.5 !important; 1387 height: auto !important; 1388 } 1389 } 1390 1391 .voice-button-wrapper { 1392 display: grid; 1393 grid-template-columns: auto 1fr; 1394 grid-gap: 5px; 1395 align-items: center; 1396 } 1397 .voice-button-wrapper-align-top { 1398 align-items: start; 1399 } 1400 @media( max-width: 991px ) { 1401 .voice-button-wrapper:not(.voice-button-wrapper-left-align-button) { 1402 grid-template-columns: 1fr auto; 1403 } 1404 .voice-button-wrapper:not(.voice-button-wrapper-left-align-button) > *:first-child { 1405 order: 2; 1406 } 1407 } 1408 1409 /* Columnar grids */ 1410 1411 /* 2 across, 1 across on mobile, for a 2x3 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1412 1413 .grid-equal-row-2 { 1414 display: grid; 1415 grid-template-columns: repeat(2, minmax(0,1fr)); 1416 column-gap: 1rem; 1417 row-gap: 5px; 1418 margin-bottom: 40px; 1419 } 1420 @media (max-width:991px) { 1421 .grid-equal-row-2 { 1422 grid-template-columns: 1fr; 1423 } 1424 .grid-equal-heading-column-1 { grid-column: 1; grid-row: 1; } 1425 .grid-equal-body-column-1 { grid-column: 1; grid-row: 2; } 1426 .grid-equal-footer-column-1 { grid-column: 1; grid-row: 3; } 1427 1428 .grid-equal-heading-column-2 { grid-column: 1; grid-row: 4; margin-top: 30px; } 1429 .grid-equal-body-column-2 { grid-column: 1; grid-row: 5; } 1430 .grid-equal-footer-column-2 { grid-column: 1; grid-row: 6; } 1431 } 1432 1433 /* 3 across, 1 across on mobile, for a 3x3 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1434 1435 .grid-equal-row-3 { 1436 display: grid; 1437 grid-template-columns: repeat(3, minmax(0,1fr)); 1438 column-gap: 1rem; 1439 row-gap: 5px; 1440 margin-bottom: 40px; 1441 } 1442 @media (max-width:991px) { 1443 .grid-equal-row-3 { 1444 grid-template-columns: 1fr; 1445 } 1446 .grid-equal-heading-column-1 { grid-column: 1; grid-row: 1; } 1447 .grid-equal-body-column-1 { grid-column: 1; grid-row: 2; } 1448 .grid-equal-footer-column-1 { grid-column: 1; grid-row: 3; } 1449 1450 .grid-equal-heading-column-2 { grid-column: 1; grid-row: 4; margin-top: 30px; } 1451 .grid-equal-body-column-2 { grid-column: 1; grid-row: 5; } 1452 .grid-equal-footer-column-2 { grid-column: 1; grid-row: 6; } 1453 1454 .grid-equal-heading-column-3 { grid-column: 1; grid-row: 7; margin-top: 30px; } 1455 .grid-equal-body-column-3 { grid-column: 1; grid-row: 8; } 1456 .grid-equal-footer-column-3 { grid-column: 1; grid-row: 9; } 1457 } 1458 1459 /* Same as grid-equal-row-3 but without the header row. 1460 * 3 across, 1 across on mobile, for a 3x2 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1461 1462 .grid-equal-row-3-no-header { 1463 display: grid; 1464 grid-template-columns: repeat(3, 1fr); 1465 column-gap: 1rem; 1466 row-gap: 5px; 1467 margin-bottom: 40px; 1468 } 1469 @media (max-width:991px) { 1470 .grid-equal-row-3-no-header { 1471 grid-template-columns: 1fr; 1472 } 1473 .grid-equal-body-column-1 { grid-column: 1; grid-row: 1; } 1474 .grid-equal-footer-column-1 { grid-column: 1; grid-row: 2; } 1475 1476 .grid-equal-body-column-2 { grid-column: 1; grid-row: 3; margin-top: 30px; } 1477 .grid-equal-footer-column-2 { grid-column: 1; grid-row: 4; } 1478 1479 .grid-equal-body-column-3 { grid-column: 1; grid-row: 5; margin-top: 30px; } 1480 .grid-equal-footer-column-3 { grid-column: 1; grid-row: 6; } 1481 } 1482 1483 /* 2 across, 1 across on mobile, for a 2x2 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1484 1485 .grid-equal-row-2-centered { 1486 display: grid; 1487 grid-template-columns: repeat(6, 1fr); 1488 column-gap: 1rem; 1489 row-gap: 5px; 1490 margin-bottom: 40px; 1491 grid-template-areas: 1492 "a b b c c d" 1493 "a e e f f d"; 1494 } 1495 .grid-equal-row-2-centered .grid-equal-body-column-1 { grid-area: b; } 1496 .grid-equal-row-2-centered .grid-equal-footer-column-1 { grid-area: e; } 1497 1498 .grid-equal-row-2-centered .grid-equal-body-column-2 { grid-area: c; } 1499 .grid-equal-row-2-centered .grid-equal-footer-column-2 { grid-area: f; } 1500 1501 @media (max-width:991px) { 1502 .grid-equal-row-2-centered { 1503 grid-template-columns: 1fr; 1504 grid-template-areas: none; 1505 } 1506 .grid-equal-row-2-centered .grid-equal-body-column-1 { grid-column: 1; grid-row: 1; } 1507 .grid-equal-row-2-centered .grid-equal-footer-column-1 { grid-column: 1; grid-row: 2; } 1508 1509 .grid-equal-row-2-centered .grid-equal-body-column-2 { grid-column: 1; grid-row: 3; margin-top: 30px; } 1510 .grid-equal-row-2-centered .grid-equal-footer-column-2 { grid-column: 1; grid-row: 4; } 1511 } 1512 1513 /* 1 across desktop, 1 across on mobile, for a 1x2 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1514 1515 .grid-equal-row-1-centered { 1516 display: grid; 1517 grid-template-columns: repeat(6, 1fr); 1518 column-gap: 1rem; 1519 row-gap: 5px; 1520 margin-bottom: 40px; 1521 grid-template-areas: 1522 "a a b b d d" 1523 "a a e e d d"; 1524 } 1525 .grid-equal-row-1-centered .grid-equal-body-column-1 { grid-area: b; } 1526 .grid-equal-row-1-centered .grid-equal-footer-column-1 { grid-area: e; } 1527 1528 @media (max-width:991px) { 1529 .grid-equal-row-1-centered { 1530 grid-template-columns: 1fr; 1531 grid-template-areas: none; 1532 } 1533 .grid-equal-row-1-centered .grid-equal-body-column-1 { grid-column: 1; grid-row: 1; } 1534 .grid-equal-row-1-centered .grid-equal-footer-column-1 { grid-column: 1; grid-row: 2; } 1535 } 1536 1537 /* 4 across, 1 across on mobile, for a 4x1 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1538 1539 .grid-equal-row-4 { 1540 display: grid; 1541 grid-template-columns: repeat(4, 1fr); 1542 column-gap: 1rem; 1543 row-gap: 5px; 1544 margin-bottom: 40px; 1545 } 1546 @media (max-width:991px) { 1547 .grid-equal-row-4 { 1548 grid-template-columns: 1fr; 1549 } 1550 .grid-equal-heading-column-1 { grid-column: 1; grid-row: 1; } 1551 .grid-equal-body-column-1 { grid-column: 1; grid-row: 2; } 1552 .grid-equal-footer-column-1 { grid-column: 1; grid-row: 3; } 1553 1554 .grid-equal-heading-column-2 { grid-column: 1; grid-row: 4; margin-top: 30px; } 1555 .grid-equal-body-column-2 { grid-column: 1; grid-row: 5; } 1556 .grid-equal-footer-column-2 { grid-column: 1; grid-row: 6; } 1557 1558 .grid-equal-heading-column-3 { grid-column: 1; grid-row: 7; margin-top: 30px; } 1559 .grid-equal-body-column-3 { grid-column: 1; grid-row: 8; } 1560 .grid-equal-footer-column-3 { grid-column: 1; grid-row: 9; } 1561 1562 .grid-equal-heading-column-4 { grid-column: 1; grid-row: 10; margin-top: 30px; } 1563 .grid-equal-body-column-4 { grid-column: 1; grid-row: 11; } 1564 .grid-equal-footer-column-4 { grid-column: 1; grid-row: 12; } 1565 } 1566 1567 /* 5 across, 1 across on mobile, for a 5x1 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1568 1569 .grid-equal-row-5 { 1570 display: grid; 1571 grid-template-columns: repeat(5, 1fr); 1572 column-gap: 1rem; 1573 row-gap: 5px; 1574 margin-bottom: 40px; 1575 } 1576 @media (max-width:991px) { 1577 .grid-equal-row-5 { 1578 grid-template-columns: 1fr; 1579 } 1580 } 1581 1582 /* 6 across, 1 across on mobile, for a 6x1 grid that should be aligned horizontally & vertically on desktop but collapse into one column on mobile */ 1583 1584 .grid-equal-row-6 { 1585 display: grid; 1586 grid-template-columns: repeat(6, 1fr); 1587 column-gap: 1rem; 1588 row-gap: 5px; 1589 margin-bottom: 40px; 1590 } 1591 @media (max-width:991px) { 1592 .grid-equal-row-6 { 1593 grid-template-columns: 1fr; 1594 } 1595 } 1596 1597 /* 2 across, 1 across on mobile */ 1598 .grid-row-2 { 1599 row-gap: 1rem; 1600 margin: 0.5rem 0; 1601 } 1602 1603 @media (max-width: 991px) { 1604 .grid-row-2 { 1605 display: grid; grid-template-columns: repeat(1, 1fr); 1606 } 1607 } 1608 1609 @media (min-width: 992px) { 1610 .grid-row-2 { 1611 display: grid; grid-template-columns: repeat(2, 1fr); 1612 } 1613 } 1614 1615 /* 3 across, 1 across on mobile */ 1616 .grid-row-3 { 1617 row-gap: 1rem; 1618 margin: 0.5rem 0; 1619 } 1620 1621 @media (max-width: 991px) { 1622 .grid-row-3 { 1623 display: grid; grid-template-columns: repeat(1, 1fr); 1624 } 1625 } 1626 1627 @media (min-width: 992px) { 1628 .grid-row-3 { 1629 display: grid; grid-template-columns: repeat(3, 1fr); 1630 } 1631 } 1632 1633 /* 2 across, first 2/3, second 1/3, 1 across on mobile */ 1634 .grid-row-2-2-1 { 1635 row-gap: 1rem; 1636 margin: 0.5rem 0; 1637 } 1638 1639 @media (max-width: 991px) { 1640 .grid-row-2-2-1 { 1641 display: grid; grid-template-columns: repeat(1, 1fr); 1642 } 1643 } 1644 1645 @media (min-width: 992px) { 1646 .grid-row-2-2-1 { 1647 display: grid; 1648 grid-template-columns: 2fr 1fr; 1649 } 1650 } 1651 1652 /* 4 across, 2 across on mobile */ 1653 .grid-row-4 { 1654 row-gap: 1rem; 1655 margin: 0.5rem 0; 1656 } 1657 1658 @media (max-width: 991px) { 1659 .grid-row-4 { 1660 display: grid; grid-template-columns: repeat(2, 1fr); 1661 } 1662 } 1663 1664 @media (min-width: 992px) { 1665 .grid-row-4 { 1666 display: grid; grid-template-columns: repeat(4, 1fr); 1667 } 1668 } 1669 1670 /* 5 across, 1 across on mobile */ 1671 .grid-row-5 { 1672 row-gap: 1rem; 1673 margin: 0.5rem 0; 1674 } 1675 1676 @media (max-width: 991px) { 1677 .grid-row-5 { 1678 display: grid; grid-template-columns: repeat(1, 1fr); 1679 } 1680 } 1681 1682 @media (min-width: 992px) { 1683 .grid-row-5 { 1684 display: grid; grid-template-columns: repeat(5, 1fr); 1685 } 1686 } 1687 1688 /* 6 across, 2 across on mobile */ 1689 .grid-row-6 { 1690 row-gap: 1rem; 1691 margin: 0.5rem 0; 1692 } 1693 1694 @media (max-width: 991px) { 1695 .grid-row-6 { 1696 display: grid; grid-template-columns: repeat(2, 1fr); 1697 } 1698 } 1699 1700 @media (min-width: 992px) { 1701 .grid-row-6 { 1702 display: grid; grid-template-columns: repeat(6, 1fr); 1703 } 1704 } 1705 1706 /* 8 across, 2 across on mobile */ 1707 .grid-row-8 { 1708 row-gap: 1rem; 1709 margin: 0.5rem 0; 1710 } 1711 1712 @media (max-width: 991px) { 1713 .grid-row-8 { 1714 display: grid; grid-template-columns: repeat(2, 1fr); 1715 } 1716 } 1717 1718 @media (min-width: 992px) { 1719 .grid-row-8 { 1720 display: grid; grid-template-columns: repeat(8, 1fr); 1721 } 1722 } 1723 1724 /* Grid with variable number of columns based on screen width - for panels with smaller content. Starts with 2 columns on mobile. */ 1725 .grid-list-variable-small {
1726 display: grid; 1727 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 1728 column-gap: 3rem; 1729 row-gap: 3rem; 1730 } 1731 @media (min-width:992px) { 1732 .grid-list-variable-small { 1733 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 1734 } 1735 } 1736 @media (min-width:1400px) { 1737 .grid-list-variable-small { 1738 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 1739 } 1740 } 1741 @media (min-width:1800px) { 1742 .grid-list-variable-small { 1743 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 1744 } 1745 } 1746 @media (min-width:2200px) { 1747 .grid-list-variable-small { 1748 grid-template-columns: repeat( 6, minmax(0, 1fr) ); 1749 } 1750 } 1751 @media (min-width:2600px) { 1752 .grid-list-variable-small { 1753 grid-template-columns: repeat( 7, minmax(0, 1fr) ); 1754 } 1755 } 1756 @media (min-width:3000px) { 1757 .grid-list-variable-small { 1758 grid-template-columns: repeat( 8, minmax(0, 1fr) ); 1759 } 1760 } 1761 1762 /* Grid with variable number of columns based on screen width - for panels with smaller content. Starts with 1 column on mobile. */ 1763 .grid-list-variable-small-1-column { 1764 display: grid; 1765 grid-template-columns: repeat( 1, minmax(0, 1fr) ); 1766 column-gap: 3rem; 1767 row-gap: 3rem; 1768 } 1769 @media (min-width:992px) { 1770 .grid-list-variable-small-1-column { 1771 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 1772 } 1773 } 1774 @media (min-width:1200px) { 1775 .grid-list-variable-small-1-column { 1776 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 1777 } 1778 } 1779 @media (min-width:1600px) { 1780 .grid-list-variable-small-1-column { 1781 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 1782 } 1783 } 1784 @media (min-width:2000px) { 1785 .grid-list-variable-small-1-column { 1786 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 1787 } 1788 } 1789 @media (min-width:2400px) { 1790 .grid-list-variable-small-1-column { 1791 grid-template-columns: repeat( 6, minmax(0, 1fr) ); 1792 } 1793 } 1794 @media (min-width:2800px) { 1795 .grid-list-variable-small-1-column { 1796 grid-template-columns: repeat( 7, minmax(0, 1fr) ); 1797 } 1798 } 1799 1800 /* Grid with variable number of columns based on screen width - for panels with smaller content. Starts with 1 column on mobile. */ 1801 .grid-list-variable { 1802 display: grid; 1803 grid-template-columns: repeat( 1, minmax(0, 1fr) ); 1804 column-gap: 3rem; 1805 row-gap: 3rem; 1806 } 1807 @media (min-width:992px) { 1808 .grid-list-variable { 1809 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 1810 } 1811 } 1812 @media (min-width:1400px) { 1813 .grid-list-variable { 1814 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 1815 } 1816 } 1817 @media (min-width:1800px) { 1818 .grid-list-variable { 1819 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 1820 } 1821 } 1822 @media (min-width:2200px) { 1823 .grid-list-variable { 1824 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 1825 } 1826 } 1827 @media (min-width:2600px) { 1828 .grid-list-variable { 1829 grid-template-columns: repeat( 6, minmax(0, 1fr) ); 1830 } 1831 } 1832 @media (min-width:3000px) { 1833 .grid-list-variable { 1834 grid-template-columns: repeat( 8, minmax(0, 1fr) ); 1835 } 1836 } 1837 1838 /* Grid with variable number of columns based on screen width - for panels with larger content. Starts with 1 column on mobile. */ 1839 .grid-list-variable-large { 1840 display: grid; 1841 grid-template-columns: repeat( 1, minmax(0, 1fr) ); 1842 column-gap: 3rem; 1843 row-gap: 3rem; 1844 } 1845 @media (min-width:1300px) { 1846 .grid-list-variable-large { 1847 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 1848 } 1849 } 1850 @media (min-width:1800px) { 1851 .grid-list-variable-large { 1852 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 1853 } 1854 } 1855 @media (min-width:2200px) { 1856 .grid-list-variable-large { 1857 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 1858 } 1859 } 1860 @media (min-width:2600px) { 1861 .grid-list-variable-large { 1862 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 1863 } 1864 } 1865 @media (min-width:3000px) { 1866 .grid-list-variable-large { 1867 grid-template-columns: repeat( 6, minmax(0, 1fr) ); 1868 } 1869 } 1870 1871 1872 /* Override for section class styles for pages built with the page editor */ 1873 section .content-wrap .section { 1874 background: transparent none; 1875 } 1876 1877 /* Enlarge the default width of the container class to allow for use of more space on mobile */ 1878 @media (max-width: 767px) { 1879 #header.full-header .container, .container, .container-fullwidth { 1880 width: calc( 100vw - 20px ) !important; 1881 } 1882 } 1883 1884 .flex-center { 1885 display: flex; 1886 justify-content: center; 1887 align-items: center; 1888 } 1889 @media (max-width: 991px) { 1890 .flex-center { 1891 flex-direction: column; 1892 } 1893 } 1894 1895 1896 :not(.fr-view) table { margin-bottom: 0; } 1897 div:not(.fr-wrapper) > .fr-view table td, div:not(.fr-wrapper) > .fr-view table th { border: 0; } 1898 1899 /* Rotate any element */ 1900 .rotate { 1901 animation: rotate 1.5s linear infinite; 1902 }
1903 @keyframes rotate { 1904 to { 1905 transform: rotate(360deg); 1906 } 1907 } 1908 1909 /* A tilt-shake animation used for missing required fields. See also the highlightRequiredField() function at the bottom of this file. */ 1910 @keyframes tilt-shaking { 1911 0% { transform: rotate(0deg); } 1912 25% { transform: rotate(5deg); } 1913 50% { transform: rotate(0deg); } 1914 75% { transform: rotate(-5deg); } 1915 100% { transform: rotate(0deg); } 1916 } 1917 .tilt-shaking { 1918 scale: 1.1; 1919 animation: tilt-shaking 0.25s infinite; 1920 } 1921 1922 1923 /* Hide on website (not in back office) */ 1924 .hide-on-website { display: none; } 1925 1926 1927 .aw-carousel { 1928 box-sizing: border-box; 1929 height: 100%; 1930 overflow: hidden; 1931 align-items: center; 1932 justify-content: center; 1933 text-align: center; 1934 width: 100%; 1935 1936 & > div { 1937 display: flex; 1938 1939 overflow-x: auto; 1940 scroll-snap-type: x mandatory; 1941 1942 scroll-behavior: smooth; 1943 -webkit-overflow-scrolling: touch; 1944 } 1945 1946 & > .aw-slides { 1947 margin-bottom: 5px; 1948 height: 300px; 1949 -ms-overflow-style: none; scrollbar-width: none; } 1950 1951 & > .aw-slides::-webkit-scrollbar {
1952 display: none; 1953 } 1954 1955 & > .aw-slides > div { 1956 scroll-snap-align: start; 1957 flex-shrink: 0; 1958 width: 100%; 1959 margin-right: 50px; 1960 position: relative; 1961 overflow: hidden; 1962 1963 display: flex; 1964 justify-content: center; 1965 align-items: center; 1966 flex-direction: column; 1967 } 1968 1969 & > .aw-slides div.aw-image-only a, & > .aw-slides div.aw-image-only img { 1970 object-fit: contain; 1971 width: 100% !important; 1972 height: 100%; 1973 } 1974 &.aw-carousel-cover-slide-image > .aw-slides div.aw-image-only img { 1975 object-fit: cover; 1976 } 1977 1978 & > .aw-slides div .fr-video { 1979 width: 500px; 1980 } 1981 @media( max-width: 991px ) { 1982 & > .aw-slides div .fr-video { 1983 width: 90vw; 1984 } 1985 } 1986 1987 & > a { 1988 display: inline-flex; 1989 width: 1.6rem; 1990 height: 1.6rem; 1991 background: #333333; 1992 text-decoration: none; 1993 align-items: center; 1994 justify-content: center; 1995 border-radius: 50%; 1996 border: 1px solid #ffffff; 1997 margin: 0 0 0.5rem 0; 1998 position: relative; 1999 } 2000 2001 & > a:hover { 2002 filter: brightness( 0.9 ); 2003 } 2004 2005 & > a:active { 2006 top: 1px; 2007 } 2008 2009 & > a:focus { 2010 background: #000; 2011 } 2012 2013 & > a + a { 2014 margin-left: 5px; 2015 } 2016 2017 &.aw-carousel-no-dots > a { 2018 display: none; 2019 } 2020 } 2021 2022 .aw-countdown { 2023 display: flex; 2024 justify-content: center; 2025 margin: 1em 0; 2026 @media( max-width: 767px ) { 2027 & { 2028 font-size: 3vw !important; 2029 } 2030 } 2031 2032 & > div { 2033 display: flex; 2034 padding: 0.6em 1.8em 1.6em 1.6em; 2035 cursor: default; 2036 } 2037 2038 & > div > div { 2039 display: flex; 2040 flex-direction: column; 2041 align-items: center; 2042 margin: 0 0.8em; 2043 } 2044 2045 & > div > div > span:first-child { 2046 font-size: 4em; 2047 margin-top: 0.15em; 2048 text-align: center; 2049 } 2050 2051 & > div > div > span:last-child { 2052 font-size: 1.2em; 2053 } 2054 } 2055 2056 </style> 2057<style> 2058@keyframes awTickerScroll { 2059 0% { transform: translate3d(0, 0, 0); } 2060 100% { transform: translate3d(-50%, 0, 0); } 2061} 2062.aw-ticker-wrap { 2063 overflow: hidden; 2064 background-color: var(--tw-bg, transparent); 2065} 2066.aw-ticker { 2067 display: flex; 2068 align-items: center; 2069 white-space: nowrap; 2070 will-change: transform; 2071 animation: awTickerScroll 22s linear infinite; 2072 width: max-content; 2073 flex-shrink: 0; 2074 padding: var(--tw-py, 20px) 0; 2075} 2076.aw-ticker-wrap:not(.no-pause-hover) .aw-ticker:hover { 2077 animation-play-state: paused; 2078} 2079.aw-ticker-item { 2080 display: inline-flex; 2081 align-items: center; 2082 flex: 0 0 auto; 2083 background: var(--tb-bg, #ffffff); 2084 color: var(--tb-color, #3f4242); 2085 padding: var(--tb-py, 12px) var(--tb-px, 18px); 2086 border-radius: var(--tb-r, 30px); 2087 font-size: var(--tb-fs, 17px); 2088 font-family: var(--tb-font, inherit); 2089 font-weight: var(--tb-fw, normal); 2090 font-style: var(--tb-fstyle, normal); 2091 line-height: 1.2; 2092 box-shadow: var(--tb-shadow, none); 2093 border: var(--tb-border, none); 2094 margin: 0 calc(var(--tb-gap, 4px) * 2) 0 0; 2095} 2096.aw-ticker-item a { 2097 color: inherit; 2098 text-decoration: none; 2099} 2100.aw-ticker-item a:hover { 2101 text-decoration: underline; 2102} 2103.aw-ticker-sep { 2104 display: inline-flex; 2105 align-items: center; 2106 justify-content: center; 2107 flex: 0 0 auto; 2108 height: var(--ts-size, 10px); 2109 margin: 0 calc(var(--tb-gap, 4px) * 2) 0 0; 2110} 2111.aw-ticker-sep::before { 2112 content: ""; 2113 display: block; 2114 border-radius: 999px; 2115 flex: 0 0 auto; 2116 width: var(--ts-size, 10px); 2117 height: var(--ts-size, 10px); 2118 background: var(--ts-color, #47d4e0); 2119} 2120@media (prefers-reduced-motion: reduce) { 2121 .aw-ticker { animation: none; } 2122} 2123@media (max-width: 480px) { 2124 .aw-ticker-item { font-size: 85%; } 2125} 2126</style> 2127
2128<script> 2129 $(function() { 2130 2131 (function() { 2132 var tickers = document.querySelectorAll('.aw-ticker-wrap'); 2133 if (!tickers.length) return; 2134 2135 if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; 2136 2137 tickers.forEach(function(wrap) { 2138 var raw = wrap.getAttribute('data-ticker'); 2139 if (!raw) { return; } 2140 try { 2141 var cfg = JSON.parse(raw); 2142 var duration = cfg.speed || 22; 2143 var dir = (cfg.direction === 'right') ? 1 : -1; 2144 var track = wrap.querySelector('.aw-ticker'); 2145 if (track) { 2146 track.style.animation = 'none'; 2147 track.style.webkitAnimation = 'none'; 2148 2149 function startAnimation() { 2150 var halfWidth = track.scrollWidth / 2; 2151 var pos = 0; 2152 var last = null; 2153 var isPaused = false; 2154 var speedPxPerSec = halfWidth / duration; 2155 2156 if (window.ResizeObserver) { 2157 var observer = new ResizeObserver(function() { 2158 halfWidth = track.scrollWidth / 2; 2159 speedPxPerSec = halfWidth / duration; 2160 }); 2161 observer.observe(track); 2162 } 2163 2164 if (cfg.pause_on_hover !== false) { 2165 wrap.addEventListener('mouseenter', function() { isPaused = true; }); 2166 wrap.addEventListener('mouseleave', function() { isPaused = false; }); 2167 } 2168 2169 function step(ts) { 2170 if (last === null) last = ts; 2171 var delta = (ts - last) / 1000; 2172 last = ts; 2173 2174 if (halfWidth > 0 && !isPaused) { 2175 pos += dir * speedPxPerSec * delta; 2176 if (dir === -1 && pos <= -halfWidth) { 2177 pos += halfWidth; 2178 } else if (dir === 1 && pos >= 0) { 2179 pos -= halfWidth; 2180 } 2181 track.style.transform = 'translate3d(' + pos + 'px, 0, 0)'; 2182 track.style.webkitTransform = 'translate3d(' + pos + 'px, 0, 0)'; 2183 } 2184 requestAnimationFrame(step); 2185 } 2186 requestAnimationFrame(step); 2187 } 2188 2189 function init() { 2190 var containerW = wrap.offsetWidth; 2191 if (containerW === 0) { 2192 setTimeout(init, 100); 2193 return; 2194 } 2195 2196 var safetyLimit = 20; 2197 while (track.scrollWidth / 2 < containerW && safetyLimit-- > 0) { 2198 var existing = track.innerHTML; 2199 track.innerHTML = existing + existing; 2200 } 2201 2202 startAnimation(); 2203 } 2204 init(); 2205 } 2206 if (cfg.pause_on_hover === false) wrap.classList.add('no-pause-hover'); 2207 } catch(e) {} 2208 }); 2209 })(); 2210 let AwCarouselIntervals = {}, AwCarouselAutoAdvanceTime = 5000; 2211 2212 // Pause carousel auto-advance when user clicks into a video iframe (Bunny.net, YouTube, Vimeo) 2213 // When the user clicks an iframe, the main window loses focus. We detect that and check 2214 // if the now-focused element is an iframe inside an aw-carousel. 2215 let awCarouselFocusInterval = null; 2216 $(window).on('blur', function() { 2217 setTimeout(function() { 2218 let el = document.activeElement; 2219 if (el && el.tagName === 'IFRAME') { 2220 let carousel = $(el).closest('.aw-carousel'); 2221 if (carousel.length) { 2222 carousel.addClass('aw-video-playing'); 2223 } 2224 } 2225 }, 0); 2226 }); 2227 $(window).on('focus', function() { 2228 $('.aw-carousel.aw-video-playing').removeClass('aw-video-playing'); 2229 }); 2230 function createRandomString( strLength = 20 ) 2231 { 2232 let result = []; 2233 let charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 2234 2235 while (strLength--) 2236 result.push(charSet.charAt(Math.floor(Math.random() * charSet.length))); 2237 2238 return result.join(''); 2239 } 2240 function AwCarouselGoToNextSlide( carousel ) 2241 { 2242 if (carousel.find('video').toArray().some(v => !v.paused) || carousel.hasClass('aw-video-playing')) return; 2243 let slides_container = carousel.find('.aw-slides'); 2244 let slides = slides_container.children(); 2245 let carousel_bounding_rect = carousel[0].getBoundingClientRect(); 2246 2247 for( let i = 0; i < slides.length; i++ ) { 2248 let slide_bounding_rect = slides[i].getBoundingClientRect(); 2249 if( Math.floor(slide_bounding_rect.x) === Math.floor(carousel_bounding_rect.x) ) { 2250 let slide_width = slide_bounding_rect.width; 2251 let next_slide_index = i + 1; 2252 if( next_slide_index >= slides.length ) 2253 next_slide_index = 0; 2254 if( next_slide_index === 0 ) 2255 slides_container[0].scrollLeft = 0; 2256 else 2257 slides_container[0].scrollLeft += Math.ceil(slide_width); 2258 break; 2259 } 2260 } 2261 } 2262 2263 function GetCarouselSlideAdvanceTime( carousel ) 2264 { 2265 let slide_advance_time = carousel.attr('data-auto-advance-seconds'); 2266 if( slide_advance_time == '' || typeof slide_advance_time === 'undefined' ) 2267 slide_advance_time = AwCarouselAutoAdvanceTime; 2268 else 2269 slide_advance_time = parseInt( slide_advance_time, 10 ) * 1000; 2270 return slide_advance_time; 2271 } 2272 2273 $('.aw-carousel').each( function() { 2274 let carousel = $(this); 2275 let slides = carousel.find('.aw-slides'); 2276 let slide_advance_time = GetCarouselSlideAdvanceTime( carousel ); 2277 2278 let carousel_id = createRandomString(); 2279 while( $('#' + carousel_id + '-slide-1' ).length > 0 ) 2280 carousel_id = createRandomString(); 2281 2282 let carousel_dot_color = ''; 2283 let first_dot = carousel[0].querySelector('& > a'); 2284 if( first_dot !== null ) 2285 carousel_dot_color = first_dot.style.backgroundColor; 2286 carousel.find('> a').remove(); 2287 2288 slides.attr('data-carousel-id', carousel_id ); 2289 2290 slides.children().each( function( index ) { 2291 let slide_id = carousel_id + '-slide-' + (index + 1); 2292 $(this).attr('id', slide_id ); 2293 let new_link = document.createElement('a'); 2294 new_link.setAttribute('href', '#' + slide_id );
2295 new_link.setAttribute('data-slide-index', index + 1 ); 2296 if( carousel_dot_color !== '' ) 2297 new_link.setAttribute('style','background-color: ' + carousel_dot_color + ';'); 2298 new_link.innerHTML = ' '; 2299 carousel.append( new_link ); 2300 }); 2301 2302 2303 if( carousel.hasClass('aw-automatic-carousel') ) 2304 AwCarouselIntervals[ carousel_id ] = setInterval( () => AwCarouselGoToNextSlide( carousel ), slide_advance_time ); 2305 }); 2306 2307 $('.aw-carousel > a').click( function( evt ) { 2308 let slides_container = $(this).parent().find('.aw-slides'); 2309 let slide_width = slides_container.children()[0].getBoundingClientRect().width; 2310 let slide_index = parseInt( $(this).attr('data-slide-index'), 10 ); 2311 slides_container[0].scrollLeft = (slide_width * (slide_index - 1)); 2312 2313 // get the entire carousel 2314 let carousel = $(this).parent(); 2315 let slide_advance_time = GetCarouselSlideAdvanceTime( carousel ); 2316 2317 2318 let carousel_id = slides_container.attr('data-carousel-id'); 2319 if( AwCarouselIntervals[ carousel_id ] ) { 2320 clearInterval( AwCarouselIntervals[ carousel_id ] ); 2321 AwCarouselIntervals[ carousel_id ] = setInterval( () => AwCarouselGoToNextSlide( $(this).parent().parent() ), slide_advance_time ); 2322 } 2323 evt.preventDefault(); 2324 evt.stopPropagation(); 2325 return false; 2326 }); 2327 }); 2328</script>
2328 2329
2330<script> 2331 let countdownTimers = []; 2332 function StartCountdownTimers( countdown_selector = '.aw-countdown', options = {} ) 2333 { 2334 function countdown( element, expiration_url ) { 2335 let end_date_time = element.getAttribute('data-end-datetime'); 2336 let timer_length = element.getAttribute('data-end-minutes'); 2337 2338 if( typeof end_date_time !== 'string' && typeof timer_length !== 'string' ) 2339 return false; 2340 2341 if( typeof allowUndo === 'boolean' ) 2342 allowUndo = false; 2343 2344 let targetDate; 2345 2346 if( typeof end_date_time === 'string' ) 2347 targetDate = new Date( end_date_time ); 2348 else { 2349 let end_minutes = parseInt(timer_length, 10); 2350 if( isNaN( end_minutes ) ) 2351 return false; 2352 let current_date = new Date(); 2353 targetDate = new Date(); 2354 targetDate.setTime( current_date.getTime() + (end_minutes * 60 * 1000) ); 2355 if( options && options['remove-end-minutes'] === true ) 2356 element.removeAttribute('data-end-minutes'); 2357 element.setAttribute('data-end-datetime', targetDate.toISOString()); 2358 } 2359 const now = new Date(); 2360 2361 const difference = targetDate - now; 2362 2363 let days = Math.max(Math.floor(difference / (1000 * 60 * 60 * 24)), 0); 2364 let hours = Math.max(Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)), 0); 2365 let minutes = Math.max(Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)), 0); 2366 let seconds = Math.max(Math.floor((difference % (1000 * 60)) / 1000), 0); 2367 2368 let days_text = days.toString().padStart(2, '0'); 2369 let hours_text = hours.toString().padStart(2, '0'); 2370 let minutes_text = minutes.toString().padStart(2, '0'); 2371 let seconds_text = seconds.toString().padStart(2, '0'); 2372 2373 element.querySelector('& > div > div:first-child > span:first-child').textContent = days_text; 2374 element.querySelector('& > div > div:nth-child(2) > span:first-child').textContent = hours_text; 2375 element.querySelector('& > div > div:nth-child(3) > span:first-child').textContent = minutes_text; 2376 element.querySelector('& > div > div:nth-child(4) > span:first-child').textContent = seconds_text; 2377 2378 if( typeof allowUndo === 'boolean' ) 2379 allowUndo = false; 2380 2381 if( expiration_url !== null && expiration_url !== '' && days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0 ) 2382 location.href = expiration_url; 2383 } 2384 function createCountdownHtml( element, color, background_color ) 2385 { 2386 if( element.innerHTML !== '' && element.querySelectorAll('div > div > span').length === 8 ) { 2387 if( color !== null ) 2388 element.style.color = color; 2389 if( background_color !== null ) 2390 element.style.backgroundColor = background_color; 2391 element.querySelectorAll('div > div > span:first-child').forEach( element => { 2392 element.innerHTML = '00'; 2393 }); 2394 } 2395 else { 2396 element.innerHTML = '<div style="' + 2397 (color !== null ? 'color:' + escapeHtml(color) + ';' : '') + 2398 (background_color !== null ? 'background-color:' + escapeHtml(background_color) + ';' : '') + '">' + 2399 '<div><span>00</span><span>Days</span></div>' + 2400 '<div><span>00</span><span>Hours</span></div>' + 2401 '<div><span>00</span><span>Minutes</span></div>' + 2402 '<div><span>00</span><span>Seconds</span></div>' + 2403 '</div>'; 2404 } 2405 } 2406 2407 let default_countdown_selector = '.aw-countdown'; 2408 let has_custom_selector = (typeof countdown_selector === 'string' && countdown_selector !== default_countdown_selector ); 2409 if( !has_custom_selector ) 2410 countdown_selector = default_countdown_selector; 2411 2412 for( let i = countdownTimers.length - 1; i >= 0; i-- ) { 2413 if (!has_custom_selector || (countdown_selector.charAt(0) === '#' && countdownTimers[i].id === countdown_selector.substring(1))) { 2414 clearInterval(countdownTimers[i].interval); 2415 countdownTimers.splice(i, 1); 2416 } 2417 } 2418 2419 let countdown_elements = document.querySelectorAll( countdown_selector ); 2420 2421 for( let i = 0; i < countdown_elements.length; i++ ) { 2422 let element = countdown_elements[i]; 2423 let end_date_time = element.getAttribute('data-end-datetime'); 2424 let timer_length = element.getAttribute('data-end-minutes'); 2425 let expiration_url = element.getAttribute('data-expiration-url'); 2426 let color = element.getAttribute('data-color'); 2427 let background_color = element.getAttribute('data-background-color'); 2428 if( typeof end_date_time === 'string' || typeof timer_length === 'string' ) { 2429 createCountdownHtml( element, color, background_color ); 2430 2431 if( options && options.remember === true && typeof element.getAttribute('data-end-minutes') === 'string' && element.getAttribute('data-end-minutes') !== '' ) { 2432 let existing_expires = Cookies.get('aw-countdown-' + i); 2433 if( typeof existing_expires === 'undefined' ) { 2434 let expiration_minutes = element.getAttribute('data-end-minutes'); 2435 if (expiration_minutes) { 2436 expiration_minutes = parseInt(expiration_minutes, 10); 2437 2438 if( typeof end_date_time !== 'string' ) { 2439 let current_date = new Date(); 2440 let targetDate = new Date(); 2441 targetDate.setTime( current_date.getTime() + (expiration_minutes * 60 * 1000) ); 2442 end_date_time = targetDate.toISOString(); 2443 } 2444 let cookie_expires_date = new Date(new Date().getTime() + ((expiration_minutes + 1440) * 60 * 1000)); 2445 Cookies.set('aw-countdown-' + i, end_date_time, { 2446 path: window.location.pathname, 2447 expires: cookie_expires_date 2448 }); 2449 } 2450 } 2451 else { 2452 element.setAttribute('data-end-datetime', existing_expires); 2453 } 2454 } 2455 2456 countdown( element, expiration_url );
2457 countdownTimers.push( { id: element.id, interval: setInterval(() => countdown( element, expiration_url ), 1000) } ); 2458 } 2459 } 2460 } 2461 2462 document.addEventListener('DOMContentLoaded', function() { 2463 StartCountdownTimers( '.aw-countdown', { 2464 remember: true }); 2465 } ); 2466 2467</script>
2467 2468
2469<script> 2470 $(function() { 2471 function MenuCheck() 2472 { 2473 try { 2474 let jquery_element = $('#primary-menu > ul'); 2475 let js_element = jquery_element[0]; 2476 if( js_element.getBoundingClientRect().y > 0 && !jquery_element.hasClass('dropped') ) 2477 jquery_element.addClass('dropped'); 2478 else if( js_element.getBoundingClientRect().y === 0 && jquery_element.hasClass('dropped') ) 2479 jquery_element.removeClass('dropped'); 2480 } 2481 catch( err ) {} 2482 } 2483 $(window).resize( MenuCheck ); 2484 MenuCheck(); 2485 2486 $('[href^="#copytoclipboard="]').click( function() { 2487 let text = $(this).attr('href').substring(17); 2488 CopyToClipboard( decodeURIComponent( text ) ); 2489 return false; 2490 }); 2491 }); 2492 2493 function highlightRequiredField( field_id, callback ) 2494 { 2495 $('#' + field_id).addClass('tilt-shaking'); 2496 setTimeout( () => { 2497 $('#' + field_id).removeClass('tilt-shaking'); 2498 if( typeof callback === 'function' ) 2499 callback(); 2500 }, 750 ); 2501 } 2502 2503 function CopyToClipboard( text, success_message = 'Copied to clipboard', failure_message = 'Failed to copy to clipboard' ) 2504 { 2505 window.navigator.clipboard.writeText( text ).then( function() { 2506 toastr.info( success_message ); 2507 }, function() { 2508 toastr.error( failure_message ); 2509 }); 2510 return false; 2511 } 2512</script>
2512 2513 <!-- Override Styles --> 2514 <style media="all"> 2515 #primary-menu-trigger { 2516 font-size: 27px; 2517 margin-left: 10px; 2518 } 2519 .thin-font { 2520 font-weight: 300; 2521 } 2522 .section { 2523 background-color: #f7f7f7; 2524 } 2525 .bottle-lineup { 2526 height: 160px; 2527 } 2528 .bottle-popular { 2529 background-size: contain; 2530 background-repeat: no-repeat; 2531 background-position: center; 2532 height: 100px !important; 2533 } 2534 .menu-flag { 2535 width:16px; 2536 position: relative; 2537 top:-2px; 2538 margin-right:5px; 2539 } 2540 #logo > a { 2541 text-transform: none !important; 2542 } 2543 #logo { 2544 border-right: 0 !important; 2545 } 2546 #logo a.standard-logo { display: inline; } 2547 2548 #logo a.retina-logo { display: none; } 2549 2550 #header.transparent-header.full-header #header-wrap { 2551 border-bottom: none; /* Remove top line in the theme to clean up display */ 2552 } 2553 2554 #primary-menu-trigger { 2555 text-align: left; 2556 } 2557 2558 .get-started-button-top { 2559 float:right; 2560 } 2561 .get-started-button-bottom { 2562 display:none; 2563 } 2564 2565 .inherit-link-weight { 2566 font-weight: inherit !important; 2567 } 2568 2569 .site-name-text { 2570 -webkit-transition: all .4s ease, opacity .3s ease; 2571 -o-transition: all .4s ease, opacity .3s ease; 2572 transition: all .4s ease, opacity .3s ease; 2573 display:inline-block; 2574 } 2575 @media( max-width: 991px ) { 2576 .site-name-text { 2577 margin-left: 27px; 2578 max-height: 7rem; 2579 overflow: hidden; 2580 } 2581 #primary-menu ul li a { 2582 font-size: 16px; 2583 } 2584 } 2585 2586 #header.sticky-header .site-name-text { 2587 font-size: 20px; 2588 position: relative; 2589 top: -20px; 2590 } 2591 /*#header.sticky-header #logo {*/ 2592 /*margin-top: 10px;*/ 2593 /*}*/ 2594 2595 #footer.dark .social-icon.si-borderless { 2596 color: #999999 !important; 2597 } 2598 2599 .blog-image { 2600 width: auto !important; 2601 margin-left:auto; 2602 max-height: 200px; 2603 margin-top: -30px; 2604 } 2605 2606 .margin-bottom-20 { 2607 margin-bottom: 20px; 2608 } 2609 2610 2611 .about-me-text p { 2612 margin-bottom:20px; 2613 } 2614 2615 .about-me-text td, th { 2616 padding: 10px; 2617 } 2618 2619 .fr-view td, th { 2620 padding: 10px; 2621 } 2622 2623 .logo-image { 2624 display: inline !important; 2625 max-width: 400px !important; 2626 max-height: 100px; 2627 } 2628 2629 ul, ol { 2630 padding-left: revert; 2631 } 2632 2633 .topmargin-xs { 2634 margin-top: 15px; 2635 } 2636
2637 .modal-inner { 2638 color: #333; 2639 font-weight:300; 2640 margin-bottom:10px; 2641 margin-top:20px; 2642 font-size:18px; 2643 } 2644 2645 .font-weight-normal { 2646 font-weight: normal; 2647 } 2648 .smaller-font { 2649 font-size: 15px; 2650 } 2651 2652 #header.transparent-header.full-header #header-wrap { 2653 border-bottom: none; /* Remove top line in the theme to clean up display */ 2654 } 2655 #header.transparent-header.full-header.dark > #header-wrap:not(.not-dark) { 2656 background: rgba(50,50,50,0.3); 2657 } 2658 #header.transparent-header.full-header.dark:not(.sticky-header) > #header-wrap { 2659 background: rgba(50,50,50,0.9); 2660 } 2661 .dark #logo a { 2662 color: #f0f0f0; 2663 } 2664 2665 2666 .toppadding-sm { padding-top: 20px; } 2667 .bottompadding-sm { padding-bottom: 20px; } 2668 2669 2670 2671 .fr-code { font-weight: normal; } 2672 2673 @media (max-width: 991px) { 2674 2675 .fr-video > iframe { 2676 height: auto !important; 2677 min-height: 250px; 2678 margin: 10px 0; 2679 } 2680 } 2681.fr-box.fr-basic .fr-element.fr-view, #page-editor, .landing-page-editable { font-weight:normal;font-style:normal;text-transform:none;}.fr-box.fr-basic .fr-element.fr-view h1, #page-editor h1, .landing-page-editable h1, 2682 .fr-box.fr-basic .fr-element.fr-view h2, #page-editor h2, .landing-page-editable h2, 2683 .fr-box.fr-basic .fr-element.fr-view h3, #page-editor h3, .landing-page-editable h3, 2684 .fr-box.fr-basic .fr-element.fr-view h4, #page-editor h4, .landing-page-editable h4, 2685 .fr-box.fr-basic .fr-element.fr-view h5, #page-editor h5, .landing-page-editable h6, 2686 .fr-box.fr-basic .fr-element.fr-view h6, #page-editor h6, .landing-page-editable h6 { font-weight:normal;font-style:normal;text-transform:none;} 2687 .widget_links li { 2688 display:inline-block; 2689 width:24%; 2690 } 2691 @media (max-width: 991px) { 2692 .widget_links li { 2693 width:32%; 2694 } 2695 } 2696 @media (max-width: 767px) { 2697 .widget_links li { 2698 width:50%; 2699 } 2700 } 2701 @media (max-width: 480px) { 2702 .widget_links li { 2703 width:100%; 2704 } 2705 } 2706 2707 2708 2709 @media (min-width: 480px) { 2710 .leftpad25-not-mobile { 2711 padding-left:25px; 2712 } 2713 } 2714 @media (max-width: 480px ) { 2715 .site-name-text { 2716 font-size: 24px !important; 2717 } 2718 .logo-image { 2719 display: inline !important; 2720 max-width: 330px !important; 2721 max-height: 100px; 2722 } 2723 } 2724 @media (max-width: 767px) { 2725 .blog-image { 2726 display:block; 2727 width:100%; 2728 max-height: none; 2729 max-width: 100%; 2730 } 2731 } 2732 @media (max-width: 991px) { 2733 /*#logo a.standard-logo { display: inline-block; }*/ 2734 .get-started-button-top { 2735 display:none; 2736 } 2737 .get-started-button-bottom { 2738 display: inline-block; 2739 } 2740 #logo .site-name-text { 2741 position: relative; 2742 top: 29px; 2743 } 2744 .blog-image { 2745 margin-right:auto; 2746 } 2747 #contact-message { 2748 min-height:auto; 2749 }
2750 .modal-image-link { 2751 display:block; 2752 margin:0 20px 20px 0; 2753 float:none; 2754 } 2755 .menu-item-overflow { 2756 overflow:hidden; 2757 white-space:nowrap; 2758 text-overflow:ellipsis; 2759 } 2760 } 2761 2762 @media 2763 only screen and (-webkit-min-device-pixel-ratio: 2), 2764 only screen and ( min--moz-device-pixel-ratio: 2), 2765 only screen and ( -o-min-device-pixel-ratio: 2/1), 2766 only screen and ( min-device-pixel-ratio: 2), 2767 only screen and ( min-resolution: 192dpi), 2768 only screen and ( min-resolution: 2dppx) { 2769 2770 #logo a.standard-logo { 2771 display: none; 2772 } 2773 2774 #logo a.retina-logo { 2775 display: inline; 2776 } 2777 } 2778 2779 @media 2780 only screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 991px), 2781 only screen and ( min--moz-device-pixel-ratio: 2) and (max-width: 991px), 2782 only screen and ( -o-min-device-pixel-ratio: 2/1) and (max-width: 991px), 2783 only screen and ( min-device-pixel-ratio: 2) and (max-width: 991px), 2784 only screen and ( min-resolution: 192dpi) and (max-width: 991px), 2785 only screen and ( min-resolution: 2dppx) and (max-width: 991px) { 2786 /*#logo a.standard-logo { display: none; } 2787 #logo a.retina-logo { display: inline-block; }*/ 2788 .get-started-button-top { 2789 display:none; 2790 } 2791 .get-started-button-bottom { 2792 display: inline-block; 2793 } 2794 2795 #logo .site-name-text { 2796 position: relative; 2797 top: 29px; 2798 } 2799 .blog-image { 2800 margin-right:auto; 2801 } 2802 } 2803 2804 @media( min-width: 992px ) { 2805 section { 2806 clear:both; 2807 } 2808 } 2809 2810 /* Icon Fonts */ 2811 @font-face { 2812 font-family: 'font-icons'; 2813 src:url('/themes/modern-fonts/font-icons.eot'); 2814 src:url('/themes/modern-fonts/font-icons.eot') format('embedded-opentype'), 2815 url('https://webcache.attractwell.com/third-party/font-icons/font-icons.woff') format('woff'), 2816 url('https://webcache.attractwell.com/third-party/font-icons/font-icons.ttf') format('truetype'), 2817 url('/themes/modern-fonts/font-icons.svg') format('svg'); 2818 font-weight: normal; 2819 font-style: normal; 2820 } 2821 2822 @font-face { 2823 font-family: 'lined-icons'; 2824 src:url('/themes/modern-fonts/lined-icons.eot'); 2825 src:url('/themes/modern-fonts/lined-icons.eot') format('embedded-opentype'), 2826 url('https://webcache.attractwell.com/third-party/font-icons/lined-icons.woff') format('woff'), 2827 url('https://webcache.attractwell.com/third-party/font-icons/lined-icons.ttf') format('truetype'), 2828 url('/themes/modern-fonts/lined-icons.svg') format('svg'); 2829 font-weight: normal; 2830 font-style: normal; 2831 } 2832 2833 @font-face { 2834 font-family: 'Simple-Line-Icons'; 2835 src:url('/themes/modern-fonts/Simple-Line-Icons.eot'); 2836 src:url('/themes/modern-fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'), 2837 url('https://webcache.attractwell.com/third-party/font-icons/Simple-Line-Icons.woff') format('woff'), 2838 url('https://webcache.attractwell.com/third-party/font-icons/Simple-Line-Icons.ttf') format('truetype'), 2839 url('/themes/modern-fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg'); 2840 font-weight: normal; 2841 font-style: normal; 2842 } 2843.clearfix::after { 2844 clear: both; 2845 display: block; 2846 content: ""; 2847 height: 0; 2848} 2849.hide-by-clipping { 2850 position: absolute; 2851 width: 1px; 2852 height: 1px; 2853 padding: 0; 2854 margin: -1px; 2855 overflow: hidden; 2856 clip: rect(0, 0, 0, 0); 2857 border: 0; 2858} 2859img.fr-rounded, 2860.fr-img-caption.fr-rounded img { 2861 border-radius: 10px; 2862 -moz-border-radius: 10px; 2863 -webkit-border-radius: 10px; 2864 -moz-background-clip: padding; 2865 -webkit-background-clip: padding-box; 2866 background-clip: padding-box; 2867} 2868img.fr-bordered, 2869.fr-img-caption.fr-bordered img { 2870 border: solid 5px #CCC; 2871} 2872img.fr-bordered { 2873 -webkit-box-sizing: content-box; 2874 -moz-box-sizing: content-box; 2875 box-sizing: content-box; 2876} 2877.fr-img-caption.fr-bordered img { 2878 -webkit-box-sizing: border-box; 2879 -moz-box-sizing: border-box; 2880 box-sizing: border-box; 2881} 2882img.fr-shadow, 2883.fr-img-caption.fr-shadow img { 2884 -webkit-box-shadow: 10px 10px 5px 0px #cccccc; 2885 -moz-box-shadow: 10px 10px 5px 0px #cccccc; 2886 box-shadow: 10px 10px 5px 0px #cccccc; 2887} 2888.fr-view span[style~="color:"] a { 2889 color: inherit; 2890} 2891.fr-view strong { 2892 font-weight: 700; 2893} 2894.fr-view table { 2895 border: none; 2896 border-collapse: collapse; 2897 empty-cells: show; 2898 max-width: 100%; 2899 table-layout: fixed; 2900} 2901.fr-view table td { 2902 min-width: 5px; 2903} 2904.fr-view table.fr-dashed-borders td, 2905.fr-view table.fr-dashed-borders th { 2906 border-style: dashed; 2907} 2908.fr-view table.fr-alternate-rows tbody tr:nth-child(2n) { 2909 background: #f5f5f5; 2910} 2911.fr-view table td, 2912.fr-view table th, 2913.member-area .fr-view table td, 2914.member-area .fr-view table th { 2915 border: 0; 2916}
2917.back-office-menu-layout-grid-content .fr-view table td, 2918.back-office-menu-layout-grid-content .fr-view table th { 2919 border: 1px solid #dddddd; 2920} 2921.fr-view table td:empty, 2922.fr-view table th:empty { 2923 height: 20px; 2924} 2925.fr-view table td.fr-highlighted, 2926.fr-view table th.fr-highlighted { 2927 border: 1px double red; 2928} 2929.fr-view table td.fr-thick, 2930.fr-view table th.fr-thick { 2931 border-width: 2px; 2932} 2933.fr-view table th { 2934 background: #e6e6e6; 2935} 2936.fr-view hr { 2937 clear: both; 2938 user-select: none; 2939 -o-user-select: none; 2940 -moz-user-select: none; 2941 -khtml-user-select: none; 2942 -webkit-user-select: none; 2943 -ms-user-select: none; 2944 page-break-after: always; 2945 border-top: 2px solid #bbb; 2946} 2947.fr-view .fr-file { 2948 position: relative; 2949} 2950/* paperclip icon after inserting file 2951.fr-view .fr-file::after { 2952 position: relative; 2953 content: "\1F4CE"; 2954 font-weight: normal; 2955} 2956*/ 2957.fr-view pre { 2958 white-space: pre-wrap; 2959 word-wrap: break-word; 2960 overflow: visible; 2961} 2962.fr-view[dir="rtl"] blockquote { 2963 border-left: none; 2964 border-right: solid 2px #5e35b1; 2965 margin-right: 0; 2966 padding-right: 5px; 2967 padding-left: 0px; 2968} 2969.fr-view[dir="rtl"] blockquote blockquote { 2970 border-color: #00bcd4; 2971} 2972.fr-view[dir="rtl"] blockquote blockquote blockquote { 2973 border-color: #43a047; 2974} 2975.fr-view blockquote { 2976 border-left: solid 2px currentColor; 2977 margin-left: 0; 2978 padding-left: 15px; 2979 color: inherit; 2980} 2981.fr-view blockquote blockquote { 2982 border-color: inherit; 2983 color: inherit; 2984} 2985.fr-view blockquote blockquote blockquote { 2986 border-color: inherit; 2987 color: inherit; 2988} 2989.fr-view span.fr-emoticon { 2990 font-weight: normal; 2991 font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; 2992 display: inline; 2993 line-height: 0; 2994} 2995.fr-view span.fr-emoticon.fr-emoticon-img { 2996 background-repeat: no-repeat !important; 2997 font-size: inherit; 2998 height: 1em; 2999 width: 1em; 3000 min-height: 20px; 3001 min-width: 20px; 3002 display: inline-block; 3003 margin: -0.1em 0.1em 0.1em; 3004 line-height: 1; 3005 vertical-align: middle; 3006} 3007.fr-view .fr-text-gray { 3008 color: #AAA !important; 3009} 3010.fr-view .fr-text-bordered { 3011 border-top: solid 1px #222; 3012 border-bottom: solid 1px #222; 3013 padding: 10px 0; 3014} 3015.fr-view .fr-text-spaced { 3016 letter-spacing: 1px; 3017} 3018.fr-view .fr-text-uppercase { 3019 text-transform: uppercase; 3020} 3021.fr-view img { 3022 position: relative; 3023 max-width: 100%; 3024} 3025.fr-view img.fr-dib { 3026 margin: 5px auto; 3027 display: block; 3028 float: none; 3029 vertical-align: top; 3030} 3031.fr-view img.fr-dib.fr-fil { 3032 margin-left: 0; 3033 text-align: left; 3034} 3035.fr-view img.fr-dib.fr-fir { 3036 margin-right: 0; 3037 text-align: right; 3038} 3039.fr-view img.fr-dii { 3040 display: inline-block; 3041 float: none; 3042 vertical-align: bottom; 3043 margin-left: 5px; 3044 margin-right: 5px; 3045 max-width: calc(100% - (2 * 5px)); 3046} 3047.fr-view img.fr-dii.fr-fil { 3048 float: left; 3049 margin: 5px 20px 20px 0; 3050 max-width: calc(100% - 5px); 3051} 3052.fr-view img.fr-dii.fr-fir { 3053 float: right; 3054 margin: 5px 0 20px 20px; 3055 max-width: calc(100% - 5px); 3056} 3057.fr-view span.fr-img-caption { 3058 position: relative; 3059 max-width: 100%; 3060} 3061.fr-view span.fr-img-caption.fr-dib { 3062 margin: 5px auto; 3063 display: block; 3064 float: none; 3065 vertical-align: top; 3066} 3067.fr-view span.fr-img-caption.fr-dib.fr-fil { 3068 margin-left: 0; 3069 text-align: left; 3070} 3071.fr-view span.fr-img-caption.fr-dib.fr-fir { 3072 margin-right: 0; 3073 text-align: right; 3074} 3075.fr-view span.fr-img-caption.fr-dii { 3076 display: inline-block; 3077 float: none; 3078 vertical-align: bottom; 3079 margin-left: 5px; 3080 margin-right: 5px; 3081 max-width: calc(100% - (2 * 5px)); 3082} 3083.fr-view span.fr-img-caption.fr-dii.fr-fil { 3084 float: left; 3085 margin: 5px 5px 5px 0; 3086 max-width: calc(100% - 5px); 3087} 3088.fr-view span.fr-img-caption.fr-dii.fr-fir { 3089 float: right; 3090 margin: 5px 0 5px 5px; 3091 max-width: calc(100% - 5px); 3092} 3093.fr-view .fr-video { 3094 text-align: center; 3095 position: relative; 3096} 3097.fr-view .fr-video > * { 3098 -webkit-box-sizing: content-box; 3099 -moz-box-sizing: content-box; 3100 box-sizing: content-box; 3101 max-width: 100%; 3102 border: none; 3103} 3104.fr-view .fr-video.fr-dvb { 3105 display: block; 3106 clear: both; 3107} 3108.fr-view .fr-video.fr-dvb.fr-fvl { 3109 text-align: left; 3110} 3111.fr-view .fr-video.fr-dvb.fr-fvr { 3112 text-align: right; 3113} 3114.fr-view .fr-video.fr-dvi { 3115 display: inline-block; 3116} 3117.fr-view .fr-video.fr-dvi.fr-fvl { 3118 float: left; 3119} 3120.fr-view .fr-video.fr-dvi.fr-fvr { 3121 float: right; 3122} 3123.fr-view a.fr-strong { 3124 font-weight: 700; 3125} 3126.fr-view a.fr-green { 3127 color: green; 3128} 3129.fr-view .fr-img-caption { 3130 text-align: center; 3131} 3132.fr-view .fr-img-caption .fr-img-wrap { 3133 padding: 0px; 3134 display: inline-block; 3135 margin: auto; 3136 text-align: center; 3137 width: 100%; 3138} 3139.fr-view .fr-img-caption .fr-img-wrap img { 3140 display: block; 3141 margin: auto; 3142 width: 100%; 3143} 3144.fr-view .fr-img-caption .fr-img-wrap > span { 3145 margin: auto; 3146 display: block; 3147 padding: 5px 5px 10px; 3148 font-size: 14px; 3149 font-weight: initial; 3150 -webkit-box-sizing: border-box; 3151 -moz-box-sizing: border-box; 3152 box-sizing: border-box; 3153 -webkit-opacity: 0.9; 3154 -moz-opacity: 0.9; 3155 opacity: 0.9; 3156 -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 3157 width: 100%; 3158 text-align: center; 3159} 3160.fr-view button.fr-rounded, 3161.fr-view input.fr-rounded, 3162.fr-view textarea.fr-rounded { 3163 border-radius: 1px; 3164 -moz-border-radius: 1px; 3165 -webkit-border-radius: 1px; 3166 -moz-background-clip: padding; 3167 -webkit-background-clip: padding-box; 3168 background-clip: padding-box; 3169} 3170.fr-view button.fr-large, 3171.fr-view input.fr-large, 3172.fr-view textarea.fr-large { 3173 font-size: 24px; 3174} 3175/** 3176 * Image style. 3177 */ 3178a.fr-view.fr-strong { 3179 font-weight: 700; 3180} 3181a.fr-view.fr-green { 3182 color: green; 3183} 3184/** 3185 * Link style. 3186 */ 3187img.fr-view { 3188 position: relative; 3189 max-width: 100%; 3190} 3191img.fr-view.fr-dib { 3192 margin: 5px auto; 3193 display: block; 3194 float: none; 3195 vertical-align: top; 3196} 3197img.fr-view.fr-dib.fr-fil { 3198 margin-left: 0; 3199 text-align: left; 3200} 3201img.fr-view.fr-dib.fr-fir { 3202 margin-right: 0; 3203 text-align: right; 3204} 3205img.fr-view.fr-dii { 3206 display: inline-block; 3207 float: none; 3208 vertical-align: bottom; 3209 margin-left: 5px; 3210 margin-right: 5px; 3211 max-width: calc(100% - (2 * 5px)); 3212} 3213img.fr-view.fr-dii.fr-fil { 3214 float: left; 3215 margin: 5px 5px 5px 0; 3216 max-width: calc(100% - 5px); 3217} 3218img.fr-view.fr-dii.fr-fir { 3219 float: right; 3220 margin: 5px 0 5px 5px; 3221 max-width: calc(100% - 5px); 3222} 3223span.fr-img-caption.fr-view { 3224 position: relative; 3225 max-width: 100%; 3226} 3227span.fr-img-caption.fr-view.fr-dib { 3228 margin: 5px auto; 3229 display: block; 3230 float: none; 3231 vertical-align: top; 3232} 3233span.fr-img-caption.fr-view.fr-dib.fr-fil { 3234 margin-left: 0; 3235 text-align: left; 3236} 3237span.fr-img-caption.fr-view.fr-dib.fr-fir { 3238 margin-right: 0; 3239 text-align: right; 3240} 3241span.fr-img-caption.fr-view.fr-dii { 3242 display: inline-block; 3243 float: none; 3244 vertical-align: bottom; 3245 margin-left: 5px; 3246 margin-right: 5px; 3247 max-width: calc(100% - (2 * 5px)); 3248} 3249span.fr-img-caption.fr-view.fr-dii.fr-fil { 3250 float: left; 3251 margin: 5px 5px 5px 0; 3252 max-width: calc(100% - 5px); 3253} 3254span.fr-img-caption.fr-view.fr-dii.fr-fir { 3255 float: right; 3256 margin: 5px 0 5px 5px; 3257 max-width: calc(100% - 5px); 3258} 3259 3260/* Shrink the Froala line breaker floating button to prevent overlap on small images */ 3261.fr-line-breaker .fr-floating-btn { 3262 transform: scale(0.7) !important; 3263 transform-origin: center !important; 3264} 3265 3266/* Optional: Add hover effect if you want it to scale up full size on hover */ 3267.fr-line-breaker:hover .fr-floating-btn { 3268 transform: scale(1) !important; 3269 transition: transform 0.1s ease; 3270} 3271 3272 [data-animate]:not(.animated) { 3273 opacity: 0; 3274 } 3275 </style> 3276 <link rel="stylesheet" href="https://attractwell.com/site-assets/themes/attractwell/css/font-icons.css" type="text/css" /> 3277 3278 <link rel="canonical" href="https://brooksdemming.com/store" /> 3279 3280</head> 3281 3282<body class="stretched no-transition"> 3283 3284 3285 3286 3287<!-- Document Wrapper 3288============================================= --> 3289<div id="wrapper" class="clearfix"> 3290 3291 <!-- Header 3292 ============================================= --> 3293 <header id="header" class="transparent-header full-header" data-sticky-class="not-dark"> 3294 3295 <div id="header-wrap"> 3296 3297 <div class="container clearfix"> 3298 3299 <div id="primary-menu-trigger"><i class="icon-reorder"></i></div> 3300 3301 <!-- Logo 3302 ============================================= --> 3303 <div id="logo"> 3304 <a href="/" class="standard-logo" data-dark-logo="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c8f41dc.png"> 3305 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c8f41dc.png" alt="Brooks Demming" class="logo-image" fetchpriority="high"> 3306 </a> 3307 <a href="/" class="retina-logo" data-dark-logo="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c8f41dc.png"> 3308 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4e60c8f41dc.png" alt="Brooks Demming" class="logo-image" fetchpriority="high"> 3309 </a> 3310 </div><!-- #logo end --> 3311 3312 3313 3314 <!-- Primary Navigation 3315 ============================================= --> 3316 <nav id="primary-menu" xclass="dark"> 3317 3318 3319 <ul style="touch-action: pan-y;border-right: 0;margin-right: 0;padding-right: 0;"> 3320 <style> 3321 @media (min-width:992px) { 3322 .top-menu-pulldown-menu-container { 3323 overflow: auto; 3324 max-height: calc(100vh - 100px); 3325 } 3326 } 3327</style> 3328 3329<li class="sub-menu"><span class="hidden-md hidden-lg" style="display:inline-block;float:right;background-image:none;"><i class="icon-chevron-down" style="line-height: normal;padding:12px 19px 12px 12px;position:relative;top:-8px;"></i></span>
3329<a class="sub-menu-header-link" href="#" style="background-image:none;">Work With Me </a><ul style="display: none;" class="top-menu-pulldown-menu-container"><li class="sf-with-ul"><a href="https://brooksdemming.com/store/collections/consulting">Services</a></li><li class="sf-with-ul"><a href="https://brooksdemming.com/page/request-to-book-dr-brooks">Request to Book Dr. Brooks </a></li></ul><li class="sub-menu"><span class="hidden-md hidden-lg" style="display:inline-block;float:right;background-image:none;"><i class="icon-chevron-down" style="line-height: normal;padding:12px 19px 12px 12px;position:relative;top:-8px;"></i></span><a class="sub-menu-header-link" href="#" style="background-image:none;">Blog & Podcast</a><ul style="display: none;" class="top-menu-pulldown-menu-container"><li class="sf-with-ul"><a href="https://brooksdemming.com/blog/harnessing-vroom-s-expectancy-theory-to-empower-and-motivate-employees-insights-for-organizational">Strategy Corner Blog </a></li><li class="sf-with-ul"><a href="https://off-balancepodcast.com/">Off-Balance Podcast</a></li></ul><li class="sub-menu"><span class="hidden-md hidden-lg" style="display:inline-block;float:right;background-image:none;"><i class="icon-chevron-down" style="line-height: normal;padding:12px 19px 12px 12px;position:relative;top:-8px;"></i></span><a class="sub-menu-header-link" href="#" style="background-image:none;">Training Hub </a><ul style="display: none;" class="top-menu-pulldown-menu-container"><li class="sf-with-ul"><a href="https://brooksdemming.com/page/webinars">Webinars</a></li><li class="sf-with-ul"><a href="https://brooksdemming.com/page/courses">Courses</a></li></ul><li><a class="sub-menu-header-link" href="https://g.page/r/CQ5Ux8BbGvO3EBM/review" style="background-image:none;">Leave a Review </a><li class="sub-menu"><span class="hidden-md hidden-lg" style="display:inline-block;float:right;background-image:none;"><i class="icon-chevron-down" style="line-height: normal;padding:12px 19px 12px 12px;position:relative;top:-8px;"></i></span><a class="sub-menu-header-link" href="https://brooksdemming.com/members" target="_blank" style="background-image:none;">Client Portal </a><ul style="display: none;" class="top-menu-pulldown-menu-container"><li class="sf-with-ul"><a href="https://brooksdemming.com/page/legal">Terms of Use</a></li><li class="sf-with-ul"><a href="https://brooksdemming.com/page/a2p-contact-me">A2P Contact Me</a></li></ul><li class="sub-menu"><span class="hidden-md hidden-lg" style="display:inline-block;float:right;background-image:none;"><i class="icon-chevron-down" style="line-height: normal;padding:12px 19px 12px 12px;position:relative;top:-8px;"></i></span><a class="sub-menu-header-link" href="https://brooksdemming.com/page/frequently-asked-questions" style="background-image:none;">FAQs</a><ul style="display: none;" class="top-menu-pulldown-menu-container"><li class="sf-with-ul"><a href="/store/gpt/leadership-professional-development-guide">Chat with Me </a></li></ul></li>
3329<script> 3330 $(function() { 3331 $('a.sub-menu-header-link').click( function() { 3332 if( $(this)[0].getAttribute('target') === '_blank' ) 3333 return; 3334 3335 if( $(this)[0].href.endsWith('#') === false ) 3336 location.href = $(this)[0].href; 3337 }); 3338 }); 3339</script>
3339 3340 </ul> 3341 3342 </nav><!-- #primary-menu end --> 3343 3344 </div> 3345 3346 </div> 3347 3348 </header><!-- #header end --> 3349 3350 <main role="main"> 3351 3352 <style> 3353 @media print { 3354 #header, .no-print { 3355 display: none !important; 3356 } 3357 #header a[href]:after, .no-print { 3358 content: none !important; 3359 } 3360 } 3361 .inline-block { 3362 display: inline-block; 3363 } 3364 @media (min-width:992px) { 3365 .inline-block-desktop { 3366 display: inline-block; 3367 } 3368 } 3369 a.dark-link { 3370 color: #91684b; 3371 } 3372 a.dark-link:hover { 3373 color: #ba8561; 3374 } 3375 .button-white { background: #f0f0f0; } 3376 .table.no-table-striping > thead > tr > th, 3377 .table.no-table-striping > tbody > tr > th, 3378 .table.no-table-striping > tfoot > tr > th, 3379 .table.no-table-striping > thead > tr > td, 3380 .table.no-table-striping > tbody > tr > td, 3381 .table.no-table-striping > tfoot > tr > td { 3382 border-top: 1px solid transparent; 3383 } 3384 .list-title-link { 3385 font-size: 20px; 3386 font-weight: bold; 3387 color: #91684b; 3388 word-break: break-word; 3389 } 3390 .list-item-section { 3391 /*background-image: linear-gradient( to bottom right, #f3f3f3, #f7f7f7 );*/ 3392 /*padding: 30px 40px 10px 40px;*/ 3393 /*border-radius: 10px;*/ 3394 /*box-shadow: 1px 1px 1px rgba(0,0,0,0.09);*/ 3395 margin-bottom: 20px; 3396 } 3397 /* Creates a grid of rows within a list-item-section class, for normal density content */ 3398 @media (min-width:1200px) { 3399 .list-item-section-grid { 3400 display: grid; 3401 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 3402 column-gap: 6rem; 3403 row-gap: 0rem; 3404 } 3405 } 3406 @media (min-width:2000px) { 3407 .list-item-section-grid { 3408 display: grid; 3409 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 3410 column-gap: 6rem; 3411 row-gap: 0rem; 3412 } 3413 } 3414 @media (min-width:2500px) { 3415 .list-item-section-grid { 3416 display: grid; 3417 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 3418 column-gap: 6rem; 3419 row-gap: 0rem; 3420 } 3421 } 3422 @media (min-width:3000px) { 3423 .list-item-section-grid { 3424 display: grid; 3425 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 3426 column-gap: 6rem; 3427 row-gap: 0rem; 3428 } 3429 } 3430 3431 /* Creates a grid of rows within a list-item-section class, for high density content that needs more space */ 3432 @media (min-width:1500px) { 3433 .list-item-section-grid-large { 3434 display: grid; 3435 grid-template-columns: repeat( 2, minmax(0, 1fr) ); 3436 column-gap: 6rem; 3437 row-gap: 0rem; 3438 } 3439 } 3440 @media (min-width:2300px) { 3441 .list-item-section-grid-large { 3442 display: grid; 3443 grid-template-columns: repeat( 3, minmax(0, 1fr) ); 3444 column-gap: 6rem; 3445 row-gap: 0rem; 3446 } 3447 } 3448 @media (min-width:2800px) { 3449 .list-item-section-grid-large { 3450 display: grid; 3451 grid-template-columns: repeat( 4, minmax(0, 1fr) ); 3452 column-gap: 6rem; 3453 row-gap: 0rem; 3454 } 3455 } 3456 @media (min-width:3300px) { 3457 .list-item-section-grid-large { 3458 display: grid; 3459 grid-template-columns: repeat( 5, minmax(0, 1fr) ); 3460 column-gap: 6rem; 3461 row-gap: 0rem; 3462 } 3463 } 3464 /* Card-style containers — share the same softer border, modern radius, and 3465 subtle hover treatment as the redesigned .form-control / wizard panels. */ 3466 .list-item-row { 3467 padding-bottom:15px; 3468 padding-top:15px; 3469 border: 1px solid #e2e3e7; 3470 border-radius: 22px; 3471 background: #ffffff; 3472 margin-bottom: 30px; 3473 box-shadow: var(--panel-box-shadow); 3474 transition: border-color 0.15s, background 0.15s; 3475 } 3476 .list-item-row.list-item-row-hover:hover { 3477 border-color: #c2c5cc; 3478 background: #f7f7f5; 3479 } 3480 .list-item-row a.button-large { 3481 padding: 10px; 3482 height:auto; 3483 line-height: 22px; 3484 text-transform: none; 3485 letter-spacing: 0.2px; 3486 margin: 0 0 5px 0; 3487 } 3488 .settings-group { 3489 background: #ffffff; 3490 padding: 20px; 3491 border: 1px solid #e2e3e7; 3492 border-radius: 12px; 3493 box-shadow: var(--panel-box-shadow); 3494 } 3495 .settings-group-no-shadow { 3496 background: #ffffff; 3497 padding: 20px; 3498 border: 1px solid #e2e3e7; 3499 border-radius: 12px; 3500 } 3501 body.dark-mode:not(.no-dark-mode) .list-item-row, 3502 body.dark-mode:not(.no-dark-mode) .settings-group, 3503 body.dark-mode:not(.no-dark-mode) .settings-group-no-shadow { 3504 background: var(--dark-background-color); 3505 border-color: #444;
3506 color: var(--dark-mode-default-text-color); 3507 } 3508 body.dark-mode:not(.no-dark-mode) .list-item-row.list-item-row-hover:hover { 3509 border-color: #5a5a5a; 3510 background: #2c2c2c; 3511 } 3512 .on-page-search-box { 3513 width:15em; 3514 display:inline-block; 3515 font-size:16px; 3516 border-radius: 8px 0 0 8px; 3517 height: 34px; 3518 } 3519 .text-right-desktop { 3520 text-align: right; 3521 } 3522 .pull-right-desktop { 3523 float:right; 3524 } 3525 .div-block { 3526 display: block; 3527 } 3528 .button-panel { 3529 margin:1rem 0 0 0; 3530 font-size:16px; 3531 } 3532 .button-panel a+a { 3533 margin-left: 10px; 3534 } 3535 .action-button-panel a { 3536 text-align: center; 3537 display: block; 3538 } 3539 .action-button-panel a+a { 3540 margin-top: 1rem; 3541 } 3542 .text-bold { 3543 font-weight: bold; 3544 } 3545 .break-radio-items, .break-breadcrumb-nav { 3546 display: inline-block; 3547 } 3548 .link-path { 3549 display: inline-block; 3550 position:relative; 3551 top:-3px; 3552 } 3553 .list-details-panel { 3554 margin-top: 10px; 3555 } 3556 @media (max-width: 991px) { 3557 .text-bold-mobile { 3558 font-weight: bold; 3559 } 3560 .link-path { 3561 display: block; 3562 top: 0; 3563 } 3564 .break-radio-items { 3565 display: block; 3566 } 3567 .font-16-mobile { 3568 font-size: 16px; 3569 } 3570 .font-20-mobile { 3571 font-size: 20px; 3572 } 3573 .list-item-section { 3574 /*background: #f7f7f7;*/ 3575 width: 100vw; 3576 position: relative; 3577 left: 50%; 3578 right: 50%; 3579 margin-left: -50vw; 3580 margin-right: -50vw; 3581 padding: 20px 25px; 3582 border-radius: 0; 3583 box-shadow: none; 3584 } 3585 .list-item-row .btn-block { 3586 margin: 10px 0; 3587 } 3588 .list-title-link { 3589 font-size: 24px; 3590 } 3591 .on-page-search-box { 3592 display: inline-block; 3593 } 3594 .text-right-desktop { 3595 text-align: unset; 3596 } 3597 .text-center-mobile { 3598 text-align: center; 3599 } 3600 .pull-right-desktop { 3601 float:none; 3602 } 3603 .button-panel { 3604 font-size:18px; 3605 margin: 2rem 0 1rem 0; 3606 } 3607 .btn-block-mobile { 3608 display: block; 3609 width: 100%; 3610 margin: 0 0 10px 0; 3611 float: none !important; 3612 } 3613 .btn-block-mobile-margin-fix { 3614 margin-left: 0; 3615 margin-right: 0; 3616 } 3617 .topmargin-mobile { 3618 margin-top: 50px !important; 3619 } 3620 .mobile-label { 3621 display: inline; 3622 } 3623 .bottommargin-sm-mobile { 3624 margin-bottom: 30px; 3625 } 3626 .tab-bar-mobile { 3627 text-align: center; 3628 font-size:20px; 3629 line-height: 200%; 3630 } 3631 .list-details-panel a { 3632 padding-top: 10px; 3633 font-size: 18px; 3634 display: block; 3635 } 3636 .nomargin-mobile { 3637 margin: 0; 3638 } 3639 } 3640 @media (min-width: 992px) { 3641 .bottommargin-desktop { 3642 margin-bottom: 50px; 3643 } 3644 } 3645 kbd a { 3646 color: #F0F0F0; 3647 } 3648 kbd a:hover:not(.button) { 3649 color: #D0D0D0; 3650 } 3651</style><style> 3652 .tooltip.top .tooltip-arrow { 3653 border-top-color: #333333; 3654 } 3655 .tooltip.left .tooltip-arrow { 3656 border-left-color: #333333; 3657 } 3658 .tooltip.right .tooltip-arrow { 3659 border-right-color: #333333; 3660 } 3661 .tooltip.bottom .tooltip-arrow { 3662 border-bottom-color: #333333; 3663 } 3664 .tooltip-inner { 3665 background-color: #333333; 3666 border-radius: 2px; 3667 color: #eeeeee; 3668 font-size: 13px; 3669 } 3670</style>
3670<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
3670 3671<style> 3672 .swal2-container { 3673 z-index: 9999; 3674 } 3675 .swal2-container label { 3676 font-size: 1.8rem; 3677 } 3678 @media (max-width:991px) { 3679 .swal2-container .mobile-width-max { 3680 max-width: 90%; 3681 } 3682 } 3683 .swal2-styled, .swal2-html-container { 3684 font-size: 1.6rem; 3685 } 3686 .swal2-html-container:has(.voice-button-wrapper) { 3687 overflow: visible; 3688 z-index: 2; 3689 } 3690 3691 /* Buttons — align with the app's built-in .button styles. Confirm uses the 3692 product config's primary button color (with its dedicated hover color); 3693 deny / cancel use the secondary / danger colors and darken on hover via 3694 a filter. Modern radius, no text-shadow, smooth transition. */ 3695 .swal2-cancel, .swal2-confirm, .swal2-deny { 3696 padding: 10px 22px; 3697 border-radius: 999px; 3698 color: #fff; 3699 font-weight: 600; 3700 letter-spacing: normal; 3701 text-shadow: none; 3702 font-size: 1.6rem; 3703 line-height: 2.2rem; 3704 border: 0; 3705 transition: background-color 0.15s, filter 0.15s, box-shadow 0.15s; 3706 } 3707 .swal2-confirm { 3708 background-color: #eeaa7b; 3709 order: 2; 3710 } 3711 .swal2-confirm:hover, .swal2-confirm:focus { 3712 background-color: #ffb885; 3713 } 3714 .swal2-deny { 3715 background-color: #66b9bf; 3716 } 3717 .swal2-cancel { 3718 background-color: #C02942; 3719 } 3720 .swal2-deny:hover, .swal2-deny:focus, 3721 .swal2-cancel:hover, .swal2-cancel:focus { 3722 filter: brightness(0.92); 3723 } 3724 .swal2-cancel:focus, .swal2-confirm:focus, .swal2-deny:focus { 3725 outline: none; 3726 box-shadow: 0 0 0 3px rgba(63, 138, 82, 0.25); 3727 } 3728 3729 /* Inputs / selects / textareas — match the redesigned .form-control style: 3730 softer 1px border, 8px radius, modest padding, green focus ring. */ 3731 .swal2-input, .swal2-validation-message, div:is(.swal2-container) .swal2-select, .swal2-radio { 3732 font-size: 1.8rem; 3733 } 3734 .swal2-input, 3735 .swal2-textarea,
3736 div:is(.swal2-container) .swal2-select, 3737 select.swal2-input, 3738 .swal2-input[type=text], 3739 .swal2-input[type=number], 3740 .swal2-input[type=email], 3741 .swal2-input[type=password], 3742 .swal2-input[type=url] { 3743 box-shadow: none; 3744 border: 1px solid #e2e3e7; 3745 border-radius: 999px; 3746 padding: 10px 12px; 3747 background: #ffffff; 3748 color: #1f2024; 3749 transition: border-color 0.15s, box-shadow 0.15s; 3750 } 3751 .swal2-input:hover, 3752 .swal2-textarea:hover, 3753 div:is(.swal2-container) .swal2-select:hover, 3754 select.swal2-input:hover { 3755 border-color: #c2c5cc; 3756 } 3757 .swal2-input:focus, 3758 .swal2-textarea:focus, 3759 div:is(.swal2-container) .swal2-select:focus, 3760 select.swal2-input:focus { 3761 outline: none; 3762 border-color: #3f8a52; 3763 box-shadow: 0 0 0 3px #ecf6ee; 3764 } 3765 .swal2-input::placeholder, 3766 .swal2-textarea::placeholder { 3767 color: #8a8e98; 3768 } 3769 .swal2-input[type=number] { 3770 text-align: right; 3771 } 3772 .swal2-input[type=number]::-webkit-inner-spin-button { 3773 margin-left: 7px; 3774 } 3775 div:is(.swal2-container) .swal2-radio, div:is(.swal2-container) .swal2-checkbox, .swal2-radio > label { 3776 display:block; 3777 text-transform:none; 3778 } 3779 div:is(.swal2-container) .swal2-radio label, div:is(.swal2-container) .swal2-checkbox label { 3780 margin-bottom: inherit; 3781 } 3782 3783 body.dark-mode:not(.no-dark-mode) .swal2-popup { 3784 background-color: #2a2a2a; 3785 color: #e5e5e5; 3786 } 3787 body.dark-mode:not(.no-dark-mode) .swal2-title, 3788 body.dark-mode:not(.no-dark-mode) .swal2-html-container, 3789 body.dark-mode:not(.no-dark-mode) .swal2-html-container strong, 3790 body.dark-mode:not(.no-dark-mode) .swal2-html-container b, 3791 body.dark-mode:not(.no-dark-mode) .swal2-html-container p, 3792 body.dark-mode:not(.no-dark-mode) .swal2-html-container label, 3793 body.dark-mode:not(.no-dark-mode) .swal2-radio label, 3794 body.dark-mode:not(.no-dark-mode) .swal2-checkbox label { 3795 color: #e5e5e5; 3796 } 3797 body.dark-mode:not(.no-dark-mode) .swal2-html-container a { 3798 color: #7ab8ff; 3799 } 3800 body.dark-mode:not(.no-dark-mode) .swal2-input, 3801 body.dark-mode:not(.no-dark-mode) .swal2-textarea,
3802 body.dark-mode:not(.no-dark-mode) div:is(.swal2-container) .swal2-select, 3803 body.dark-mode:not(.no-dark-mode) select.swal2-input, 3804 body.dark-mode:not(.no-dark-mode) .swal2-input[type=text], 3805 body.dark-mode:not(.no-dark-mode) .swal2-input[type=number], 3806 body.dark-mode:not(.no-dark-mode) .swal2-input[type=email], 3807 body.dark-mode:not(.no-dark-mode) .swal2-input[type=password], 3808 body.dark-mode:not(.no-dark-mode) .swal2-input[type=url] { 3809 background: var(--dark-background-color); 3810 color: var(--dark-mode-default-text-color); 3811 border-color: #444; 3812 } 3813 body.dark-mode:not(.no-dark-mode) .swal2-input:hover, 3814 body.dark-mode:not(.no-dark-mode) .swal2-textarea:hover, 3815 body.dark-mode:not(.no-dark-mode) div:is(.swal2-container) .swal2-select:hover, 3816 body.dark-mode:not(.no-dark-mode) select.swal2-input:hover { 3817 border-color: #5a5a5a; 3818 } 3819 body.dark-mode:not(.no-dark-mode) .swal2-input:focus, 3820 body.dark-mode:not(.no-dark-mode) .swal2-textarea:focus, 3821 body.dark-mode:not(.no-dark-mode) div:is(.swal2-container) .swal2-select:focus, 3822 body.dark-mode:not(.no-dark-mode) select.swal2-input:focus { 3823 border-color: #6fb37e; 3824 box-shadow: 0 0 0 3px rgba(63, 138, 82, 0.25); 3825 } 3826 body.dark-mode:not(.no-dark-mode) .swal2-input::placeholder, 3827 body.dark-mode:not(.no-dark-mode) .swal2-textarea::placeholder { 3828 color: #888; 3829 } 3830 body.dark-mode:not(.no-dark-mode) .swal2-validation-message { 3831 background: #3a3a3a; 3832 color: #e5e5e5; 3833 } 3834 body.dark-mode:not(.no-dark-mode) .swal2-footer { 3835 border-top-color: #555; 3836 color: #e5e5e5; 3837 } 3838</style> 3839<style> 3840 :root { 3841 --spacing-025: 0.25rem; 3842 --spacing-05: 0.5rem; 3843 --spacing-1: 1rem; 3844 --spacing-15: 1.5rem; 3845 --spacing-2: 2rem; 3846 --spacing-25: 2.5rem; 3847 --spacing-3: 3rem; 3848 --spacing-35: 3.5rem; 3849 --spacing-4: 4rem; 3850 --spacing-45: 4.5rem; 3851 --spacing-5: 5rem; 3852 } 3853 .aw-accordion details { 3854 --background-color-closed: #ccc; 3855 --background-color-open: #b4b4b4; 3856 --background-color-content: #f0f0f0; 3857 overflow: hidden; 3858 margin: 0; 3859 3860 > summary { 3861 background: var(--background-color-closed); 3862 padding: 0.5em; 3863 cursor: pointer; 3864 border-radius: 2px; 3865 3866 transition: background 0.25s ease, color 0.25s ease; 3867 3868 &:hover { 3869 filter: brightness( 1.1 ); 3870 } 3871 margin-top: 5px; 3872 position: relative; 3873 top: -1px; 3874 } 3875 > summary::marker { 3876 content: ''; 3877 } 3878 > summary::-webkit-details-marker { 3879 display: none; 3880 } 3881 > p, > div, > ul, > ol { 3882 background-color: var(--background-color-content); 3883 margin: 0; 3884 } 3885 3886 &[open] { 3887 > summary { 3888 background: var(--background-color-open); 3889 } 3890 } 3891 &[open] > summary:before { 3892 transform: rotate(45deg); 3893 } 3894 > summary:before { 3895 content: '+'; 3896 display: inline-block; 3897 margin: 0 0.5em 0 0.25em; 3898 font-size: 20px; 3899 transition: transform 0.25s ease; 3900 } 3901 3902 > *:not(summary) { 3903 padding: 1em; 3904 } 3905 } 3906 3907 :not(details) + details, 3908 details:first-child summary { 3909 border-top-left-radius: 5px; 3910 border-top-right-radius: 5px; 3911 } 3912 details:not(details:has(+ details)):last-child summary { 3913 border-bottom-left-radius: 5px; 3914 border-bottom-right-radius: 5px; 3915 } 3916 </style>
3917<script> 3918 window.addEventListener('DOMContentLoaded', function() { 3919 class Accordion { 3920 constructor(el) { 3921 // Store the <details> element 3922 this.el = el; 3923 // Store the <summary> element 3924 this.summary = el.querySelector('summary'); 3925 // Store the <div class="aw-accordion-content"> element. A plain <details> (an imported 3926 // page, or hand-written markup) has no such wrapper, so this can be null - see 3927 // getExpandedHeight() for how the open height is measured in that case. 3928 this.content = el.querySelector('.aw-accordion-content'); 3929 3930 // Store the animation object (so we can cancel it if needed) 3931 this.animation = null; 3932 // Store if the element is closing 3933 this.isClosing = false; 3934 // Store if the element is expanding 3935 this.isExpanding = false; 3936 // Detect user clicks on the summary element 3937 this.summary.addEventListener('click', (e) => this.onClick(e)); 3938 } 3939 3940 static canEnhance(el) { 3941 return el.querySelector('summary') !== null; 3942 } 3943 3944 onClick(e) { 3945 try { 3946 // Add an overflow on the <details> to avoid content overflowing 3947 this.el.style.overflow = 'hidden'; 3948 // Check if the element is being closed or is already closed 3949 if (this.isClosing || !this.el.open) { 3950 this.open(); 3951 // Check if the element is being openned or is already open 3952 } else if (this.isExpanding || this.el.open) { 3953 this.shrink(); 3954 } 3955 // Stop default behaviour from the browser 3956 e.preventDefault(); 3957 } 3958 catch (e) { 3959 // do nothing 3960 } 3961 } 3962 3963 shrink() { 3964 // Set the element as "being closed" 3965 this.isClosing = true; 3966 3967 // Store the current height of the element 3968 const startHeight = `${this.el.offsetHeight}px`; 3969 // Calculate the height of the summary 3970 const endHeight = `${this.summary.offsetHeight}px`; 3971 3972 // If there is already an animation running 3973 if (this.animation) { 3974 // Cancel the current animation 3975 this.animation.cancel(); 3976 } 3977 3978 // Start a WAAPI animation 3979 this.animation = this.el.animate({ 3980 // Set the keyframes from the startHeight to endHeight 3981 height: [startHeight, endHeight] 3982 }, { 3983 duration: 400, 3984 easing: 'ease-out' 3985 }); 3986 3987 // When the animation is complete, call onAnimationFinish() 3988 this.animation.onfinish = () => this.onAnimationFinish(false); 3989 // If the animation is cancelled, isClosing variable is set to false 3990 this.animation.oncancel = () => this.isClosing = false; 3991 } 3992 3993 getExpandedHeight() { 3994 if( this.content ) { 3995 return this.summary.offsetHeight + this.content.offsetHeight; 3996 } 3997 return this.el.scrollHeight; 3998 } 3999 4000 open() { 4001 // Apply a fixed height on the element 4002 this.el.style.height = `${this.el.offsetHeight}px`; 4003 // Force the [open] attribute on the details element 4004 this.el.open = true; 4005 // Wait for the next frame to call the expand function 4006 window.requestAnimationFrame(() => this.expand()); 4007 } 4008 4009 expand() { 4010 try { 4011 this.animateExpand(); 4012 } 4013 catch (err) { 4014 this.onAnimationFinish(true); 4015 } 4016 } 4017 4018 animateExpand() { 4019 // Set the element as "being expanding" 4020 this.isExpanding = true; 4021 // Get the current fixed height of the element 4022 const startHeight = `${this.el.offsetHeight}px`; 4023 // Calculate the open height of the element (summary height + content height) 4024 const endHeight = `${this.getExpandedHeight()}px`; 4025 4026 // If there is already an animation running 4027 if (this.animation) { 4028 // Cancel the current animation 4029 this.animation.cancel(); 4030 } 4031 4032 // Start a WAAPI animation 4033 this.animation = this.el.animate({ 4034 // Set the keyframes from the startHeight to endHeight 4035 height: [startHeight, endHeight] 4036 }, { 4037 duration: 400, 4038 easing: 'ease-out' 4039 }); 4040 // When the animation is complete, call onAnimationFinish() 4041 this.animation.onfinish = () => this.onAnimationFinish(true); 4042 // If the animation is cancelled, isExpanding variable is set to false 4043 this.animation.oncancel = () => this.isExpanding = false;
4044 } 4045 4046 onAnimationFinish(open) { 4047 // Set the open attribute based on the parameter 4048 this.el.open = open; 4049 // Clear the stored animation 4050 this.animation = null; 4051 // Reset isClosing & isExpanding 4052 this.isClosing = false; 4053 this.isExpanding = false; 4054 // Remove the overflow hidden and the fixed height 4055 this.el.style.height = this.el.style.overflow = ''; 4056 } 4057 } 4058 4059 document.querySelectorAll('.aw-accordion details').forEach((el) => { 4060 try { 4061 if( Accordion.canEnhance(el) ) { 4062 new Accordion(el); 4063 } 4064 } 4065 catch (err) { 4066 } 4067 }); 4068 }); 4069 </script>
4069<script type="text/javascript"> 4070 function getAnalyticsCookie(cname) { 4071 var name = cname + "="; 4072 var decodedCookie = decodeURIComponent(document.cookie); 4073 var ca = decodedCookie.split(';'); 4074 for(var i = 0; i <ca.length; i++) { 4075 var c = ca[i]; 4076 while (c.charAt(0) == ' ') { 4077 c = c.substring(1); 4078 } 4079 if (c.indexOf(name) == 0) { 4080 return c.substring(name.length, c.length); 4081 } 4082 } 4083 return ""; 4084 } 4085 function RecordInternalAnalytics( stream, data ) { 4086 data.action = 'record_event'; 4087 data.stream = stream; 4088 data.contact_id = getAnalyticsCookie('contact_id'); 4089 $.ajax({ 4090 type: 'POST', 4091 url: '/app/analytics-api', 4092 data: data, 4093 dataType: 'json' 4094 }).done( function( data ) { 4095 }); 4096 } 4097 !function(name,path,ctx){ 4098 var latest,prev=name!=='Keen'&&window.Keen?window.Keen:false;ctx[name]=ctx[name]||{ready:function(fn){var h=document.getElementsByTagName('head')[0],s=document.createElement('script'),w=window,loaded;s.onload=s.onerror=s.onreadystatechange=function(){if((s.readyState&&!(/^c|loade/.test(s.readyState)))||loaded){return}s.onload=s.onreadystatechange=null;loaded=1;latest=w.Keen;if(prev){w.Keen=prev}else{try{delete w.Keen}catch(e){w.Keen=void 0}}ctx[name]=latest;ctx[name].ready(fn)};s.async=1;s.src=path;h.parentNode.insertBefore(s,h)}} 4099 }('KeenAsync','https://webcache.attractwell.com/third-party/keen-datavis/keen-tracking-1.1.3.min.js',this); 4100 // was https://d26b395fwzu5fz.cloudfront.net/keen-tracking-1.1.3.min.js 4101 4102 var globalAnalyticsClient = {}; 4103
4104 globalAnalyticsClient.recordEvent = function( stream, data ) { 4105 RecordInternalAnalytics( stream, data ); 4106 } 4107 // Record an event 4108 globalAnalyticsClient.recordEvent("public_page_views", {"url_params":{"sitepath":"store","page-link-path":"store","look_for_page":"1","sub_item":"products","location":"the-r-i-s-e-framework-workbook","rulenum":"5"},"account_id":2052,"type":"website_view","url":"https:\/\/brooksdemming.com",title:document.title}); 4109 4110 4111 4112 4113 4114 function RecordExternalClickAnalytics( url, title, is_signup_link = false ) 4115 { 4116 var type_to_use = "website_link_click"; 4117 if( is_signup_link === true ) 4118 type_to_use = "website_signup_link_click"; 4119 4120 globalAnalyticsClient.recordEvent("public_page_views", { 4121 "url": url, 4122 "title": title, 4123 "type": type_to_use, 4124 "account_id": 2052 4125 }); 4126 4127 4128 RecordInternalAnalytics("public_page_views", { 4129 "url": url, 4130 "title": title, 4131 "type": type_to_use, 4132 "account_id": 2052 4133 }); 4134 4135 } 4136 4137 function RecordContactWebsiteSignUpLinkClick( contact_id ) 4138 { 4139 // records if a contact clicked the website signup link 4140 if( contact_id != '' ) { 4141 $.ajax({ 4142 type: 'POST', 4143 url: '/app/contacts', 4144 data: { 4145 'contact_website_signup_link_click': 1, 4146 'contact_id': contact_id 4147 }, 4148 dataType: 'json' 4149 }).done( function( data ) { 4150 }); 4151 } 4152 } 4153 </script>
4153 <style> 4154 .checkout-field-div { 4155 margin-bottom: 10px; 4156 } 4157 .checkout-field-error { 4158 margin-bottom:5px; 4159 font-size:16px; 4160 text-align:center; 4161 } 4162 .checkout-field-input { 4163 font-size: 1.7rem; 4164 height:auto; 4165 margin-bottom: 1.5rem; 4166 } 4167 .delete-cart-item { 4168 cursor: pointer; 4169 padding: 2px 5px; 4170 } 4171 #toast-container { 4172 z-index: 2001 !important; 4173 } 4174 #cart-prices { 4175 margin: 5px 0; 4176 color: #777777; 4177 background: #f0f0f0; 4178 padding: 5px 0; 4179 } 4180 #cart-subtotal { 4181 padding: 0 5px; 4182 } 4183 #cart-shipping-inner{ 4184 padding: 0 5px; 4185 } 4186 .coupon-description { 4187 margin-left: 20px; 4188 } 4189 .coupon-discounts { 4190 font-style: italic; 4191 margin-left: 20px; 4192 } 4193 .grand-total-div { 4194 font-weight: bold; 4195 background: #e3e3e3; 4196 padding: 4px; 4197 margin-top: 5px; 4198 color: #333333; 4199 } 4200 #cart-panel-sidepanel { 4201 position: fixed; 4202 top: 0; 4203 right: 0; 4204 display: flex; 4205 flex-direction: column; 4206 background-color: #f5f5f5; 4207 width: 375px; 4208 height: 100vh; 4209 max-width: 100%; 4210 overflow-y: auto; 4211 z-index: 2000; 4212 overscroll-behavior-y: contain; 4213 transform: translateX( 400px ); 4214 opacity: 0; 4215 transition: transform 0.3s, opacity 0.3s; 4216 } 4217 #cart-panel-sidepanel.open { 4218 transform: translateX( 0 ); 4219 opacity: 1; 4220 } 4221 @media (max-width: 991px) { 4222 #cart-panel-sidepanel { 4223 width: 100vw; 4224 } 4225 } 4226 .cart-panel-backdrop { 4227 position: fixed; 4228 top: 0; 4229 left: 0; 4230 width: 100vw; 4231 height: 100vh; 4232 background-color: rgba( 33, 33, 33, 0.5 ); 4233 z-index: 1200; 4234 display:none; 4235 opacity: 0; 4236 transition: opacity 0.3s; 4237 } 4238 .cart-panel-backdrop.open { 4239 opacity: 1; 4240 } 4241 .cart-panel-close-button { 4242 position: absolute; 4243 right: 16px; 4244 top: 6px; 4245 z-index: 2001; 4246 font-size: 3.3rem; 4247 cursor: pointer; 4248 padding: 10px; 4249 } 4250 .cart-panel-close-button:hover { 4251 color: #888888; 4252 } 4253 .cart-panel-header { 4254 position: -webkit-sticky; 4255 position: sticky; 4256 top: 0; 4257 z-index: 100; 4258 padding: 20px 24px 5px 24px; 4259 background-color: #f5f5f5; 4260 flex-shrink: 0; 4261 } 4262 .cart-panel-header h3 { 4263 margin-bottom: 10px; 4264 } 4265 .cart-panel-content { 4266 padding: 0 24px 24px; 4267 flex: 1 0; 4268 } 4269 .cart-item { 4270 padding: 10px; 4271 display: grid; 4272 grid-template-columns: 50px 2fr 1fr; 4273 column-gap: 1rem; 4274 } 4275 .cart-item + .cart-item { 4276 border-top: 10px solid #f5f5f5; 4277 } 4278 .cart-item-photo { 4279 grid-column: 1; 4280 grid-row: 1; 4281 } 4282 .cart-item-photo img { 4283 width: 100%; 4284 } 4285 .cart-item-description { 4286 grid-column: 2; 4287 grid-row: 1; 4288 font-size: 15px; 4289 } 4290 .cart-item-price { 4291 grid-column: 3; 4292 grid-row: 1; 4293 font-size: 15px; 4294 text-align: right; 4295 } 4296 .cart-item-quantity { 4297 margin-top: 10px; 4298 } 4299 .cart-item-add-on-div { 4300 font-weight: 300; 4301 color: #888888; 4302 margin-top: 10px; 4303 } 4304 .cart-item-add-on-instructions { 4305 font-weight: 300; 4306 font-style: italic; 4307 font-size: 13px; 4308 } 4309 #cart-contents { 4310 background: white; 4311 clear:both; 4312 } 4313 4314 #store-body { 4315 margin: 1rem 0; 4316 } 4317 .store-top-menu { 4318 background: #fafafa; 4319 padding: 0 0 10px 0; 4320 font-size: 1.75rem; 4321 position: sticky; 4322 top: 60px; z-index: 3; 4323 clear:both; 4324 } 4325 .store-top-menu-item { 4326 display: inline-block; 4327 } 4328 .store-top-menu-item + .store-top-menu-item { 4329 margin-left: 2rem; 4330 } 4331 #search { 4332 transition: all 0.5s ease; 4333 } 4334 4335 .product-framework { 4336 display: grid; 4337 grid-template-columns: 30rem 1fr; column-gap: 3rem; 4338 row-gap: 1rem; 4339 margin-top: 2.5rem; 4340 } 4341 .product-framework-categories { 4342 grid-column: 1; 4343 grid-row: 1; 4344 } 4345 4346 .product-framework-body { 4347 grid-column: 2; 4348 grid-row: 1; 4349 } 4350 @media (max-width:991px) { 4351 .product-framework { 4352 grid-template-columns: 1fr; 4353 } 4354 4355 .product-framework-categories { 4356 grid-column: 1; 4357 grid-row: 2; 4358 } 4359 4360 .product-framework-body { 4361 grid-column: 1; 4362 grid-row: 1; 4363 } 4364 .store-top-menu { 4365 top: 0; 4366 } 4367 } 4368 @media (min-width: 992px) { 4369 .float-left-desktop { 4370 float:left; 4371 } 4372 .product-framework { 4373 margin-top: -1rem; 4374 } 4375 .product-framework-categories { 4376 border-right: 1px solid #eeeeee; 4377 padding-right: 1rem; 4378 padding-top: 3.5rem; 4379 padding-bottom: 3.5rem; 4380 } 4381 .product-framework-body { 4382 padding-top: 3.5rem; 4383 } 4384 } 4385 </style> 4386<div class="store-top-menu"> 4387 <div class="container-fullwidth clearfix"> 4388 <div class="text-center"> 4389 <div class="store-top-menu-item"><a href="https://brooksdemming.com/store">Shop</a></div> 4390 <div class="store-top-menu-item"> 4391 <a href="#" id="search-icon"><i class="icon-line-search" data-toggle="tooltip" data-placement="bottom" title="Search"></i></a> 4392 <form action="https://brooksdemming.com/store/products" style="display:inline-block;"><input id="search" name="search" type="text" placeholder="Search" maxlength="50" class="form-control" style="display:none;width: 0;"></form> 4393 </div> 4394 <div class="store-top-menu-item"><a href="https://brooksdemming.com/store/my-account"><i class="icon-user" data-toggle="tooltip" data-placement="bottom" title="My Account"></i></a></div> 4395 <div class="store-top-menu-item"> 4396 <a href="#" id="cart-icon" data-toggle="tooltip" data-placement="bottom" title="Cart"><i class="icon-shopping-cart"></i><span class="badge" id="cart-item-count" style="visibility: hidden;"></span></a>
4397 <span id="extra-check-out-text"></span> 4398 </div> 4399 </div> 4400 </div> 4401</div> 4402<div class="store-banner-div-wrapper" style="padding: 5px;background-color:#ffffff"><div class="container fr-wrapper"><div>Purchase with ease using <strong id="isPasted">Buy Now, Pay Later</strong> options at checkout!</div></div></div><section id="content" style="margin-bottom:0;"> 4403 <div class="container-fullwidth"> 4404 <div id="store-body"> 4405 <div class="product-framework"> 4406 <div class="product-framework-body"><style> 4407 .individual-product { 4408 font-size: 1.75rem; 4409 margin-bottom: 5rem; 4410 } 4411 .individual-product h1 { 4412 font-size: 3rem !important; 4413 } 4414 .store-products-collections h2 { 4415 font-size: 18px !important; 4416 margin-bottom: 10px; 4417 } 4418 .collections-list { 4419 font-size: 1.75rem; 4420 } 4421 .collection-name { 4422 padding: 0.25rem 0; 4423 } 4424 .products-list { 4425 font-size: 1.75rem; 4426 margin-bottom: 5rem; 4427 } 4428 .selected-product-name { 4429 font-weight: bold; 4430 } 4431 .product-price { 4432 color: #1c2b4a; 4433 font-size: 18px; 4434 font-weight: normal; 4435 opacity: 0.8; 4436 } 4437 .store-sold-out-badge { 4438 display: inline-block; 4439 margin-top: 0.5rem; 4440 padding: 0.15rem 0.75rem; 4441 font-size: 1.3rem; 4442 font-weight: bold; 4443 text-transform: uppercase; 4444 letter-spacing: 0.05rem; 4445 color: #ffffff; 4446 background-color: #888888; 4447 border-radius: 3px; 4448 } 4449 .product-sold-out img, 4450 .product-sold-out svg, 4451 .product-sold-out h2, 4452 .product-sold-out .product-price { 4453 opacity: 0.5; 4454 filter: grayscale(100%); 4455 } 4456 @media (max-width: 991px) { 4457 .collections-list { 4458 text-align: center; 4459 background: #f8f8f8; 4460 margin-left: -8vw; 4461 margin-right: -8vw; 4462 padding: 20px 0; 4463 margin-bottom: -10px; 4464 border-bottom: 1px solid #eeeeee; 4465 } 4466 } 4467 </style>
4467<script src="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.umd.js"></script>
4467 4468<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css"> 4469 4470<style> 4471 html, body { 4472 scroll-behavior: smooth; 4473 } 4474 .add-to-cart { 4475 scroll-margin-top: 110px; 4476 } 4477 .related-products-headline { 4478 font-size: 22px !important; 4479 border-top: 2px solid #f0f0f0; 4480 padding-top: 5px; 4481 margin-top: 30px; 4482 } 4483 .related-product-name { 4484 font-size: 20px; 4485 } 4486 @media( max-width: 991px ) { 4487 .related-products-headline { 4488 text-align: center; 4489 } 4490 .related-product-row .col-md-4 { 4491 text-align: center; 4492 margin-bottom: 30px; 4493 } 4494 } 4495 .product-add-on-item + .product-add-on-item { 4496 margin-top: 10px; 4497 } 4498 .add-on-label > label { 4499 margin-bottom: 5px; 4500 } 4501 .add-on-price { 4502 display: inline-block; 4503 padding-left: 10px; 4504 } 4505 .add-on-customization-div { 4506 margin-left: 1.8rem; 4507 } 4508 .add-on-description { 4509 font-weight: 300; 4510 color: #888888; 4511 margin-left: 1.8rem; 4512 margin-bottom: 1rem; 4513 font-size: 1.4rem; 4514 } 4515 .carousel-photo { 4516 transition: all 0.3s ease; 4517 max-height: 50vh; 4518 display: flex; 4519 margin-left: auto; 4520 margin-right: auto; 4521 cursor: zoom-in; 4522 } 4523 .carousel-photo:hover { 4524 transform: scale( 1.03 ); 4525 } 4526 .video-slide { 4527 cursor: pointer; 4528 } 4529 .play-button { 4530 cursor: pointer; 4531 transition: all 0.3s ease; 4532 } 4533 .play-button:hover { 4534 transform: scale( 1.03 ); 4535 } 4536 .out-of-stock { 4537 color: #888888; 4538 } 4539 .product-model-sku-details { 4540 font-size: 14px; 4541 color: #bbbbbb; 4542 } 4543 .product-name { 4544 margin-bottom: 0; 4545 } 4546 @media (max-width: 991px) { 4547 .product-name { 4548 text-align: center; 4549 } 4550 4551 .product-model-sku-details { 4552 text-align: center; 4553 } 4554 } 4555 4556 #product-carousel { 4557 height: 51vh; 4558 /*margin: 0 auto 1rem auto;*/ 4559 overflow: visible; 4560 4561 --carousel-button-color: #888888; 4562 --carousel-button-bg: rgba( 255, 255, 255, 0.8 ); 4563 /*--carousel-button-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1);*/ 4564 4565 --carousel-button-svg-width: 20px; 4566 --carousel-button-svg-height: 20px; 4567 --carousel-button-svg-stroke-width: 2.5; 4568 } 4569 4570 #product-carousel .carousel__slide { 4571 width: 100%; 4572 padding: 0; 4573 overflow-y: hidden; 4574 } 4575 4576 #product-carousel .carousel__button.is-prev { 4577 /*left: -1.5rem;*/ 4578 } 4579 4580 #product-carousel .carousel__button.is-next { 4581 /*right: -1.5rem;*/ 4582 } 4583 4584 #product-carousel .carousel__button:focus { 4585 outline: none; 4586 box-shadow: 0 0 0 4px #eeaa7b; 4587 } 4588 .product-price { 4589 display: inline-block; 4590 margin-left: 10px; 4591 } 4592 4593 4594</style> 4595<div class="product-content col_last clearfix individual-product"> 4596 4597 4598 <div class="row"><div class="col-md-7"><div id="product-carousel"></div></div><div class="col-md-5"> 4599 <h1 class="product-name">The R.I.S.E. Framework Workbook<div class="product-price"><div>$34</div></div></h1> 4600 4601 <div class="product-model-sku-details"> 4602 </div> 4603 <div class="bottommargin-sm" style="margin-top:10px;" id="quantity-cart-div"> 4604 </div> 4605 4606 <div class="product-overview"><div class="fr-view"><div data-pasted="true"><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">Leadership isn't about having every answer — it's about staying rooted when things get hard, protecting what matters, and moving forward with consistency even when it's uncomfortable. The R.I.S.E. Framework Workbook is your hands-on guide to building exactly that kind of leadership.</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">This is the signature workbook behind the R.I.S.E. Framework — the same system behind Dr. Brooks' coaching, courses, and certification — broken into a guided, work-at-your-own-pace format you can start using today.</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">WHAT YOU GET</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">✓ A 26-page designed PDF workbook (print-ready, instant download)</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">✓ Guided worksheets, diagrams, and reflection prompts for every stage of the R.I.S.E. Framework</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">✓ Delivered as an instant download</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">WHAT'S INSIDE</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">R — Rooted in Purpose</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Core Values worksheet</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Purpose Statement builder</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Why I Lead reflection</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">I — Identify Boundaries</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Boundaries Wheel self-assessment</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Energy Audit (what fills you, what drains you)</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Saying No worksheet</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">S — Strengthen Resilience</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Resilience self-assessment</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Setback Reflection worksheet</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Support System Map</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">E — Execute With Consistency</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- 90-Day Goal Setting</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">
4606- Weekly Accountability Tracker</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Habit Tracker</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">Plus an Action Steps page after each section, and a closing "Bringing It All Together" reflection to tie the whole framework together.</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">WHO THIS IS FOR</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Entrepreneurs and leaders who want a values-driven foundation for how they lead</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Anyone who's felt the pull between purpose and burnout and wants a structured way through it</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- Clients curious about the R.I.S.E. Framework before committing to coaching, the course, or certification</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">HOW IT WORKS</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">This is a digital download — no physical item will ship. After checkout, download your file from "Purchases and Reviews" (desktop recommended). You'll receive:</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">- 1 PDF (The R.I.S.E. Framework Workbook)</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">TERMS OF USE</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">For personal use only. This file may not be resold, redistributed, shared, or repackaged in part or in full. Due to the instant-download nature of this product, all sales are final.</span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;"><br></span></div><div><span style="font-size: 13px; font-family: Comfortaa, sans-serif;">Questions before you buy? Message me — happy to help.</span></div><div><br></div></div></div></div></div><div class="row topmargin"><div class="col-md-12"><div class="fr-view"><div><br></div></div></div></div></div> 4607 4608
4609<script> 4610 var entityMap = { 4611 "&": "&", 4612 "<": "<", 4613 ">": ">", 4614 '"': '"', 4615 "'": ''', 4616 "/": '/' 4617}; 4618 4619function escapeHtml(string) { 4620 if( string === null ) 4621 return ''; 4622 return String(string).replace(/[&<>"'\/]/g, function (s) { 4623 return entityMap[s]; 4624 }); 4625} 4626 4627function abbreviateText( text, max_length ) 4628{ 4629 if( typeof max_length == 'undefined' ) 4630 max_length = 30; 4631 4632 var display_text = text; 4633 4634 if( text.length > (max_length + 5)) 4635 display_text = text.substr( 0, max_length ) + '...'; 4636 4637 return display_text; 4638} 4639 4640function htmlToText( html ) { 4641 var d = document.createElement( 'div' ); 4642 d.innerHTML = html; 4643 return d.textContent; 4644} 4645 4646function insertStringAtCursor( field_object, string_to_insert ) 4647{ 4648 if (document.selection) { 4649 field_object.focus(); 4650 sel = document.selection.createRange(); 4651 sel.text = string_to_insert; 4652 } 4653 else if (field_object.selectionStart || field_object.selectionStart == '0') { 4654 var startPos = field_object.selectionStart; 4655 var endPos = field_object.selectionEnd; 4656 field_object.value = field_object.value.substring(0, startPos) 4657 + string_to_insert 4658 + field_object.value.substring(endPos, field_object.value.length); 4659 } else { 4660 field_object.value += string_to_insert; 4661 } 4662} let product_id = 6581; 4663 let product_media = [{"id":12404,"account_id":2052,"store_product_id":6581,"media_type":"image","media_url":"https:\/\/attractwell-2052-fast.b-cdn.net\/images\/2052\/6a4ed36c1c037.png","media_thumb_url":"https:\/\/attractwell-2052-fast.b-cdn.net\/images\/2052\/6a4ed36c1c038-thumb.png","media_provider":null,"display_order":1}]; 4664 let base_product = {"name":"The R.I.S.E. Framework Workbook","media_url":"https:\/\/attractwell-2052-fast.b-cdn.net\/images\/2052\/6a4ed36c1c037.png","price":"34.00","sale_price":null,"is_sale_active":false,"inventory_count":null,"max_qty":null,"show_only_variants":0,"product_type":"digital","variants":[],"add_ons":[]}; 4665 4666 function FormatPriceWithZeroOrTwoDecimals( price ) 4667 { 4668 let decimals = 2; 4669 let temp_price = parseFloat( price ); 4670 if( price.endsWith( '.00' ) ) 4671 decimals = 0; 4672 4673 return temp_price.toLocaleString('en-US', { maximumFractionDigits: decimals }); } 4674 function ShowMedia( selected_index ) 4675 { 4676 let fancybox = Fancybox.show([ 4677 {src: 'https://attractwell-2052-fast.b-cdn.net/images/2052/6a4ed36c1c037.png', type: 'image'}, ]); 4678 fancybox.jumpTo( selected_index - 1 ); 4679 } 4680
4681 function RenderQuantityAndAddToCart() 4682 { 4683 const productVaultFullMessage = ""; 4684 if( productVaultFullMessage !== '' ) { 4685 $('#quantity-cart-div').html( 4686 '<div class="out-of-stock" style="margin-top:10px;">' + $('<div>').text( productVaultFullMessage ).html() + '</div>' 4687 ); 4688 return; 4689 } 4690 const storeVariantFullMessages = []; 4691 const storeAddonFullMessages = []; 4692 4693 let s = ''; 4694 4695 let all_product_variants = []; 4696 4697 if( base_product.show_only_variants != '1' ) 4698 all_product_variants = [{ 4699 'id': null, 4700 'variant_name': base_product.name, 4701 'price': base_product.price, 4702 'sale_price': base_product.sale_price, 4703 'inventory_count': base_product.inventory_count, 4704 'max_qty': base_product.max_qty 4705 }]; 4706 4707 for( let i = 0; i < base_product.variants.length; i++ ) { 4708 let variant = base_product.variants[i]; 4709 all_product_variants.push( { 4710 'id': variant.id, 4711 'variant_name': variant.variant_name, 4712 'price': variant.price, 4713 'sale_price': variant.sale_price, 4714 'inventory_count': variant.inventory_count 4715 }); 4716 } 4717 if( all_product_variants.length > 1 ) { 4718 s += '<div id="variants-dropdown-div" style="margin-bottom: 10px;">' + 4719 '<select id="product-variant" class="form-control">'; 4720 for( let i = 0; i < all_product_variants.length; i++ ) { 4721 let variant = all_product_variants[i]; 4722 let price_html = ' '; 4723 if( typeof variant.price === 'string' ) 4724 price_html += store_currency_symbol + FormatPriceWithZeroOrTwoDecimals( variant.price ); 4725 else 4726 price_html += store_currency_symbol + FormatPriceWithZeroOrTwoDecimals( base_product.price ); 4727 4728 if( typeof variant.sale_price === 'string' && base_product.is_sale_active ) 4729 price_html += ' SALE: ' + store_currency_symbol + FormatPriceWithZeroOrTwoDecimals( variant.sale_price ); 4730 else if( base_product.is_sale_active && typeof variant.price !== 'string' && typeof base_product.sale_price === 'string' ) 4731 price_html += ' SALE: ' + store_currency_symbol + FormatPriceWithZeroOrTwoDecimals( base_product.sale_price ); 4732 4733 s += '<option value="' + (variant.id !== null ? escapeHtml(variant.id) : '') + '">' + 4734 escapeHtml( variant.variant_name ) + 4735 price_html + 4736 (variant.inventory_count > 0 && variant.inventory_count <= 3 ? ' - Only ' + variant.inventory_count + ' in stock!' : '') + 4737 '</option>'; 4738 } 4739 s += '</select></div>'; 4740 } 4741 4742 4743 if( Array.isArray( base_product.add_ons ) && base_product.add_ons.length > 0 ) { 4744 s += '<div id="add-ons-div">'; 4745 for( let i = 0; i < base_product.add_ons.length; i++ ) { 4746 let add_on = base_product.add_ons[i]; 4747 let price_html; 4748 let allows_customization = (add_on.allow_user_input_customization_text == 1); 4749 if( base_product.is_sale_active ) 4750 price_html = ''; 4751 else 4752 price_html = ''; 4753 4754 let addOnFullMessage = ( typeof storeAddonFullMessages[ add_on.id ] !== 'undefined' ) ? storeAddonFullMessages[ add_on.id ] : ''; 4755 4756 s += '<div class="product-add-on-item">' + 4757 '<div class="add-on-label">' + 4758 '<input type="checkbox" id="add-on-item-' + i + '" name="add-on[]" value="' + escapeHtml( add_on.id ) + '" ' + 4759 ( addOnFullMessage !== '' ? 'disabled ' : '' ) + 4760 'data-add-on-index="' + i + '" style="margin-right: 5px;" class="' + 4761 (allows_customization ? 'has-add-on-customization' : '') + 4762 '" data-add-on-index="' + i + '">' + 4763 '<label for="add-on-item-' + i + '"' + ( addOnFullMessage !== '' ? ' style="opacity:0.6;"' : '' ) + '>
4763' + escapeHtml( add_on.option_name ) + 4764 ( addOnFullMessage !== '' ? ' <strong style="color:#c0392b;">(Full)</strong>' : '' ) + '</label>' + 4765 (typeof add_on.pricing_html === 'string' ? '<span class="add-on-price">' + add_on.pricing_html + '</span>' : '') + 4766 '</div>' + 4767 (typeof add_on.description === 'string' && add_on.description.trim() !== '' 4768 ? '<div class="add-on-description">' + escapeHtml( add_on.description ) + '</div>' 4769 : '' ) + 4770 (allows_customization 4771 ? '<div class="add-on-customization-div" id="add-on-customization-div' + i + '" style="display:none;">' + 4772 '<textarea maxlength="500" id="add-on-customization-instructions' + i + '" data-add-on-index="' + i + '" class="form-control" ' + 4773 'placeholder="' + (typeof add_on.customization_instructions === 'string' && add_on.customization_instructions !== '' ? add_on.customization_instructions : 'Enter personalization instructions') + 4774 '"></textarea></div>' 4775 : '') + 4776 '</div>'; 4777 } 4778 s += '</div>'; 4779 } 4780 4781 for( let variant_index = 0; variant_index < all_product_variants.length; variant_index++ ) { 4782 let product = all_product_variants[variant_index]; 4783 let max_quantity = null; 4784 s += '<div class="variant-control" id="variant' + variant_index + '" data-variant-index="' + escapeHtml( variant_index ) + '" ' + 4785 'data-variant-id="' + escapeHtml(all_product_variants['variant_id']) + '" ' + 4786 (variant_index === 0 ? '' : ' style="display:none;"') + '>'; 4787 4788 if( product.inventory_count === null || typeof product.inventory_count === 'undefined' || product.inventory_count > 20 ) 4789 max_quantity = 20; 4790 else if( product.inventory_count > 0 ) 4791 max_quantity = product.inventory_count; 4792 else if( product.inventory_count === 0 || product.inventory_count === '0' ) 4793 max_quantity = 0; 4794 4795 if( product.max_qty !== null && product.max_qty < max_quantity ) 4796 max_quantity = product.max_qty; 4797 4798 let variantFullMessage = ( product.id !== null && typeof storeVariantFullMessages[ product.id ] !== 'undefined' ) 4799 ? storeVariantFullMessages[ product.id ] : ''; 4800 4801 if( variantFullMessage !== '' ) 4802 s += '<div class="out-of-stock">' + $('<div>').text( variantFullMessage ).html() + '</div>'; 4803 else if( max_quantity === 0 ) 4804 s += '<div class="out-of-stock">Out of stock</div>'; 4805 else { 4806 s += '<div class="text-center-mobile" style="margin-bottom:5px;margin-top: 10px;">'; 4807 if( max_quantity === 1 ) 4808 s += '<input type="hidden" name="quantity' + variant_index + '" id="quantity' + variant_index + '" value="1">'; 4809 else { 4810 s += '<select id="quantity' + variant_index + '" class="variant-quantity-control form-control" style="width:auto;display: inline-block;">'; 4811 for( let i = 1; i <= max_quantity; i++ ) 4812 s += '<option value="' + i + '">Qty: ' + i + '</option>'; 4813 s += '</select>'; 4814 } 4815 s += ' <button id="add-to-cart" type="button" class="add-to-cart button button-leaf nomargin" style="display: inline-block;">Add to ' + "Cart" + '</button>'; 4816 } 4817 s += '</div></div>'; 4818 } 4819 4820 if( base_product.product_type === 'listing only' ) 4821 s = ''; 4822 4823 $('#quantity-cart-div').html( s ); 4824 } 4825 4826 4827 $(function() { 4828 let product_photo_carousel = new Carousel(document.querySelector("#product-carousel"), { 4829 // infinite: false, 4830 // fill: false, 4831 Dots: false, 4832 // slidesPerPage: 1, 4833 slides: [ 4834 {html: '<img src="https://attractwell-2052-fast.b-cdn.net/images/2052/6a4ed36c1c037.png" class="carousel-photo" data-media-index="1" loading="lazy">'}, ] 4835 }); 4836
4837 $('#product-carousel').on('click','.carousel-photo', function() { 4838 ShowMedia( $(this).attr('data-media-index') ); 4839 return false; 4840 }).on('click','.play-button', function() { 4841 ShowMedia( $(this).attr('data-media-index') ); 4842 return false; 4843 }); 4844 4845 $('#quantity-cart-div').on('change','#product-variant', function() { 4846 $('.variant-control').hide(); 4847 $('#variant' + $(this)[0].selectedIndex ).show(); 4848 }) 4849 .on('change','.has-add-on-customization', function() { 4850 let add_on_index = $(this).attr('data-add-on-index'); 4851 if( $(this).is(':checked') ) 4852 $('#add-on-customization-div' + add_on_index ).slideDown(); 4853 else 4854 $('#add-on-customization-div' + add_on_index ).slideUp(); 4855 }); 4856 $('body').on('click','.add-to-cart, [href=#add]',function() { 4857 let product_variant_control = $('#product-variant'); 4858 let selected_variant_index = 0; 4859 let add_ons = []; 4860 let variant_id = ''; 4861 let variant_name = ''; 4862 let price, sale_price; 4863 4864 let has_variants = (product_variant_control.length > 0); 4865 if( has_variants ) { 4866 selected_variant_index = product_variant_control[0].selectedIndex; 4867 4868 variant_id = product_variant_control.val(); 4869 if (typeof variant_id !== 'string') 4870 variant_id = ''; 4871 4872 if( variant_id === '' ) { 4873 price = base_product.price; 4874 sale_price = ( base_product.is_sale_active ? base_product.sale_price : '' ); 4875 } 4876 else { 4877 for( let i = 0; i < base_product.variants.length; i++ ) { 4878 let variant = base_product.variants[i]; 4879 if( variant.id == variant_id ) { 4880 price = variant.price; 4881 sale_price = ( base_product.is_sale_active ? variant.sale_price : '' ); 4882 if( base_product.is_sale_active && sale_price == '' ) 4883 sale_price = price; 4884 if( base_product.is_sale_active && sale_price == '' ) 4885 sale_price = base_product.sale_price; 4886 if( base_product.is_sale_active && sale_price == '' ) 4887 sale_price = base_product.price; 4888 variant_name = variant.variant_name; 4889 break; 4890 } 4891 } 4892 if( price === null || price === '' ) 4893 price = base_product.price; 4894 } 4895 } 4896 else { 4897 price = base_product.price; 4898 sale_price = (base_product.is_sale_active ? base_product.sale_price : ''); 4899 } 4900 for( let i = 0; i < base_product.add_ons.length; i++ ) { 4901 let add_on_checkbox = $('#add-on-item-' + i ); 4902 if( add_on_checkbox.is(':checked') ) {
4903 let add_on_id = add_on_checkbox.val(); 4904 let add_on_index = add_on_checkbox.attr('data-add-on-index'); 4905 let add_on = base_product.add_ons[add_on_index]; 4906 4907 let instructions = $('#add-on-customization-instructions' + i ).val(); 4908 if( typeof instructions !== 'string' ) 4909 instructions = ''; 4910 4911 instructions = instructions.trim(); 4912 4913 add_ons.push( { 4914 id: add_on_id, 4915 name: add_on.option_name, 4916 instructions: instructions, 4917 price_difference: add_on.price_difference, 4918 sale_price_difference: (base_product.is_sale_active ? add_on.sale_price_difference : ''), 4919 allow_user_input_customization_text: add_on.allow_user_input_customization_text 4920 }); 4921 } 4922 } 4923 4924 let quantity_control = $('#quantity' + selected_variant_index ); 4925 let quantity = quantity_control.val(); 4926 let max_quantity = (quantity_control[0].tagName === 'SELECT' ? quantity_control[0].options[ quantity_control[0].options.length - 1 ].value : quantity_control[0].value); 4927 4928 if( typeof quantity !== 'string' ) 4929 quantity = '1'; 4930 if( typeof max_quantity !== 'string' || max_quantity < 1 ) 4931 max_quantity = '1'; 4932 4933 AddProductToCart({ 4934 product_id: product_id, 4935 product_name: base_product.name, 4936 product_image_url: base_product.media_url, 4937 quantity: parseInt( quantity, 10 ), 4938 max_quantity: parseInt( max_quantity, 10 ), 4939 price: price, 4940 sale_price: sale_price, 4941 variant_id: variant_id, 4942 variant_name: variant_name, 4943 add_ons: add_ons 4944 }); 4945 4946 return false; 4947 }); 4948 4949 RenderQuantityAndAddToCart(); 4950 }); 4951</script>
4951</div><div class="product-framework-categories"><div class="no-print collections-list"> 4952 <div class="sidebar-widgets-wrap"> 4953 <div class="widget widget_links clearfix"> 4954 4955 <div class="collection-name"><a href="https://brooksdemming.com/store/products">All Products</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/consulting">1:1 Consulting</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/coaching-certification">Coach Certification</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/courses">Courses</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/digital-templates">Digital Templates</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/notary-services">Notary Services</a></div><div class="collection-name"><a href="https://brooksdemming.com/store/collections/sponsorship-advertise-with-us">Sponsorship / Advertise With Us</a></div> </div> 4956 </div> 4957 </div></div> </div> 4958 </div> 4959 </div> 4960 4961 </section> 4962<div id="cart-panel" style="display:none;"> 4963 <div class="cart-panel-backdrop"></div> 4964 <div id="cart-panel-sidepanel"> 4965 <div class="cart-panel-header"> 4966 <div class="cart-panel-close-button"> 4967 × 4968 </div> 4969 <h3>Cart</h3> 4970 <div id="check-out-now-div" style="padding: 0 24px 10px;display:none; text-align:center;"> 4971 <button class="button button-green nomargin btn-block" id="check-out-now-button">Check Out Now</button> 4972 <button class="button button-white button-light button-small btn-block" style="margin: 5px 0 0 0;" id="cart-panel-continue-shopping">Continue Shopping</button> 4973 </div> 4974 <div id="cart-prices"> 4975 <div id="cart-subtotal" class="text-center-mobile text-right-desktop" style="margin-bottom:5px;"></div> 4976 <div id="cart-shipping" class="text-center-mobile text-right-desktop" style="margin-bottom:5px;"></div> 4977 <div id="cart-coupon-code" class="text-center"> 4978 <label for="coupon-code" style="font-weight: 400 !important; font-size: 14px !important; letter-spacing: normal;">Coupon code</label> 4979 <input type="text" maxlength="20" id="coupon-code" name="coupon-code" class="form-control" style="letter-spacing:normal; width: 8rem;display:inline-block;height: auto; font-size: 12px; padding: 4px 6px;" autocomplete="one-time-code"> 4980 <button type="button" class="button button-mini button-white button-light" id="apply-coupon-button">Apply</button> 4981 </div> 4982 </div> 4983 </div> 4984 <div class="cart-panel-content"> 4985 <div id="cart-contents"></div> 4986 </div> 4987 </div> 4988</div> 4989 4990<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="loginModalLabel" aria-hidden="true"> 4991 <div class="modal-dialog xmodal-lg"> 4992 <div class="modal-body"> 4993 <div class="modal-content"> 4994 <div class="modal-body"> 4995 <button type="button" class="close pull-right" data-dismiss="modal" aria-hidden="true">×</button> 4996 <!-- 4997 <h4 class="uppercase ls1" style="margin-bottom:10px;" id="loginModalLabel"> 4998 Check Out 4999 </h4> 5000 --> 5001 5002 <h4 style="clear:both;text-align: center;"> 5003 What is your email? 5004 </h4> 5005 5006 <div class="checkout-field-div" id="account-email-div"> 5007 <div id="account-email-error-message" class="checkout-field-error" style="display:none;">Please enter a valid email address.</div> 5008 <input type="email" maxlength="100" placeholder="Email Address" id="account-email" class="form-control checkout-field-input" style="margin-bottom:5px;"> 5009 <div class="text-center"> 5010 <input type="checkbox" id="account-create-checkbox" style="margin: 10px 0 0 0;"> 5011 <label for="account-create-checkbox" class="thin-font">Create an account with this email</label> 5012 </div> 5013 </div> 5014 5015 <div class="checkout-field-div" style="display:none;" id="account-password-div"> 5016 <div id="account-password-error-message" class="checkout-field-error" style="display:none;">Password must be at least 8 characters.</div> 5017 <input type="password" placeholder="Password" id="account-password" class="form-control checkout-field-input" data-toggle="tooltip" title="Enter your account password." autocomplete="new-password"> 5018 </div> 5019 5020 <div class="checkout-field-div" style="display:none;" id="account-name-div"> 5021 <div id="account-name-error-message" class="checkout-field-error" style="display:none;">Please enter your full name.</div> 5022 <input type="text" maxlength="50" placeholder="Your Full Name" id="account-name" class="form-control checkout-field-input"> 5023 </div> 5024 5025 <div id="account-password-not-working" style="display:none;" class="text-center bottommargin-sm"> 5026 <a href="https://brooksdemming.com/members?password-not-working=1" target="_blank"> 5027 Password not working? 5028 </a> 5029 </div> 5030 5031 <button class="button button-leaf btn-block" style="margin: 0 0 10px 0;" id="checkout-continue-button">Continue</button> 5032 </div> 5033 </div> 5034 </div> 5035 </div> 5036</div> 5037 5038
5039<script> 5040 let legacy_storage_prefix = ''; 5041 let storage_prefix = legacy_storage_prefix + "store389_"; 5042 let cart_key = storage_prefix + 'cart_contents', coupon_key = storage_prefix + 'cart_coupon', discount_key = storage_prefix + 'cart_discount'; 5043 let store_id = 389; 5044 let store_currency_symbol = "$"; 5045 5046 if( localStorage.getItem( cart_key ) === null && localStorage.getItem( legacy_storage_prefix + 'cart_contents' ) !== null ) { 5047 ['cart_contents', 'cart_coupon', 'cart_discount'].forEach( function( key_suffix ) { 5048 const legacy_value = localStorage.getItem( legacy_storage_prefix + key_suffix ); 5049 if( legacy_value !== null ) { 5050 localStorage.setItem( storage_prefix + key_suffix, legacy_value ); 5051 localStorage.removeItem( legacy_storage_prefix + key_suffix ); 5052 } 5053 }); 5054 } 5055 let tax_enabled = true; 5056 let global_cart_subtotal, global_discounted_cart_subtotal, global_cart_grand_total; 5057 5058 function StartCheckout( extra_data = null ) 5059 { 5060 let cart_contents = GetCartContents(); 5061 toastr.clear(); 5062 toastr.info('Please wait...'); 5063 let data = { 5064 cart_contents: cart_contents, 5065 coupon_code: GetCartCouponCode(), 5066 create_account: $('#account-create-checkbox').is(':checked') ? 1 : 0, 5067 store_id: store_id, 5068 }; 5069 if( typeof extra_data === 'object' ) 5070 data = { ...data, ...extra_data }; 5071 5072 $.ajax({ 5073 url: "https:\/\/brooksdemming.com\/store\/cart\/start-checkout", 5074 method: "POST", 5075 dataType: "json", 5076 data: data 5077 }) 5078 .done(function( data_obj ) { 5079 toastr.clear(); 5080 if( data_obj.success ) { 5081 5082 if( data_obj.data === 'new_customer' ) { 5083 $('#account-name-div').slideDown(); 5084 setTimeout( () => {$('#account-name').focus(); EnableControl('checkout-continue-button'); }, 300); 5085 } 5086 else if( data_obj.data === 'check_password_match' ) { 5087 toastr.error('Please check your password.'); 5088 EnableControl('checkout-continue-button'); 5089 $('#account-password-div').slideDown(); 5090 $('#account-password-not-working').slideDown(); 5091 $('#account-password').focus(); 5092 } 5093 else if( data_obj.data === 'missing_payment_processor' ) 5094 toastr.error('Please set up a payment processor under Store Settings or <a href="/app/store-setup/settings" target="_blank">click here to go to Store Settings</a>.'); 5095 else 5096 location.href = data_obj.results.checkout_url; 5097 } 5098 5099 else if( data_obj.code === 'check_email' ) { 5100 toastr.error('Please check your email address.'); 5101 $('#account-email').focus(); 5102 EnableControl('checkout-continue-button'); 5103 } 5104 5105 else if( data_obj.code === 'show_password' ) { 5106 EnableControl('checkout-continue-button'); 5107 $('#account-password-div').slideDown(); 5108 $('#account-password').focus(); 5109 } 5110 5111 else if( data_obj.code === 'check_password' ) { 5112 toastr.error('Please check your password. It needs to be at least 8 characters in length.'); 5113 EnableControl('checkout-continue-button'); 5114 $('#account-password-div').slideDown(); 5115 $('#account-password').focus(); 5116 } 5117 else if( data_obj.code === 'try_again' ) { 5118 EnableControl('checkout-continue-button'); 5119 toastr.error('Please try again in a few minutes. If this persists, please contact support.'); 5120 } 5121 5122 else if( data_obj.code === 'use_another_email' ) { 5123 EnableControl('checkout-continue-button'); 5124 toastr.error('Please contact the store owner to purchase, or use another email address.'); 5125 } 5126 5127 else if( data_obj.code === 'cart_empty' ) { 5128 toastr.error('Cart is empty or all of your items are out of stock. Please add at least one item to the cart and try again.'); 5129 EnableControl('checkout-continue-button'); 5130 } 5131 5132 else if( data_obj.code === 'cart_zero' ) { 5133 toastr.error('Please place at least $1 into the cart to be able to check out.'); 5134 EnableControl('checkout-continue-button'); 5135 } 5136 5137 else if( data_obj.code === 'vault_full' ) { 5138 EnableControl('checkout-continue-button'); 5139 toastr.error( data_obj.message, '', { timeOut: 20000 } ); 5140 } 5141 5142 else if( data_obj.message.startsWith( 'Stripe Tax has not been activated' ) ) 5143 toastr.error('Stripe Tax has not been activated. Please do so in the Stripe control panel, or disable tax collection inside your Str
5143ipe account. Email [email protected] if you have questions about enabling this.'); 5144 5145 else if( data_obj.code === 'no_payment_methods' ) { 5146 EnableControl('checkout-continue-button'); 5147 toastr.error('Payment Setup Incomplete: This store is not yet configured to accept payments in your selected currency. Please contact Brooks Demming at [email protected] to activate USD in the Stripe Dashboard.'); 5148 } 5149 5150 else { 5151 EnableControl('checkout-continue-button'); 5152 toastr.error('Something went wrong during checkout. Please try again in a few minutes or email [email protected] if it persists.'); 5153 } 5154 5155 }) 5156 .fail(function( jqXHR, textStatus ) { 5157 toastr.error( "Request failed: " + textStatus, 'Something went wrong during checkout. Please try again in a few minutes or email [email protected] if it persists.' ); 5158 EnableControl('checkout-continue-button'); 5159 }); 5160 5161 return false; 5162 } 5163 5164 function CheckEnterKeyPress( evt ) 5165 { 5166 if( evt.keyCode === 13 ) 5167 $('#checkout-continue-button').click(); 5168 } 5169 5170 function ValidateCheckoutName() 5171 { 5172 let name_control = $('#account-name'); 5173 let name_error_message_control = $('#account-name-error-message'); 5174 let name = name_control.val(); 5175 if( name.length < 2 || !name.includes(' ') ) { 5176 name_error_message_control.slideDown(); 5177 name_control.css('border','2px solid red').focus(); 5178 return false; 5179 } 5180 EnableControl('checkout-continue-button'); 5181 5182 name_error_message_control.slideUp(); 5183 name_control.css('border',''); 5184 return name; 5185 } 5186 5187 function ValidateCheckoutPassword() 5188 { 5189 let password_control = $('#account-password'); 5190 let password_error_message_control = $('#account-password-error-message'); 5191 let password = password_control.val(); 5192 if( password.length < 8 || password === $('#account-email').val() ) { 5193 password_error_message_control.slideDown(); 5194 password_control.css('border','2px solid red').focus(); 5195 return false; 5196 } 5197 5198 EnableControl('checkout-continue-button'); 5199 password_error_message_control.slideUp(); 5200 password_control.css('border',''); 5201 return password; 5202 } 5203 5204 function ValidateCheckoutEmailAddress() 5205 { 5206 let email_control = $('#account-email'); 5207 let email_error_message_control = $('#account-email-error-message'); 5208 let email = email_control.val(); 5209 if( !email.includes('@') || !email.includes('.') ) { 5210 email_error_message_control.slideDown(); 5211 email_control.css('border','2px solid red').focus(); 5212 return false; 5213 } 5214 5215 EnableControl('checkout-continue-button'); 5216 email_error_message_control.slideUp(); 5217 email_control.css('border',''); 5218 return email; 5219 } 5220 5221 function DisableControl( button_id ) 5222 { 5223 $('#' + button_id ).css('pointer-events','none').css('opacity','0.5').css('filter','grayscale(1)').attr('disabled','disabled'); 5224 } 5225 5226 function EnableControl( button_id ) 5227 { 5228 $('#' + button_id ).css('pointer-events','auto').css('opacity','1').css('filter','grayscale(0)').attr('disabled',false); 5229 } 5230 5231 $(function() { 5232 setInterval( UpdateCartBadge, 2000 ); 5233 UpdateCartBadge(); 5234 5235 global_cart_subtotal = BigNumber('0.00'); 5236 $('#search-icon').click( function() { 5237 $('#search').show().css('width','15rem').focus(); 5238 return false; 5239 }); 5240 $('.cart-panel-backdrop').click( CloseCart ); 5241 $('.cart-panel-close-button').click( CloseCart ); 5242 $('#cart-panel-continue-shopping').click( CloseCart ); 5243 $('#loginModal').on('show.bs.modal', function () { 5244 $('#account-password-error-message').hide(); 5245 $('#account-password-div').hide(); 5246 $('#account-name-error-message').hide(); 5247 $('#account-name-div').hide(); 5248 }) 5249 .on('shown.bs.modal', function () { 5250 $('#account-email').focus(); 5251 }); 5252 5253 $('#cart-subtotal').on('click','.remove-coupon-code',function() { 5254 Swal.fire({ 5255 title: 'Do you wish to remove this coupon code from your order?<br><br>' + GetCartCouponCode(),
5256 showDenyButton: false, 5257 showCancelButton: true, 5258 confirmButtonText: "Yes" 5259 }).then((result) => { 5260 if (result.isConfirmed) { 5261 SetCartCouponCode(); 5262 SetCartDiscount(); 5263 RenderCartContents(); 5264 } 5265 }); 5266 return false; 5267 }); 5268 $('#extra-check-out-text').on('click','#extra-check-out-link', function() { 5269 OpenCart(); 5270 return false; 5271 }) 5272 $('#check-out-now-button').click( function() { 5273 CloseCart(); 5274 $('#loginModal').modal('show'); 5275 5276 }); 5277 5278 $('#coupon-code').on('keydown', function( evt ) { 5279 if( evt.keyCode === 13 ) 5280 $('#apply-coupon-button').click(); 5281 }); 5282 5283 $('#apply-coupon-button').click( function() { 5284 toastr.info('Applying coupon...'); 5285 let existing_coupon = GetCartCouponCode(); 5286 let new_coupon = $('#coupon-code').val().trim(); 5287 if( existing_coupon !== new_coupon ) { 5288 let cart = GetCartContents(); 5289 if( cart.length === 0 ) { 5290 toastr.clear(); 5291 return false; 5292 } 5293 5294 let data = { 5295 cart_contents: cart, 5296 coupon_code: new_coupon, 5297 store_id: store_id 5298 }; 5299 $.ajax({ 5300 url: "https:\/\/brooksdemming.com\/store\/cart\/apply-coupon", 5301 method: "POST", 5302 dataType: "json", 5303 data: data, 5304 coupon_code: new_coupon 5305 }) 5306 .done(function( data_obj ) { 5307 toastr.clear(); 5308 if( data_obj.success ) { 5309 SetCartDiscount( data_obj.results ); 5310 SetCartCouponCode( this.coupon_code ); 5311 RenderCartContents(); 5312 } 5313 }) 5314 .fail(function( jqXHR, textStatus ) { 5315 SetCartDiscount(); 5316 SetCartCouponCode(); 5317 RenderCartContents(); 5318 }); 5319 } 5320 else 5321 toastr.clear(); 5322 }); 5323 5324 $('#account-email').change( function() { 5325 ValidateCheckoutEmailAddress(); 5326 $('#account-name-div').slideUp(); 5327 } ).keypress( CheckEnterKeyPress ); 5328 5329 $('#account-password').change( function() { 5330 ValidateCheckoutPassword(); 5331 $('#account-name-div').slideUp(); 5332 }).keypress( CheckEnterKeyPress ); 5333 5334 $('#account-name').change( ValidateCheckoutName ).keypress( CheckEnterKeyPress ); 5335 5336 $('#checkout-continue-button').click( function() { 5337 let email = ValidateCheckoutEmailAddress(); 5338 if( email === false ) 5339 return false; 5340 5341 let create_account = $('#account-create-checkbox').is(':checked'); 5342 5343 5344 if( create_account && $('#account-password-div').css('display') === 'none' ) { 5345 DisableControl('checkout-continue-button'); 5346 5347 $('#account-password-error-message').hide(); 5348 $('#account-password-div').slideDown(); 5349 setTimeout(() => { 5350 EnableControl('checkout-continue-button'); 5351 $('#account-password').focus(); 5352 }, 300) 5353 } 5354 else { 5355 if( create_account && ValidateCheckoutPassword() === false ) 5356 return false; 5357 5358 let account_name_visible = ($('#account-name-div').css('display') !== 'none'); 5359 let account_name = (account_name_visible ? $('#account-name').val().trim() : ''); 5360 if( account_name_visible && account_name === '' ) { 5361 $('#account-name-error-message').slideDown(); 5362 $('#account-name').focus(); 5363 return false;
5364 } 5365 DisableControl('checkout-continue-button'); 5366 StartCheckout({ 5367 'email': $('#account-email').val(), 5368 'password': $('#account-password').val(), 5369 'customer_name': account_name 5370 }); 5371 } 5372 }); 5373 5374 $('#cart-icon').click( function() { 5375 OpenCart(); 5376 return false; 5377 }); 5378 $('#cart-contents').on('change','.cart-item-quantity-select', function() { 5379 let cart_index = $(this).attr('data-index'); 5380 let new_quantity = parseInt( $(this).val(), 10 ); 5381 let cart = GetCartContents(); 5382 if( new_quantity === 0 ) { 5383 Swal.fire({ 5384 title: 'Are you sure you wish to remove this item from your cart?', 5385 showDenyButton: false, 5386 showCancelButton: true, 5387 confirmButtonText: "Yes" 5388 }).then((result) => { 5389 if (result.isConfirmed) { 5390 cart.splice(cart_index, 1); 5391 SetCartContents( cart ); 5392 RenderCartContents(); 5393 } 5394 }); 5395 } 5396 else { 5397 cart[cart_index].quantity = new_quantity; 5398 5399 SetCartContents( cart ); 5400 RenderCartContents(); 5401 } 5402 }) 5403 .on('click', '.delete-cart-item', function() { 5404 let cart_index = $(this).attr('data-index'); 5405 let cart = GetCartContents(); 5406 Swal.fire({ 5407 title: 'Are you sure you wish to remove this item from your cart?', 5408 showDenyButton: false, 5409 showCancelButton: true, 5410 confirmButtonText: "Yes" 5411 }).then((result) => { 5412 if (result.isConfirmed) { 5413 cart.splice(cart_index, 1); 5414 SetCartContents( cart ); 5415 RenderCartContents(); 5416 } 5417 }); 5418 }) 5419 .on('click','.edit-cart-item-add-on-instructions', function() { 5420 let cart_index = $(this).attr('data-cart-index'); 5421 let add_on_index = $(this).attr('data-add-on-index'); 5422 let cart = GetCartContents(); 5423 if( Array.isArray( cart ) && Array.isArray( cart[ cart_index ].add_ons ) ) { 5424 let selector_suffix = cart_index + '-' + add_on_index; 5425 let instructions_div = $('#cart-item-add-on-instructions-' + selector_suffix ); 5426 let instructions = cart[ cart_index ].add_ons[ add_on_index ].instructions; 5427 let s = '<textarea class="form-control" id="cart-item-instructions-textarea-' + selector_suffix + '">' + 5428 (typeof instructions === 'string' ? escapeHtml( instructions ) : '') + '</textarea>' + 5429 '<button type="button" class="btn-small save-cart-item-instructions button button-white button-light btn-block" style="margin: 5px 0 0 0;" ' + 5430 'data-cart-index="' + cart_index + '" data-add-on-index="' + add_on_index + '">Save</button>'; 5431 instructions_div.html( s ); 5432 $('#cart-item-instructions-textarea-' + selector_suffix).focus(); 5433 } 5434 }) 5435 .on('click','.save-cart-item-instructions',function() { 5436 let cart_index = $(this).attr('data-cart-index'); 5437 let add_on_index = $(this).attr('data-add-on-index'); 5438 let instructions_div = $('#cart-item-add-on-instructions-' + cart_index + '-' + add_on_index ); 5439 let cart = GetCartContents(); 5440 if( Array.isArray( cart ) && Array.isArray( cart[ cart_index ].add_ons ) ) { 5441 let new_instructions = $('#cart-item-instructions-textarea-' + cart_index + '-' + add_on_index ).val().trim(); 5442 cart[ cart_index ].add_ons[ add_on_index ].instructions = new_instructions; 5443 instructions_div.html( GetHtmlForAddOnInstructions( new_instructions, cart_index, add_on_index ) ); 5444 SetCartContents( cart ); 5445 } 5446 }); 5447 5448 let coupon_code = "".trim(); 5449 if( coupon_code !== '' ) { 5450 $('#coupon-code').val( coupon_code ); 5451 $('#apply-coupon-button').click(); 5452 } 5453 }); 5454 5455 function GetCartContents() 5456 { 5457 let cart = localStorage.getItem( cart_key ); 5458 if( typeof cart === 'string' ) { 5459 let cart_object = JSON.parse(cart); 5460 if( !Array.isArray( cart_object ) ) 5461 return []; 5462 else 5463 return cart_object; 5464 } 5465 else 5466 return []; 5467 } 5468 5469 function SetCartContents( new_cart ) 5470 { 5471 localStorage.setItem( cart_key, JSON.stringify( new_cart ) ); 5472 UpdateCartBadge(); 5473 } 5474 5475 function SetCartCouponCode( code ) 5476 { 5477 if( typeof code === 'undefined' ) 5478 localStorage.removeItem( coupon_key ); 5479 else 5480 localStorage.setItem( coupon_key, code ); 5481 } 5482 5483 function GetCartCouponCode() 5484 { 5485 return localStorage.getItem( coupon_key ); 5486 } 5487 5488 function SetCartDiscount( discount_data ) 5489 { 5490 if( typeof discount_data === 'undefined' ) 5491 localStorage.removeItem( discount_key ); 5492 else 5493 localStorage.setItem( discount_key, JSON.stringify( discount_data ) ); 5494 } 5495 5496 function GetCartDiscount() 5497 { 5498 let discount = localStorage.getItem( discount_key ); 5499 if( typeof discount === 'string' ) { 5500 let discount_object = JSON.parse(discount); 5501 if( !Array.isArray( discount_object ) ) 5502 return []; 5503 else 5504 return discount_object; 5505 } 5506 else 5507 return []; 5508 } 5509 5510 function UpdateCartBadge() 5511 { 5512 let new_cart = GetCartContents(); 5513 5514 let badge_counter = 0; 5515 for( let i = 0; i < new_cart.length; i++ ) 5516 badge_counter += parseInt( new_cart[i].quantity, 10 ); 5517 5518 $('#cart-item-count').html( badge_counter ).css('visibility',( badge_counter === 0 ? 'hidden' : 'visible' )); 5519 if( badge_counter > 0 ) 5520 $('#extra-check-out-text').html('<a href="#" id="extra-check-out-link" class="button button-leaf" style="margin: 10px 0 0 0;">' + 5521 "Cart" + 5522 '</a>'); 5523 else 5524 $('#extra-check-out-text').html(''); 5525 } 5526 5527 function GetCurrentTotalQuantityForProduct( product ) 5528 { 5529 let cart = GetCartContents(); 5530 5531 let has_reached_max_quantity = false;
5532 let scan_cart = true; 5533 let total_existing_quantity_in_cart = 0; 5534 for( let i = 0; i < cart.length; i++ ) { 5535 if (cart[i].product_id == product.product_id && cart[i].variant_id == product.variant_id) 5536 total_existing_quantity_in_cart += parseInt( cart[i].quantity, 10 ); 5537 5538 if( total_existing_quantity_in_cart >= product.max_quantity ) 5539 total_existing_quantity_in_cart = product.max_quantity; 5540 5541 if( product.quantity + total_existing_quantity_in_cart > product.max_quantity ) { 5542 has_reached_max_quantity = true; 5543 scan_cart = false; 5544 } 5545 } 5546 return { 5547 total_existing_quantity_in_cart: total_existing_quantity_in_cart, 5548 has_reached_max_quantity: has_reached_max_quantity 5549 }; 5550 } 5551 5552 function AddProductToCart( product ) 5553 { 5554 let cart = GetCartContents(); 5555 5556 let found_existing_item_in_cart = false; 5557 let cart_inspection = GetCurrentTotalQuantityForProduct( product ); 5558 let max_quantity = Math.max( parseInt(product.max_quantity,10), cart_inspection.total_existing_quantity_in_cart ); 5559 5560 if( cart_inspection.has_reached_max_quantity ) { 5561 found_existing_item_in_cart = true; 5562 toastr.clear(); 5563 toastr.info('Maximum quantity reached','',{timeOut: 10000}); 5564 } 5565 else { 5566 for (let i = 0; i < cart.length; i++) { 5567 let all_found = true; 5568 5569 if (cart[i].product_id == product.product_id && cart[i].variant_id == product.variant_id) { 5570 5571 if (Array.isArray(cart[i].add_ons) && Array.isArray(product.add_ons)) { 5572 let found_add_on_matches = []; 5573 for (let j = 0; j < cart[i].add_ons.length; j++) { 5574 let found_add_on_match = false; 5575 for (let k = 0; k < product.add_ons.length; k++) { 5576 if (cart[i].add_ons[j].id == product.add_ons[k].id && 5577 (product.add_ons[k].allow_user_input_customization_text != 1 || 5578 (product.add_ons[k].allow_user_input_customization_text == 1 && 5579 cart[i].add_ons[j].instructions == product.add_ons[k].instructions))) { 5580 found_add_on_match = true; 5581 break; 5582 } 5583 } 5584 found_add_on_matches[j] = found_add_on_match; 5585 } 5586 for (let j = 0; j < found_add_on_matches.length; j++) 5587 if (found_add_on_matches[j] !== true) 5588 all_found = false; 5589 5590 if (cart[i].add_ons.length !== product.add_ons.length) 5591 all_found = false; 5592 } 5593 if (all_found) { 5594 found_existing_item_in_cart = true; 5595 5596 if (parseInt(cart[i].quantity, 10) + parseInt(product.quantity, 10) > max_quantity ) { 5597 cart[i].quantity = parseInt(max_quantity, 10); 5598 toastr.clear(); 5599 toastr.info('Quantity reduced to match what is in-stock','',{timeOut: 10000}); 5600 } 5601 else 5602 cart[i].quantity = parseInt(cart[i].quantity, 10) + parseInt(product.quantity, 0); 5603 5604 break; 5605 } 5606 } 5607 } 5608 } 5609 if( !found_existing_item_in_cart ) 5610 cart.push( product ); 5611 5612 SetCartContents( cart ); 5613 OpenCart(); 5614 } 5615 5616 function RemoveProductFromCart( product_id ) 5617 { 5618 let cart = GetCartContents(); 5619 5620 for( let i = 0; i < cart.length; i++ ) { 5621 if (cart[i].product_id == product_id) { 5622 cart.splice(i, 1); 5623 SetCartContents( cart ); 5624 UpdateCartBadge(); 5625 return; 5626 } 5627 } 5628 } 5629 5630 function EmptyCart() { 5631 SetCartContents([]); 5632 UpdateCartBadge(); 5633 } 5634 5635 function GetHtmlForAddOnInstructions( instructions, cart_index, add_on_index ) 5636 { 5637 return ( typeof instructions === 'string' && instructions.trim() !== '' ? escapeHtml( instructions ) : 'Add instructions' ) + 5638 '<a href="#" class="edit-cart-item-add-on-instructions" data-cart-index="' + cart_index + '" data-add-on-index="' + add_on_index + '">' + 5639 '<i class="icon-pencil"></i></a>'; 5640 } 5641
5642 function RenderCartContents( skip_shipping = false ) 5643 { 5644 let s = ''; 5645 let cart = GetCartContents(); 5646 let total_price = new BigNumber('0.00'); 5647 let discounts = GetCartDiscount(); 5648 5649 if( cart.length === 0 ) { 5650 s = '<div style="padding: 20px;">No items.</div>'; 5651 $('#check-out-now-div').hide(); 5652 } 5653 else { 5654 let cart_coupon_code = GetCartCouponCode(); 5655 $('#coupon-code').val( cart_coupon_code === null ? '' : cart_coupon_code ); 5656 5657 $('#check-out-now-div').show(); 5658 for( let i = 0; i < cart.length; i++ ) { 5659 let item = cart[i]; 5660 let item_price = (typeof item.sale_price === 'string' && item.sale_price !== '' ? item.sale_price : item.price); 5661 let item_is_on_sale = (typeof item.sale_price === 'string' && item.sale_price !== ''); 5662 total_price = total_price.plus( BigNumber( item.quantity ).times( BigNumber( item_price ) ) ); 5663 5664 let cart_inspection = GetCurrentTotalQuantityForProduct( item ); 5665 let max_quantity = parseInt(item.quantity,10) + parseInt(item.max_quantity,10) - cart_inspection.total_existing_quantity_in_cart; 5666 if( max_quantity > item.max_quantity ) 5667 max_quantity = item.max_quantity; 5668 if( max_quantity < item.quantity ) 5669 max_quantity = item.quantity; 5670 5671 let add_on_html = ''; 5672 let add_on_price_difference = new BigNumber('0.00'); 5673 for( let j = 0; j < item.add_ons.length; j++ ) { 5674 let add_on = item.add_ons[j]; 5675 total_price = total_price.plus( BigNumber( item.quantity ).times( BigNumber( typeof add_on.sale_price_difference === 'string' && add_on.sale_price_difference !== '' ? add_on.sale_price_difference : add_on.price_difference ) ) ); 5676 add_on_html += '<div class="cart-item-add-on-div">' + escapeHtml( add_on.name ); 5677 if( typeof add_on.sale_price_difference === 'string' && add_on.sale_price_difference !== '' ) { 5678 add_on_html += ' <del>' + escapeHtml(store_currency_symbol + add_on.price_difference) + '</del>' + 5679 escapeHtml(store_currency_symbol + add_on.sale_price_difference); 5680 add_on_price_difference = add_on_price_difference.plus( BigNumber( add_on.sale_price_difference ) ); 5681 } 5682 else { 5683 add_on_html += ' ' + escapeHtml(store_currency_symbol + add_on.price_difference); 5684 add_on_price_difference = add_on_price_difference.plus( BigNumber( add_on.price_difference ) ); 5685 } 5686 5687 add_on_html += '<div class="cart-item-add-on-instructions" id="cart-item-add-on-instructions-' + i + '-' + j + '">' + 5688 (add_on.allow_user_input_customization_text == 1 ? GetHtmlForAddOnInstructions( add_on.instructions, i, j ) : '') + 5689 '</div>'; 5690 5691 add_on_html += '</div>'; 5692 } 5693 5694 let quantity_html = '<div class="cart-item-quantity">'; 5695 quantity_html += '<select id="cart-item-quantity' + i + '" class="form-control cart-item-quantity-select" data-index="' + i +'" style="width: auto;">'; 5696 for( let j = 0; j <= max_quantity; j++ ) { 5697 quantity_html += '<option value="' + j + '"' + ( item.quantity == j ? ' selected' : '') + '>' + 5698 'Qty: ' + j + '</option>'; 5699 } 5700 quantity_html += '</select>'; 5701 5702 quantity_html += '</div>'; 5703 5704 let price_html = '', base_price_html = ''; 5705 let item_price_bignumber = new BigNumber( item.price ); 5706 let item_base_price_bignumber = item_price_bignumber; 5707 item_price_bignumber = item_price_bignumber.plus( add_on_price_difference ); 5708 if( item_is_on_sale ) { 5709 let item_sale_price_bignumber = new BigNumber( item.sale_price ); 5710 item_base_price_bignumber = item_sale_price_bignumber; 5711 5712 item_sale_price_bignumber = item_sale_price_bignumber.plus( add_on_price_difference ); 5713 5714 price_html += '<del>' + escapeHtml(store_currency_symbol + item_price_bignumber) + '</del> ' + 5715 ( item_sale_price_bignumber.isZero() ? 'Free' : escapeHtml(store_currency_symbol + item_sale_price_bignumber) ); 5716 5717 if( !item_base_price_bignumber.isEqualTo( item_sale_price_bignumber ) ) 5718 base_price_html = ' (' + store_currency_symbol + item_base_price_bignumber + '/ea)'; 5719 } 5720 else { 5721 price_html += escapeHtml(store_currency_symbol + item_price_bignumber); 5722 if( !item_base_price_bignumber.isEqualTo( item_price_bignumber ) ) 5723 base_price_html = ' (' + store_currency_symbol + item_base_price_bignumber + '/ea)'; 5724 } 5725 5726 price_html += ' <i class="icon-trash2 delete-cart-item" data-index="' + i + '"></i>'; 5727 5728 5729 5730 s += '<div class="cart-item">' + 5731 '<div class="cart-item-photo">' + 5732 (typeof item.product_image_url === 'string' && item.product_image_url !== '' ? '<img src="' + escapeHtml( item.product_image_url ) + '" alt="' + escapeHtml( item.product_name ) + '">' : '' ) + 5733 '</div>' + 5734 '<div class="cart-item-description">' + 5735 escapeHtml( item.product_name ) + 5736 base_price_html + 5737 (typeof item.variant_name === 'string' && item.variant_name !== '' ? '<div class="cart-item-variant-name">' + escapeHtml( item.variant_name ) + '</div>' : '' ) + 5738 add_on_html + 5739 '</div>' + 5740 '<div class="cart-item-price">' + 5741 price_html + 5742 quantity_html + 5743 '</div>' + 5744 '</div>'; 5745 } 5746 } 5747 5748 $('#cart-contents').html( s ); 5749 let discounted_price = total_price; 5750 let discount_html = ''; 5751 let coupon_code = ''; 5752 for( let i = 0; i < discounts.length; i++ ) { 5753 let discount = discounts[i]; 5754 if( i === 0 ) { 5755 coupon_code = discount.discount_code; 5756 discount_html += '<div class="coupon-description"><span class="float-left-desktop">Coupon Code:</span> <kbd><a href="#" class="remove-coupon-code" data-toggle="tooltip" title="Click to remove coupon code">' + escapeHtml( discount.discount_code ) + ' ' + 5757 '×</a></kbd></div>'; 5758 } 5759 let discount_amount = new BigNumber( discount.discount_amount ); 5760 discount_amount = discount_amount.dividedBy( 100 ) 5761 discounted_price = discounted_price.minus( discount_amount ); 5762 5763 discount_html += '<div class="coupon-discounts"><span class="float-left-desktop">' + 5764 escapeHtml( discount['discount_description'] ); 5765 5766 if( discount.discount_type === 'free_shipping' ) 5767 discount_html += '</span> '; 5768 else 5769 discount_html += ':</span> -' + store_currency_symbol + escapeHtml(discount_amount.toFormat(2)); 5770 5771 discount_html += '</div>'; 5772 } 5773 if( discounted_price.isLessThan( 0 ) ) 5774 discounted_price = new BigNumber('0.00'); 5775 if( discounted_price.isEqualTo( total_price ) ) 5776 $('#cart-subtotal').html('<div><strong><span class="float-left-desktop">Subtotal:</span> ' + store_currency_symbol + total_price.toFormat(2) + '</strong></div>' + discount_html ); 5777 else 5778 $('#cart-subtotal').html('<div><strong><span class="float-left-desktop">Subtotal:</span> ' + store_currency_symbol + total_price.toFormat(2) + '</strong></div>' + 5779 discount_html + 5780 '<div><strong><span class="float-left-desktop">Discounted Subtotal:</span> ' + store_currency_symbol + discounted_price.toFormat(2) + '</strong></div>'); 5781 5782 global_cart_subtotal = total_price; 5783 global_discounted_cart_subtotal = discounted_price; 5784 global_cart_grand_total = discounted_price; 5785 if( skip_shipping === false ) 5786 CalculateShipping(); 5787 5788 $('body').tooltip({ 5789 selector: '[data-toggle=tooltip]' 5790 }); 5791 } 5792 5793 function CalculateShipping() 5794 { 5795 if( $('#cart-shipping').html() != '' ) 5796 $('#cart-shipping').html(' '); 5797 5798 let cart = GetCartContents(); 5799 if( cart.length === 0 ) 5800 return false;
5801 5802 let data = { 5803 cart_contents: cart, 5804 coupon_code: GetCartCouponCode(), 5805 store_id: store_id 5806 }; 5807 $.ajax({ 5808 url: "https:\/\/brooksdemming.com\/store\/cart\/calculate-shipping", 5809 method: "POST", 5810 dataType: "json", 5811 data: data 5812 }) 5813 .done(function( data_obj ) { 5814 toastr.clear(); 5815 if( data_obj.success ) { 5816 let shipping_cost_string; 5817 let shipping_cost = new BigNumber( 0 ); 5818 5819 if( data_obj.results.shipping_cost == '0' ) 5820 shipping_cost_string = 'Free'; 5821 else if( data_obj.results.shipping_cost == '' || typeof data_obj.results.shipping_cost === 'undefined' ) 5822 shipping_cost_string = ''; 5823 else { 5824 shipping_cost = new BigNumber(data_obj.results.shipping_cost); 5825 shipping_cost_string = store_currency_symbol + shipping_cost.toFormat(2); 5826 } 5827 global_cart_grand_total = global_discounted_cart_subtotal.plus( shipping_cost ); 5828 if( global_cart_grand_total.isLessThan( 0 ) ) 5829 global_cart_grand_total = new BigNumber('0.00'); 5830 let grand_total_html = '<div class="grand-total-div"><span class="float-left-desktop">Total:</span> ' + 5831 store_currency_symbol + global_cart_grand_total.toFormat( 2 ) + 5832 (tax_enabled ? '*' : '') + 5833 '</div>'; 5834 if( tax_enabled ) 5835 grand_total_html += '<div style="margin:5px;" class="text-center"><em>* Tax is calculated during checkout</em></div>'; 5836 5837 if( shipping_cost_string != '' ) 5838 $('#cart-shipping').html('<div id="cart-shipping-inner"><span class="float-left-desktop">Shipping:</span> ' + shipping_cost_string + '</div>' + grand_total_html); 5839 else 5840 $('#cart-shipping').html( grand_total_html ); 5841 5842 let server_discounts = Array.isArray( data_obj.results.discounts ) ? data_obj.results.discounts : []; 5843 if( server_discounts.length > 0 ) { 5844 SetCartDiscount( server_discounts ); 5845 RenderCartContents( true ); 5846 } 5847 else if( GetCartDiscount().length > 0 ) { 5848 SetCartDiscount(); 5849 RenderCartContents( true ); 5850 } 5851 } 5852 else 5853 $('#cart-shipping').html(''); 5854 }) 5855 .fail(function( jqXHR, textStatus ) { 5856 $('#cart-shipping').html(''); 5857 }); 5858 } 5859 5860 function OpenCart() 5861 { 5862 $('body').css('overflow','hidden'); 5863 RenderCartContents(); 5864 $('#cart-panel').show(); 5865 $('.cart-panel-backdrop').show().addClass('open'); 5866 $('#cart-panel-sidepanel').addClass('open'); 5867 } 5868 function CloseCart() 5869 { 5870 $('body').css('overflow','auto'); 5871 $('.cart-panel-backdrop').hide().removeClass('open'); 5872 $('#cart-panel-sidepanel').removeClass('open'); 5873 setTimeout( () => $('#cart-panel').hide(), 350 ); 5874 } 5875</script>
vendor: 1 bytes, line 5875
5875
5876<script src='https://cdn.jsdelivr.net/npm/[email protected]/bignumber.min.js'></script>
5876 5877 5878<!-- GPT Popup Chat Button - Popup-specific styles --> 5879<style> 5880 #gotoTop, .stretched #gotoTop { 5881 right: 15px; 5882 bottom: 30px; 5883 } 5884 .gpt-popup-floating-btn { 5885 position: fixed; 5886 right: 67px; 5887 bottom: 24px; 5888 z-index: 1049; 5889 display: flex; 5890 align-items: center; 5891 gap: 10px; 5892 background: #e4ccc4; 5893 color: #000000; 5894 border: none; 5895 border-radius: 50px; 5896 padding: 14px 24px; 5897 font-size: 16px; 5898 font-weight: 500; 5899 cursor: pointer; 5900 box-shadow: 0 4px 20px rgba(0,0,0,0.25); 5901 transition: all 0.3s ease; 5902 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 5903 } 5904 .gpt-popup-floating-btn:hover { 5905 transform: translateY(-2px); 5906 box-shadow: 0 6px 25px rgba(0,0,0,0.3); 5907 } 5908 .gpt-popup-floating-btn:active { 5909 transform: translateY(0); 5910 } 5911 .gpt-popup-floating-btn svg { 5912 width: 24px; 5913 height: 24px; 5914 flex-shrink: 0; 5915 } 5916 .gpt-popup-floating-btn.collapsed { 5917 padding: 16px; 5918 border-radius: 50%; 5919 } 5920 .gpt-popup-floating-btn.collapsed .gpt-popup-btn-text { 5921 display: none; 5922 } 5923 5924 /* Popup container wrapper */ 5925 .gpt-popup-overlay { 5926 position: fixed; 5927 right: 24px; 5928 bottom: 24px; 5929 z-index: 9999; 5930 opacity: 0; 5931 visibility: hidden; 5932 transition: opacity 0.3s ease, visibility 0.3s ease, background 0.3s ease; 5933 pointer-events: none; 5934 } 5935 .gpt-popup-overlay.active { 5936 opacity: 1; 5937 visibility: visible; 5938 } 5939 5940 /* Popup container */ 5941 .gpt-popup-widget-container { 5942 position: relative; 5943 width: 400px; 5944 max-width: calc(100vw - 48px); 5945 height: 600px; 5946 max-height: calc(100vh - 48px); 5947 background: white; 5948 border-radius: 16px; 5949 overflow: hidden; 5950 box-shadow: 0 10px 40px rgba(0,0,0,0.3); 5951 transform: translateY(20px); 5952 transition: transform 0.3s ease, height 0.3s ease, max-height 0.3s ease; 5953 display: flex; 5954 flex-direction: column; 5955 pointer-events: auto; 5956 } 5957 .gpt-popup-overlay.active .gpt-popup-widget-container { 5958 transform: translateY(0); 5959 } 5960 5961 /* Expanded (modal) state — full viewport overlay, widget centered horizontally and taller */ 5962 .gpt-popup-overlay.expanded { 5963 left: 0 !important; 5964 right: 0 !important; 5965 top: 0 !important; 5966 bottom: 0 !important; 5967 background: rgba(0,0,0,0.55); 5968 display: flex; 5969 align-items: center; 5970 justify-content: center; 5971 padding: 24px; 5972 pointer-events: auto; 5973 transition: opacity 0.3s ease, visibility 0.3s ease, background 0.3s ease; 5974 } 5975 .gpt-popup-overlay.expanded .gpt-popup-widget-container { 5976 width: 600px; 5977 height: calc(100vh - 48px); 5978 max-height: 900px; 5979 } 5980 5981 /* Close/minimize button */ 5982 .gpt-popup-close-btn { 5983 position: absolute; 5984 top: 12px; 5985 right: 12px; 5986 background: rgba(255,255,255,0.2); 5987 border: none; 5988 border-radius: 50%; 5989 width: 32px; 5990 height: 32px; 5991 display: flex; 5992 align-items: center; 5993 justify-content: center; 5994 cursor: pointer; 5995 color: #000000; 5996 transition: background 0.2s; 5997 z-index: 10; 5998 } 5999 .gpt-popup-close-btn:hover { 6000 background: rgba(255,255,255,0.3); 6001 } 6002 .gpt-popup-close-btn svg { 6003 width: 16px; 6004 height: 16px; 6005 } 6006 6007 /* Expand / collapse-to-popup button */ 6008 .gpt-popup-expand-btn { 6009 position: absolute; 6010 top: 12px; 6011 right: 52px; 6012 background: rgba(255,255,255,0.2); 6013 border: none; 6014 border-radius: 50%; 6015 width: 32px; 6016 height: 32px; 6017 display: flex; 6018 align-items: center; 6019 justify-content: center; 6020 cursor: pointer; 6021 color: #000000; 6022 transition: background 0.2s; 6023 z-index: 10; 6024 padding: 0; 6025 } 6026 .gpt-popup-expand-btn:hover { 6027 background: rgba(255,255,255,0.3); 6028 } 6029 .gpt-popup-expand-btn svg { 6030 width: 16px; 6031 height: 16px; 6032 } 6033 .gpt-popup-overlay.expanded .gpt-popup-expand-icon { 6034 display: none; 6035 } 6036 .gpt-popup-collapse-icon { 6037 display: none; 6038 } 6039 .gpt-popup-overlay.expanded .gpt-popup-collapse-icon { 6040 display: block; 6041 } 6042 6043 /* Hidden floating button when popup is open */ 6044 .gpt-popup-btn-hidden { 6045 opacity: 0; 6046 visibility: hidden; 6047 pointer-events: none; 6048 } 6049 6050 /* Override chat widget container to fill popup */ 6051 .gpt-popup-widget-container .gpt-popup-chat-container { 6052 height: 100%; 6053 max-width: none; 6054 border-radius: 0; 6055 box-shadow: none; 6056 } 6057 6058 /* Mobile responsive */ 6059 @media (max-width: 480px) { 6060 .gpt-popup-floating-btn { 6061 right: 16px; 6062 bottom: 16px; 6063 padding: 12px 20px; 6064 font-size: 14px; 6065 } 6066 .gpt-popup-overlay { 6067 left: 0; 6068 right: 0; 6069 top: 0; 6070 bottom: 0; 6071 padding: 0; 6072 } 6073 .gpt-popup-overlay.active { 6074 pointer-events: auto; 6075 } 6076 .gpt-popup-widget-container { 6077 width: 100%; 6078 max-width: 100%; 6079 height: 100%; 6080 max-height: 100%; 6081 border-radius: 0; 6082 } 6083 } 6084</style> 6085 6086<!-- Floating Chat Button --> 6087<button type="button" class="gpt-popup-floating-btn" id="gpt-popup-open-btn"> 6088 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 6089 <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/> 6090 </svg> 6091 <span class="gpt-popup-btn-text">Chat with us</span> 6092</button> 6093 6094<!-- Popup Overlay --> 6095<div class="gpt-popup-overlay" id="gpt-popup-overlay"> 6096 <div class="gpt-popup-widget-container"> 6097 <!-- Expand / Collapse-to-popup Button --> 6098 <button type="button" class="gpt-popup-expand-btn" id="gpt-popup-expand-btn" title="Expand">
6099 <svg class="gpt-popup-expand-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 6100 <polyline points="15 3 21 3 21 9"/> 6101 <polyline points="9 21 3 21 3 15"/> 6102 <line x1="21" y1="3" x2="14" y2="10"/> 6103 <line x1="3" y1="21" x2="10" y2="14"/> 6104 </svg> 6105 <svg class="gpt-popup-collapse-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 6106 <polyline points="4 14 10 14 10 20"/> 6107 <polyline points="20 10 14 10 14 4"/> 6108 <line x1="14" y1="10" x2="21" y2="3"/> 6109 <line x1="3" y1="21" x2="10" y2="14"/> 6110 </svg> 6111 </button> 6112 6113 <!-- Close Button --> 6114 <button type="button" class="gpt-popup-close-btn" id="gpt-popup-close-btn" title="Minimize"> 6115 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 6116 <path d="M6 9l6 6 6-6"/> 6117 </svg> 6118 </button> 6119 6120 6121<style> 6122 /* GPT Chat Widget Styles - Prefix: gpt-popup- */ 6123 .gpt-popup-chat-container { 6124 background: white; 6125 border-radius: 12px; 6126 overflow: hidden; 6127 display: flex; 6128 flex-direction: column; 6129 height: 100%; 6130 } 6131 6132 /* Mobile adjustments for full page mode */ 6133 @media (max-width: 600px), (max-height: 700px) { 6134 .gpt-popup-chat-container { 6135 } 6136 } 6137 6138 .gpt-popup-chat-header { 6139 background: #e4ccc4; 6140 color: #000000; 6141 padding: 16px; 6142 display: flex; 6143 align-items: center; 6144 gap: 12px; 6145 flex-shrink: 0; 6146 } 6147 6148 .gpt-popup-chat-avatar { 6149 width: 44px; 6150 height: 44px; 6151 border-radius: 50%; 6152 background: rgba(255,255,255,0.2); 6153 display: flex; 6154 align-items: center; 6155 justify-content: center; 6156 font-size: 18px; 6157 font-weight: 600; 6158 overflow: hidden; 6159 flex-shrink: 0; 6160 } 6161 6162 .gpt-popup-chat-avatar img { 6163 width: 100%; 6164 height: 100%; 6165 object-fit: cover; 6166 } 6167 6168 .gpt-popup-chat-header-info { 6169 min-width: 0; 6170 } 6171 6172 .gpt-popup-chat-header-info h2, 6173 .gpt-popup-chat-header-info h3 { 6174 margin: 0 0 4px 0; 6175 font-size: 16px; 6176 font-weight: 600; 6177 color: inherit; 6178 } 6179 6180 .gpt-popup-chat-header-info p { 6181 margin: 0; 6182 font-size: 13px; 6183 opacity: 0.85; 6184 } 6185 6186 .gpt-popup-desc-wrapper { 6187 overflow: hidden; 6188 transition: max-height 0.35s ease; 6189 cursor: pointer; 6190 } 6191 .gpt-popup-desc-wrapper.collapsed p { 6192 white-space: nowrap; 6193 overflow: hidden; 6194 text-overflow: ellipsis; 6195 } 6196 6197 .gpt-popup-messages-wrapper { 6198 position: relative; 6199 flex: 1; 6200 display: flex; 6201 flex-direction: column; 6202 overflow: hidden; 6203 min-height: 150px; 6204 } 6205 6206 .gpt-popup-chat-messages { 6207 flex: 1; 6208 overflow-y: auto; 6209 padding: 16px; 6210 background: #f8f9fa; 6211 display: flex; 6212 flex-direction: column; 6213 gap: 12px; 6214 } 6215 6216 .gpt-popup-message { 6217 display: flex; 6218 gap: 8px; 6219 animation: gpt-popup-fadeIn 0.3s ease; 6220 } 6221 6222 @keyframes gpt-popup-fadeIn { 6223 from { opacity: 0; transform: translateY(8px); } 6224 to { opacity: 1; transform: translateY(0); } 6225 } 6226 6227 .gpt-popup-message.user { 6228 flex-direction: row-reverse; 6229 } 6230 6231 .gpt-popup-message-avatar { 6232 width: 28px; 6233 height: 28px; 6234 border-radius: 50%; 6235 background: #e4ccc4; 6236 display: flex; 6237 align-items: center; 6238 justify-content: center; 6239 color: #000000; 6240 font-size: 11px; 6241 font-weight: 600; 6242 flex-shrink: 0; 6243 overflow: hidden; 6244 } 6245 6246 .gpt-popup-message-avatar img { 6247 width: 100%; 6248 height: 100%; 6249 object-fit: cover; 6250 } 6251 6252 .gpt-popup-message.user .gpt-popup-message-avatar { 6253 background: #ffc0cb; 6254 color: #000000; 6255 } 6256 6257 .gpt-popup-message-content { 6258 max-width: 80%; 6259 padding: 10px 14px; 6260 border-radius: 14px; 6261 font-size: 14px; 6262 line-height: 1.5; 6263 } 6264 6265 .gpt-popup-message.assistant .gpt-popup-message-content { 6266 background: white; 6267 border-bottom-left-radius: 4px; 6268 box-shadow: 0 1px 2px rgba(0,0,0,0.1); 6269 } 6270 6271 .gpt-popup-message.user .gpt-popup-message-content { 6272 background: #ffc0cb; 6273 color: #000000; 6274 border-bottom-right-radius: 4px; 6275 } 6276 6277 .gpt-popup-message-content p { 6278 margin: 0 0 8px 0; 6279 } 6280 6281 .gpt-popup-message-content p:last-child { 6282 margin-bottom: 0; 6283 } 6284 6285 .gpt-popup-message-content ul { 6286 margin: 6px 0; 6287 padding-left: 18px; 6288 } 6289 6290 .gpt-popup-message-content li { 6291 margin-bottom: 3px; 6292 } 6293 6294 .gpt-popup-message-content table { 6295 overflow-x: auto; 6296 display: block; 6297 max-width: 100%; 6298 } 6299 6300 .gpt-popup-message-content a { 6301 color: #ffc0cb; 6302 text-decoration: underline; 6303 word-break: break-word; 6304 } 6305 6306 .gpt-popup-message-content a:hover { 6307 text-decoration: none; 6308 } 6309 6310 .gpt-popup-message.user .gpt-popup-message-content a { 6311 color: #000000; 6312 } 6313 6314 .gpt-popup-typing-indicator { 6315 display: none; 6316 gap: 4px; 6317 padding: 8px; 6318 } 6319 6320 .gpt-popup-typing-indicator span { 6321 width: 6px; 6322 height: 6px; 6323 border-radius: 50%; 6324 background: #999; 6325 animation: gpt-popup-typing 1.4s infinite ease-in-out; 6326 } 6327 6328 .gpt-popup-typing-indicator span:nth-child(2) { animation-delay: 0.2s; } 6329 .gpt-popup-typing-indicator span:nth-child(3) { animation-delay: 0.4s; } 6330
6331 @keyframes gpt-popup-typing { 6332 0%, 60%, 100% { transform: translateY(0); } 6333 30% { transform: translateY(-6px); } 6334 } 6335 6336 .gpt-popup-starters-section { 6337 padding: 12px 16px; 6338 border-top: 1px solid #eee; 6339 background: white; 6340 flex-shrink: 0; 6341 } 6342 6343 .gpt-popup-starters-label { 6344 font-size: 11px; 6345 color: #888; 6346 text-transform: uppercase; 6347 letter-spacing: 0.5px; 6348 margin-bottom: 8px; 6349 } 6350 6351 .gpt-popup-starters-grid { 6352 display: flex; 6353 flex-wrap: wrap; 6354 gap: 6px; 6355 } 6356 6357 .gpt-popup-starter-btn { 6358 background: #f0f2f5; 6359 border: none; 6360 padding: 8px 12px; 6361 border-radius: 16px; 6362 font-size: 13px; 6363 cursor: pointer; 6364 transition: all 0.2s; 6365 color: #333; 6366 } 6367 6368 .gpt-popup-starter-btn:hover { 6369 background: #e4e6e9; 6370 } 6371 6372 .gpt-popup-input-section { 6373 padding: 12px 16px 16px; 6374 background: white; 6375 border-top: 1px solid #eee; 6376 flex-shrink: 0; 6377 } 6378 6379 .gpt-popup-input-wrapper { 6380 display: flex; 6381 gap: 8px; 6382 align-items: flex-end; 6383 } 6384 6385 .gpt-popup-chat-input { 6386 flex: 1; 6387 border: 2px solid #e0e0e0; 6388 border-radius: 20px; 6389 padding: 10px 16px; 6390 font-size: 14px; 6391 outline: none; 6392 transition: border-color 0.2s; 6393 resize: none; 6394 min-height: 40px; 6395 max-height: 100px; 6396 font-family: inherit; 6397 } 6398 6399 .gpt-popup-chat-input:focus { 6400 border-color: #ffc0cb; 6401 } 6402 6403 .gpt-popup-send-btn { 6404 width: 40px; 6405 height: 40px; 6406 border-radius: 50%; 6407 background: #ffc0cb; 6408 border: none; 6409 color: #000000; 6410 cursor: pointer; 6411 display: flex; 6412 align-items: center; 6413 justify-content: center; 6414 transition: all 0.2s; 6415 flex-shrink: 0; 6416 } 6417 6418 .gpt-popup-send-btn:hover { 6419 background: #d8a3ac; 6420 transform: scale(1.05); 6421 } 6422 6423 .gpt-popup-send-btn:disabled { 6424 background: #ccc; 6425 cursor: not-allowed; 6426 transform: none; 6427 } 6428 6429 .gpt-popup-send-btn svg { 6430 width: 16px; 6431 height: 16px; 6432 } 6433 6434 /* Option buttons */ 6435 .gpt-popup-options-container { 6436 display: flex; 6437 flex-wrap: wrap; 6438 gap: 6px; 6439 margin-top: 10px; 6440 } 6441 6442 .gpt-popup-option-btn { 6443 background: #ffc0cb; 6444 color: #000000; 6445 border: none; 6446 padding: 8px 14px; 6447 border-radius: 16px; 6448 font-size: 13px; 6449 cursor: pointer; 6450 transition: all 0.2s; 6451 } 6452 6453 .gpt-popup-option-btn:hover { 6454 background: #d8a3ac; 6455 transform: translateY(-1px); 6456 } 6457 6458 .gpt-popup-option-other { 6459 background: #f0f2f5; 6460 color: #333; 6461 border: 1px solid #ddd; 6462 } 6463 6464 .gpt-popup-option-other:hover { 6465 background: #e4e6e9; 6466 } 6467 6468 .gpt-popup-options-container.disabled .gpt-popup-option-btn { 6469 opacity: 0.5; 6470 cursor: not-allowed; 6471 pointer-events: none; 6472 } 6473 6474 /* Multiselect container */ 6475 .gpt-popup-multiselect-container { 6476 display: flex; 6477 flex-direction: column; 6478 gap: 6px; 6479 } 6480 6481 .gpt-popup-multiselect-btn { 6482 background: white; 6483 color: #333; 6484 border: 2px solid #ddd; 6485 text-align: left; 6486 display: flex; 6487 align-items: center; 6488 } 6489 6490 .gpt-popup-multiselect-btn:hover { 6491 background: #f8f9fa; 6492 border-color: #bbb; 6493 transform: none; 6494 } 6495 6496 .gpt-popup-multiselect-btn.selected { 6497 background: #ffc0cb; 6498 color: #000000; 6499 border-color: #ffc0cb; 6500 } 6501 6502 .gpt-popup-multiselect-btn.selected:hover { 6503 background: #d8a3ac; 6504 border-color: #d8a3ac; 6505 } 6506 6507 .gpt-popup-multiselect-check { 6508 display: none; 6509 margin-right: 4px; 6510 font-weight: bold; 6511 } 6512 6513 .gpt-popup-multiselect-btn.selected .gpt-popup-multiselect-check { 6514 display: inline; 6515 } 6516 6517 .gpt-popup-multiselect-other-input { 6518 display: none; 6519 padding: 0 4px; 6520 } 6521 6522 .gpt-popup-multiselect-other-field { 6523 flex: 1; 6524 border: 2px solid #ddd; 6525 border-radius: 16px; 6526 padding: 8px 14px; 6527 font-size: 13px; 6528 outline: none; 6529 transition: border-color 0.2s; 6530 font-family: inherit; 6531 } 6532 6533 .gpt-popup-multiselect-other-field:focus { 6534 border-color: #ffc0cb; 6535 } 6536 6537 .gpt-popup-multiselect-submit { 6538 background: #ffc0cb; 6539 color: #000000; 6540 border: none; 6541 padding: 10px 20px; 6542 border-radius: 16px; 6543 font-size: 14px; 6544 font-weight: 500; 6545 cursor: pointer; 6546 transition: all 0.2s; 6547 margin-top: 4px; 6548 align-self: flex-start; 6549 } 6550 6551 .gpt-popup-multiselect-submit:hover { 6552 background: #d8a3ac; 6553 } 6554 6555 .gpt-popup-multiselect-submit-error { 6556 animation: gpt-popup-multiselectShake 0.5s ease; 6557 } 6558
6559 @keyframes gpt-popup-multiselectShake { 6560 0%, 100% { transform: translateX(0); } 6561 15% { transform: translateX(-6px); } 6562 30% { transform: translateX(6px); } 6563 45% { transform: translateX(-4px); } 6564 60% { transform: translateX(4px); } 6565 75% { transform: translateX(-2px); } 6566 90% { transform: translateX(2px); } 6567 } 6568 6569 .gpt-popup-multiselect-container.disabled .gpt-popup-multiselect-submit { 6570 opacity: 0.5; 6571 cursor: not-allowed; 6572 pointer-events: none; 6573 } 6574 6575 .gpt-popup-multiselect-container.disabled .gpt-popup-multiselect-other-field { 6576 opacity: 0.5; 6577 pointer-events: none; 6578 } 6579 6580 /* Scroll indicator */ 6581 .gpt-popup-scroll-indicator { 6582 position: absolute; 6583 bottom: 12px; 6584 left: 50%; 6585 transform: translateX(-50%); 6586 background: rgba(0,0,0,0.75); 6587 color: white; 6588 padding: 6px 12px; 6589 border-radius: 16px; 6590 font-size: 12px; 6591 cursor: pointer; 6592 display: none; 6593 align-items: center; 6594 gap: 6px; 6595 z-index: 10; 6596 box-shadow: 0 2px 8px rgba(0,0,0,0.2); 6597 transition: opacity 0.2s; 6598 } 6599 6600 .gpt-popup-scroll-indicator:hover { 6601 background: rgba(0,0,0,0.9); 6602 } 6603 6604 .gpt-popup-scroll-indicator.visible { 6605 display: flex; 6606 animation: gpt-popup-scrollFadeIn 0.3s ease; 6607 } 6608 6609 @keyframes gpt-popup-scrollFadeIn { 6610 from { opacity: 0; transform: translateX(-50%) translateY(8px); } 6611 to { opacity: 1; transform: translateX(-50%) translateY(0); } 6612 } 6613 6614 @keyframes spin { 6615 from { transform: rotate(0deg); } 6616 to { transform: rotate(360deg); } 6617 } 6618 6619 /* Continue button section */ 6620 .gpt-popup-continue-section { 6621 padding: 16px 24px; 6622 background: white; 6623 border-top: 1px solid #eee; 6624 text-align: center; 6625 flex-shrink: 0; 6626 } 6627 6628 .gpt-popup-continue-btn { 6629 display: inline-flex; 6630 align-items: center; 6631 justify-content: center; 6632 padding: 12px 24px; 6633 background: #ffc0cb; 6634 color: #000000; 6635 border: none; 6636 border-radius: 8px; 6637 font-size: 15px; 6638 font-weight: 500; 6639 cursor: pointer; 6640 transition: all 0.2s; 6641 } 6642 6643 .gpt-popup-continue-btn:hover { 6644 background: #d8a3ac; 6645 transform: translateY(-1px); 6646 } 6647 6648 /* Inline outcome button (for continue_chat outcomes) */ 6649 .gpt-popup-inline-outcome-btn-wrap { 6650 padding: 4px 0; 6651 } 6652 .gpt-popup-inline-outcome-btn { 6653 display: inline-flex; 6654 align-items: center; 6655 padding: 10px 18px; 6656 background: #ffc0cb; 6657 color: #000000 !important; 6658 border: none; 6659 border-radius: 8px; 6660 font-size: 14px; 6661 font-weight: 500; 6662 text-decoration: none !important; 6663 cursor: pointer; 6664 transition: all 0.2s; 6665 } 6666 .gpt-popup-inline-outcome-btn:hover { 6667 background: #d8a3ac; 6668 color: #000000 !important; 6669 text-decoration: none !important; 6670 transform: translateY(-1px); 6671 } 6672 6673 /* Resume prompt */ 6674 .gpt-popup-resume-prompt { 6675 padding: 20px 16px; 6676 background: #f8f9fa; 6677 text-align: center; 6678 flex: 1; 6679 display: flex; 6680 flex-direction: column; 6681 justify-content: center; 6682 align-items: center; 6683 gap: 16px; 6684 } 6685 6686 .gpt-popup-resume-text { 6687 font-size: 15px; 6688 color: #333; 6689 line-height: 1.5; 6690 } 6691 6692 .gpt-popup-resume-buttons { 6693 display: flex; 6694 gap: 10px; 6695 } 6696 6697 .gpt-popup-resume-btn { 6698 padding: 10px 20px; 6699 border-radius: 8px; 6700 font-size: 14px; 6701 font-weight: 500; 6702 cursor: pointer; 6703 transition: all 0.2s; 6704 border: none; 6705 background: #ffc0cb; 6706 color: #000000; 6707 } 6708 6709 .gpt-popup-resume-btn:hover { 6710 opacity: 0.9; 6711 transform: translateY(-1px); 6712 } 6713 6714 .gpt-popup-resume-fresh { 6715 background: #f0f2f5; 6716 color: #333; 6717 border: 1px solid #ddd; 6718 } 6719 6720 .gpt-popup-resume-fresh:hover { 6721 background: #e4e6e9; 6722 } 6723 6724 /* Recognized user link */ 6725 .gpt-popup-recognized-user { 6726 font-size: 11px; 6727 color: rgba(255,255,255,0.7); 6728 margin-top: 3px; 6729 } 6730 6731 .gpt-popup-recognized-user a { 6732 color: rgba(255,255,255,0.9); 6733 text-decoration: underline; 6734 } 6735 6736 .gpt-popup-recognized-user a:hover { 6737 color: white; 6738 } 6739 6740 6741 .gpt-popup-message.owner { 6742 flex-direction: row; 6743 } 6744 .gpt-popup-message.owner .gpt-popup-message-avatar { 6745 background: #3498db; 6746 color: #fff; 6747 } 6748 .gpt-popup-message.owner .gpt-popup-message-content { 6749 background: #e8f4fd; 6750 color: #1a1a2e; 6751 } 6752 .gpt-popup-owner-name { 6753 font-size: 11px; 6754 font-weight: 600; 6755 color: #3498db; 6756 margin-bottom: 4px; 6757 } 6758 .gpt-popup-message.system-info { 6759 justify-content: center; 6760 } 6761 .gpt-popup-message.system-info .system-info-content { 6762 background: #f0f0f0; 6763 color: #666; 6764 font-size: 13px; 6765 text-align: center; 6766 padding: 8px 16px; 6767 border-radius: 12px; 6768 max-width: 85%; 6769 } 6770 .gpt-popup-live-badge { 6771 display: inline-flex; 6772 align-items: center; 6773 gap: 5px; 6774 background: #27ae60; 6775 color: #fff !important; 6776 font-size: 11px; 6777 font-weight: 700; 6778 padding: 2px 8px; 6779 border-radius: 10px; 6780 margin-left: 10px; 6781 letter-spacing: 0.5px; 6782 } 6783 .gpt-popup-live-dot { 6784 width: 6px; 6785 height: 6px; 6786 border-radius: 50%; 6787 background: #fff; 6788 animation: gpt-popup-live-pulse 1.5s infinite; 6789 }
6790 @keyframes gpt-popup-live-pulse { 6791 0%, 100% { opacity: 1; } 6792 50% { opacity: 0.3; } 6793 } 6794 .gpt-popup-escalation-form { 6795 padding: 16px; 6796 margin: 10px 0; 6797 background: #f8f9fa; 6798 border-radius: 12px; 6799 border: 1px solid #e0e0e0; 6800 } 6801 .gpt-popup-escalation-form-title { 6802 font-weight: 600; 6803 font-size: 14px; 6804 margin-bottom: 12px; 6805 color: #333; 6806 } 6807 .gpt-popup-escalation-form-subtitle { 6808 font-size: 13px; 6809 color: #666; 6810 margin-bottom: 12px; 6811 line-height: 1.4; 6812 } 6813 .gpt-popup-escalation-field { 6814 margin-bottom: 8px; 6815 } 6816 .gpt-popup-escalation-input { 6817 width: 100%; 6818 padding: 8px 12px; 6819 border: 1px solid #ddd; 6820 border-radius: 8px; 6821 font-size: 14px; 6822 font-family: inherit; 6823 box-sizing: border-box; 6824 } 6825 .gpt-popup-escalation-input:focus { 6826 outline: none; 6827 border-color: #e4ccc4; 6828 } 6829 .gpt-popup-escalation-submit { 6830 width: 100%; 6831 padding: 10px; 6832 background: #ffc0cb; 6833 color: #000000; 6834 border: none; 6835 border-radius: 8px; 6836 font-size: 14px; 6837 font-weight: 600; 6838 cursor: pointer; 6839 margin-top: 4px; 6840 } 6841 .gpt-popup-escalation-submit:hover { 6842 background: #d8a3ac; 6843 } 6844 .gpt-popup-escalation-submit:disabled { 6845 opacity: 0.6; 6846 cursor: not-allowed; 6847 } 6848</style> 6849 6850<!-- Chat Container --> 6851<div class="gpt-popup-chat-container" id="gpt-popup-chat"> 6852 <!-- Header --> 6853 <div class="gpt-popup-chat-header"> 6854 <div class="gpt-popup-chat-avatar"> 6855 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052/697c76b415f40.png" alt=""> 6856 </div> 6857 <div class="gpt-popup-chat-header-info"> 6858 <h3>Leadership & Professional Development Guide</h3> 6859 <div class="gpt-popup-desc-wrapper" id="gpt-popup-desc-wrapper"> 6860 <p>Discover which professional development service is right for you — from leadership courses to mentorship, audits, and coach certification.</p> 6861 </div> 6862 </div> 6863 </div> 6864 6865 <!-- Messages --> 6866 <div class="gpt-popup-messages-wrapper"> 6867 <div class="gpt-popup-chat-messages" id="gpt-popup-messages"> 6868 <!-- Welcome message --> 6869 <div class="gpt-popup-message assistant"> 6870 <div class="gpt-popup-message-avatar"> 6871 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052/697c76b415f40.png" alt=""> 6872 </div> 6873 <div class="gpt-popup-message-content"> 6874 Welcome! I'm here to help you find the right professional development solution for your needs. Whether you're looking to enhance your leadership skills, get business clarity, or explore coaching certification, let's find the perfect fit for you. What brings you here today? </div> 6875 </div> 6876 6877 6878 <!-- Typing indicator --> 6879 <div class="gpt-popup-message assistant" id="gpt-popup-typing" style="display:none;"> 6880 <div class="gpt-popup-message-avatar"> 6881 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052/697c76b415f40.png" alt=""> 6882 </div> 6883 <div class="gpt-popup-message-content"> 6884 <div class="gpt-popup-typing-indicator" style="display:flex;"> 6885 <span></span><span></span><span></span> 6886 </div> 6887 </div> 6888 </div> 6889 </div> 6890 6891 <!-- Scroll indicator --> 6892 <div class="gpt-popup-scroll-indicator" id="gpt-popup-scroll-indicator"> 6893 <span>More below</span> 6894 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px;"> 6895 <path d="M19 14l-7 7m0 0l-7-7m7 7V3"/> 6896 </svg> 6897 </div> 6898 </div> 6899 6900 <!-- Conversation Starters --> 6901 <div class="gpt-popup-starters-section" id="gpt-popup-starters"> 6902 <div class="gpt-popup-starters-label">Tap to start</div>
6903 <div class="gpt-popup-starters-grid"> 6904 <button type="button" class="gpt-popup-starter-btn" data-starter="I'm an emerging leader looking to improve my team management">I'm an emerging leader looking to improve my team management</button> 6905 <button type="button" class="gpt-popup-starter-btn" data-starter="I'm a business owner interested in mentorship">I'm a business owner interested in mentorship</button> 6906 <button type="button" class="gpt-popup-starter-btn" data-starter="I need clarity on my business and HR processes">I need clarity on my business and HR processes</button> 6907 <button type="button" class="gpt-popup-starter-btn" data-starter="I'm interested in becoming a certified coach">I'm interested in becoming a certified coach</button> 6908 </div> 6909 </div> 6910 6911 <!-- Input Section --> 6912 <div class="gpt-popup-input-section" id="gpt-popup-input-section"> 6913 <div class="gpt-popup-input-wrapper"> 6914 <textarea class="gpt-popup-chat-input" id="gpt-popup-input" placeholder="Type a message..." rows="1"></textarea> 6915 <button type="button" class="gpt-popup-send-btn" id="gpt-popup-send-btn"> 6916 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 6917 <path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/> 6918 </svg> 6919 </button> 6920 </div> 6921 </div> 6922</div> 6923 6924
6925<script src="/js/gpt-format-markdown.js?v=1"></script>
vendor: 1 bytes, line 6925
6925
6926<script src="/js/gpt-chat-core.js?v=24"></script>
vendor: 1 bytes, line 6926
6926
6927<script> 6928(function() { 6929 var gptWidgetConfig = { 6930 mode: 'popup', 6931 cssPrefix: 'gpt-popup-', 6932 fetchPrefix: '', 6933 gptSlug: 'leadership-professional-development-guide', 6934 gptPhoto: 'https://attractwell-2052-fast.b-cdn.net/images/2052/697c76b415f40.png', 6935 gptInitial: 'L', 6936 sessionToken: '', 6937 storageKey: 'gpt_session_popup_leadership-professional-development-guide', 6938 messagesKey: 'gpt_messages_popup_leadership-professional-development-guide', 6939 completedKey: 'gpt_completed_popup_leadership-professional-development-guide', 6940 recognizedContact: null, 6941 lessonContext: null, 6942 collectName: false, 6943 requireName: false, 6944 collectEmail: false, 6945 requireEmail: false, 6946 collectPhone: false, 6947 requirePhone: false, 6948 contactCollectTiming: 0, 6949 contactCollectMethod: 0, 6950 escalationFormTitle: "", 6951 escalationFormSubtitle: "", 6952 escalationMessagePlaceholder: "", 6953 escalationSubmitButtonLabel: "", 6954 isEmbed: false, 6955 multichoiceMode: 1, 6956 streamResponses: 1 }; 6957 window.gptWidgetConfig = gptWidgetConfig; 6958 6959 var elements = { 6960 messagesContainer: document.getElementById('gpt-popup-messages'), 6961 chatInput: document.getElementById('gpt-popup-input'), 6962 sendBtn: document.getElementById('gpt-popup-send-btn'), 6963 startersSection: document.getElementById('gpt-popup-starters'), 6964 inputSection: document.getElementById('gpt-popup-input-section'), 6965 scrollIndicator: document.getElementById('gpt-popup-scroll-indicator'), 6966 typingIndicator: document.getElementById('gpt-popup-typing') 6967 }; 6968 6969 var userName = gptWidgetConfig.recognizedContact ? gptWidgetConfig.recognizedContact.name : null; 6970 6971 function getInitials(name) { 6972 if (!name) return 'You'; 6973 var words = name.trim().split(/\s+/); 6974 var initials = ''; 6975 for (var i = 0; i < Math.min(words.length, 3); i++) { 6976 if (words[i].length > 0) { 6977 initials += words[i][0].toUpperCase(); 6978 } 6979 } 6980 return initials || 'You'; 6981 } 6982 6983 function updateUserAvatars() { 6984 var initials = getInitials(userName); 6985 elements.messagesContainer.querySelectorAll('.gpt-popup-message.user .gpt-popup-message-avatar').forEach(function(avatar) { 6986 if (!avatar.querySelector('img')) { 6987 avatar.textContent = initials; 6988 } 6989 }); 6990 } 6991 6992 var chat = new GptChatCore({ 6993 fetchPrefix: gptWidgetConfig.fetchPrefix, 6994 gptSlug: gptWidgetConfig.gptSlug, 6995 gptPhoto: gptWidgetConfig.gptPhoto, 6996 gptInitial: gptWidgetConfig.gptInitial, 6997 elements: elements, 6998 cssPrefix: gptWidgetConfig.cssPrefix, 6999 lessonContext: gptWidgetConfig.lessonContext, 7000 isEmbed: gptWidgetConfig.isEmbed, 7001 multichoiceMode: gptWidgetConfig.multichoiceMode, 7002 streamResponses: gptWidgetConfig.streamResponses, 7003 contact: { 7004 collectName: gptWidgetConfig.collectName, 7005 requireName: gptWidgetConfig.requireName, 7006 collectEmail: gptWidgetConfig.collectEmail, 7007 requireEmail: gptWidgetConfig.requireEmail, 7008 collectPhone: gptWidgetConfig.collectPhone, 7009 requirePhone: gptWidgetConfig.requirePhone, 7010 contactCollectTiming: gptWidgetConfig.contactCollectTiming, 7011 contactCollectMethod: gptWidgetConfig.contactCollectMethod, 7012 recognizedContact: gptWidgetConfig.recognizedContact 7013 }, 7014 escalation: { 7015 formTitle: gptWidgetConfig.escalationFormTitle, 7016 formSubtitle: gptWidgetConfig.escalationFormSubtitle, 7017 messagePlaceholder: gptWidgetConfig.escalationMessagePlaceholder, 7018 submitButtonLabel: gptWidgetConfig.escalationSubmitButtonLabel 7019 }, 7020 callbacks: { 7021 getUserInitials: function() { return getInitials(userName); }, 7022 onMessageSent: function() { 7023 saveConversation(); 7024 collapseDescription(); 7025 }, 7026 onResponseComplete: function() { 7027 saveConversation(); 7028 if (chat.promptContactIfNeeded) { 7029 chat.promptContactIfNeeded(); 7030 } 7031 }, 7032 onOutcomeComplete: function(data) { 7033 if (data.success) { 7034 if (!data.continue_chat) { 7035 try { 7036 var savedUrl = data.redirect_url || window.location.href; 7037 var savedLabel = data.button_label || 'Continue'; 7038 if (data.lesson_advance_to_next) { 7039 savedLabel = data.redirect_url ? 'Continue to Next Lesson' : 'Back to Class'; 7040 } 7041 localStorage.setItem(gptWidgetConfig.completedKey, JSON.stringify({ 7042 redirectUrl: savedUrl, 7043 buttonLabel: savedLabel 7044 })); 7045 } catch(e) { console.error('Error saving completed state:', e); } 7046 } 7047 handleOutcome(data); 7048 } 7049 }, 7050 onContactNameSet: function(name) { 7051 userName = name; 7052 updateUserAvatars(); 7053 }, 7054 onContactCollected: function() { 7055 if (chat.contact.contactCollectTiming === 1) { 7056 var input = elements.chatInput; 7057 if (input && input.value.trim()) { 7058 chat.sendMessage(input.value.trim()); 7059 input.value = ''; 7060 } 7061 } 7062 if (chat.executePendingOutcome) { 7063 chat.executePendingOutcome(); 7064 } 7065 } 7066 } 7067 }); 7068 7069 if (gptWidgetConfig.sessionToken) { 7070 chat.sessionToken = gptWidgetConfig.sessionToken; 7071 } 7072 7073 7074 if (chat.initScrollBehavior) { 7075 chat.initScrollBehavior(); 7076 } 7077 7078 var descWrapper = document.getElementById('gpt-popup-desc-wrapper'); 7079 var descCollapsed = false;
7080 7081 function collapseDescription() { 7082 if (!descWrapper || descCollapsed) { 7083 return; 7084 } 7085 descCollapsed = true; 7086 var fullHeight = descWrapper.scrollHeight; 7087 descWrapper.style.maxHeight = fullHeight + 'px'; 7088 descWrapper.offsetHeight; 7089 descWrapper.classList.add('collapsed'); 7090 descWrapper.style.maxHeight = '1.4em'; 7091 } 7092 7093 function toggleDescription() { 7094 if (!descWrapper || !descCollapsed) { 7095 return; 7096 } 7097 if (descWrapper.classList.contains('collapsed')) { 7098 descWrapper.classList.remove('collapsed'); 7099 var fullHeight = descWrapper.scrollHeight; 7100 descWrapper.classList.add('collapsed'); 7101 descWrapper.offsetHeight; 7102 descWrapper.classList.remove('collapsed'); 7103 descWrapper.style.maxHeight = fullHeight + 'px'; 7104 } else { 7105 descWrapper.classList.add('collapsed'); 7106 descWrapper.style.maxHeight = '1.4em'; 7107 } 7108 } 7109 7110 if (descWrapper) { 7111 descWrapper.addEventListener('click', toggleDescription); 7112 } 7113 7114 7115 function saveConversation() { 7116 try { 7117 var sessionToken = chat.getSessionToken ? chat.getSessionToken() : chat.sessionToken; 7118 if (sessionToken) { 7119 localStorage.setItem(gptWidgetConfig.storageKey, sessionToken); 7120 } 7121 } catch(e) { } 7122 } 7123 7124 function handleOutcome(outcome) { 7125 if (outcome.continue_chat) { 7126 return; 7127 } 7128 7129 var lessonCtx = gptWidgetConfig.lessonContext; 7130 var redirectUrl = outcome.redirect_url || window.location.href; 7131 var buttonLabel = outcome.button_label || 'Continue'; 7132 7133 if (outcome.lesson_advance_to_next) { 7134 buttonLabel = outcome.redirect_url ? 'Continue to Next Lesson' : 'Back to Class'; 7135 if (!outcome.redirect_url && lessonCtx) { 7136 redirectUrl = '/members/vaults/' + lessonCtx.vault_id + '/classes/' + lessonCtx.online_class_id; 7137 } 7138 } 7139 7140 addContinueButton(redirectUrl, buttonLabel); 7141 } 7142 7143 function addContinueButton(redirectUrl, buttonLabel, thankYouMessage, skipSave) { 7144 elements.inputSection.style.display = 'none'; 7145 7146 var existingContinue = elements.inputSection.parentNode.querySelectorAll('.gpt-popup-continue-section'); 7147 existingContinue.forEach(function(el) { el.remove(); }); 7148 7149 var continueDiv = document.createElement('div'); 7150 continueDiv.className = 'gpt-popup-continue-section'; 7151 continueDiv.innerHTML = 7152 '<button type="button" class="gpt-popup-continue-btn">' + 7153 (buttonLabel || 'Continue') + 7154 '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:18px;height:18px;margin-left:8px;">' + 7155 '<path d="M5 12h14M12 5l7 7-7 7"/>' + 7156 '</svg>' + 7157 '</button>'; 7158 7159 elements.inputSection.parentNode.insertBefore(continueDiv, elements.inputSection); 7160 elements.messagesContainer.scrollTop = elements.messagesContainer.scrollHeight; 7161 7162 continueDiv.querySelector('button').addEventListener('click', function() { 7163 if (redirectUrl) { 7164 if (gptWidgetConfig.isEmbed) { 7165 window.open(redirectUrl, '_top'); 7166 } else { 7167 window.location.href = redirectUrl; 7168 } 7169 } 7170 }); 7171 7172 if (!skipSave) { 7173 try { 7174 localStorage.setItem(gptWidgetConfig.completedKey, JSON.stringify({ 7175 redirectUrl: redirectUrl, 7176 buttonLabel: buttonLabel || 'Continue' 7177 })); 7178 } catch(e) { } 7179 } 7180 } 7181 7182 function loadConversation(sessionToken, indicatorEl) { 7183 if (indicatorEl) { 7184 indicatorEl.innerHTML = '<div class="gpt-popup-resume-text">Loading conversation...</div>'; 7185 } 7186 7187 return fetch(gptWidgetConfig.fetchPrefix + '/gpt/messages?session=' + encodeURIComponent(sessionToken)) 7188 .then(function(response) { return response.json(); }) 7189 .then(function(data) { 7190 if (indicatorEl) indicatorEl.remove(); 7191 elements.messagesContainer.style.display = ''; 7192 7193 if (data.success && data.messages && data.messages.length > 0) { 7194 chat.sessionToken = sessionToken; 7195 elements.messagesContainer.innerHTML = ''; 7196 7197 if (data.owner_name) { 7198 chat.ownerName = data.owner_name; 7199 } 7200 7201 if (data.contact_collected && chat.contact) { 7202 chat.contact.collected = true; 7203 } 7204
7205 data.messages.forEach(function(msg) { 7206 if (msg.role === 'system') { 7207 return; 7208 } 7209 chat.addMessage(msg.content, msg.role); 7210 if (msg.id && msg.id > chat.lastMessageId) { 7211 chat.lastMessageId = msg.id; 7212 } 7213 }); 7214 7215 if (chat.attachOptionHandlers) { 7216 chat.attachOptionHandlers(elements.messagesContainer); 7217 } 7218 elements.messagesContainer.scrollTop = elements.messagesContainer.scrollHeight; 7219 collapseDescription(); 7220 7221 if (data.status !== 'completed') { 7222 elements.inputSection.style.display = ''; 7223 elements.chatInput.disabled = false; 7224 if (!elements.chatInput.value) { 7225 elements.chatInput.placeholder = 'Type a message...'; 7226 } 7227 elements.sendBtn.disabled = false; 7228 elements.sendBtn.style.opacity = ''; 7229 elements.sendBtn.style.pointerEvents = ''; 7230 } 7231 7232 if (data.escalated && data.status !== 'completed') { 7233 chat.isEscalated = true; 7234 chat.showLiveIndicator(); 7235 chat.startPolling(); 7236 if (elements.chatInput) { 7237 elements.chatInput.placeholder = 'Type a message...'; 7238 } 7239 } else if (data.status === 'completed') { 7240 try { 7241 var savedCompleted = localStorage.getItem(gptWidgetConfig.completedKey); 7242 var restoreUrl = window.location.href; 7243 var restoreLabel = 'Continue'; 7244 var thankYou = null; 7245 7246 if (savedCompleted) { 7247 var completedState = JSON.parse(savedCompleted); 7248 if (completedState) { 7249 restoreUrl = completedState.redirectUrl || restoreUrl; 7250 restoreLabel = completedState.buttonLabel || restoreLabel; 7251 } 7252 } else if (data.redirect_url) { 7253 restoreUrl = data.redirect_url; 7254 restoreLabel = data.button_label || restoreLabel; 7255 thankYou = data.thank_you_message || null; 7256 } 7257 7258 addContinueButton(restoreUrl, restoreLabel, thankYou, true); 7259 } catch(e) { console.error('Error restoring completed state:', e); } 7260 } 7261 return true; 7262 } else { 7263 localStorage.removeItem(gptWidgetConfig.storageKey); 7264 localStorage.removeItem(gptWidgetConfig.completedKey); 7265 if (elements.startersSection) elements.startersSection.style.display = ''; 7266 return false; 7267 } 7268 }) 7269 .catch(function(err) { 7270 console.error('Error fetching messages:', err); 7271 if (indicatorEl) indicatorEl.remove(); 7272 elements.messagesContainer.style.display = ''; 7273 if (elements.startersSection) elements.startersSection.style.display = ''; 7274 localStorage.removeItem(gptWidgetConfig.storageKey); 7275 localStorage.removeItem(gptWidgetConfig.completedKey); 7276 return false; 7277 }); 7278 } 7279 7280 function checkForExistingSession() { 7281 var urlParams = new URLSearchParams(window.location.search); 7282 var resumeToken = urlParams.get('resume'); 7283 if (resumeToken) {
7284 urlParams.delete('resume'); 7285 var newUrl = window.location.pathname; 7286 if (urlParams.toString()) { 7287 newUrl += '?' + urlParams.toString(); 7288 } 7289 window.history.replaceState({}, '', newUrl); 7290 7291 if (elements.startersSection) { 7292 elements.startersSection.style.display = 'none'; 7293 } 7294 elements.messagesContainer.style.display = 'none'; 7295 var loadingDiv = document.createElement('div'); 7296 loadingDiv.className = 'gpt-popup-resume-prompt'; 7297 elements.messagesContainer.parentNode.insertBefore(loadingDiv, elements.messagesContainer); 7298 7299 loadConversation(resumeToken, loadingDiv); 7300 return; 7301 } 7302 7303 try { 7304 var savedSession = localStorage.getItem(gptWidgetConfig.storageKey); 7305 if (savedSession) { 7306 showResumePrompt(savedSession); 7307 } 7308 } catch(e) { } 7309 } 7310 7311 function showResumePrompt(savedSession) { 7312 var resumeDiv = document.createElement('div'); 7313 resumeDiv.className = 'gpt-popup-resume-prompt'; 7314 resumeDiv.innerHTML = 7315 '<div class="gpt-popup-resume-text">You have a previous conversation. Would you like to continue?</div>' + 7316 '<div class="gpt-popup-resume-buttons">' + 7317 '<button type="button" class="gpt-popup-resume-btn" id="gpt-popup-resume-yes">Resume</button>' + 7318 '<button type="button" class="gpt-popup-resume-btn gpt-popup-resume-fresh" id="gpt-popup-resume-no">Start Fresh</button>' + 7319 '</div>'; 7320 7321 elements.messagesContainer.parentNode.insertBefore(resumeDiv, elements.messagesContainer); 7322 elements.messagesContainer.style.display = 'none'; 7323 if (elements.startersSection) elements.startersSection.style.display = 'none'; 7324 7325 elements.chatInput.disabled = true; 7326 elements.chatInput.placeholder = 'Choose an option above to continue...'; 7327 elements.sendBtn.disabled = true; 7328 elements.sendBtn.style.opacity = '0.5'; 7329 elements.sendBtn.style.pointerEvents = 'none'; 7330 7331 document.getElementById('gpt-popup-resume-yes').addEventListener('click', function() { 7332 elements.chatInput.disabled = false; 7333 elements.chatInput.placeholder = 'Type a message...'; 7334 elements.sendBtn.disabled = false; 7335 elements.sendBtn.style.opacity = ''; 7336 elements.sendBtn.style.pointerEvents = ''; 7337 7338 loadConversation(savedSession, resumeDiv); 7339 }); 7340 7341 document.getElementById('gpt-popup-resume-no').addEventListener('click', function() { 7342 elements.chatInput.disabled = false; 7343 elements.chatInput.placeholder = 'Type a message...'; 7344 elements.sendBtn.disabled = false; 7345 elements.sendBtn.style.opacity = ''; 7346 elements.sendBtn.style.pointerEvents = ''; 7347 resumeDiv.remove(); 7348 elements.messagesContainer.style.display = ''; 7349 if (elements.startersSection) elements.startersSection.style.display = ''; 7350 try { 7351 localStorage.removeItem(gptWidgetConfig.storageKey); 7352 localStorage.removeItem(gptWidgetConfig.completedKey); 7353 } catch(e) { } 7354 }); 7355 } 7356 7357 checkForExistingSession(); 7358 7359 elements.chatInput.addEventListener('input', function() { 7360 this.style.height = 'auto'; 7361 this.style.height = Math.min(this.scrollHeight, 100) + 'px'; 7362 }); 7363 7364 elements.chatInput.addEventListener('keydown', function(e) { 7365 if (e.key === 'Tab') { 7366 chat.handleKeydown(e); 7367 return; 7368 } 7369 if (e.key === 'Enter' && !e.shiftKey) { 7370 chat.handleKeydown(e); 7371 } 7372 }); 7373 7374 elements.sendBtn.addEventListener('click', function() { 7375 chat.sendMessage(); 7376 }); 7377 7378 document.querySelectorAll('.gpt-popup-starter-btn').forEach(function(btn) { 7379 btn.addEventListener('click', function() { 7380 elements.chatInput.value = this.dataset.starter; 7381 chat.sendMessage(); 7382 }); 7383 }); 7384 7385 var notMeLink = document.getElementById('gpt-popup-not-me-link'); 7386 if (notMeLink) { 7387 notMeLink.addEventListener('click', function(e) { 7388 e.preventDefault(); 7389 document.cookie = 'contact_id=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; 7390 if (chat.resetContact) { 7391 chat.resetContact(); 7392 } 7393 userName = null; 7394 var recognizedUser = document.getElementById('gpt-popup-recognized-user'); 7395 if (recognizedUser) { 7396 recognizedUser.style.display = 'none'; 7397 } 7398 if (chat.showContactModal) { 7399 chat.showContactModal(); 7400 } 7401 }); 7402 } 7403 7404 window.gptWidgetChat = window.gptWidgetChat || {}; 7405 window.gptWidgetChat['gpt-popup-chat'] = chat; 7406})(); 7407</script>
7407 7408 </div> 7409</div> 7410
7411<script> 7412$(function() { 7413 var $openBtn = $('#gpt-popup-open-btn'); 7414 var $overlay = $('#gpt-popup-overlay'); 7415 var $closeBtn = $('#gpt-popup-close-btn'); 7416 var $expandBtn = $('#gpt-popup-expand-btn'); 7417 var $chatInput = $('#gpt-popup-input'); 7418 7419 if ($openBtn.length === 0 || $overlay.length === 0) { 7420 console.error('GPT Popup: Required elements not found'); 7421 return; 7422 } 7423 7424 function openPopup() { 7425 $overlay.addClass('active'); 7426 $openBtn.addClass('gpt-popup-btn-hidden'); 7427 if ($chatInput.length) $chatInput.focus(); 7428 } 7429 7430 function closePopup() { 7431 $overlay.removeClass('active expanded'); 7432 $expandBtn.attr('title', 'Expand'); 7433 $openBtn.removeClass('gpt-popup-btn-hidden'); 7434 } 7435 7436 function toggleExpanded() { 7437 $overlay.toggleClass('expanded'); 7438 var isExpanded = $overlay.hasClass('expanded'); 7439 $expandBtn.attr('title', isExpanded ? 'Collapse' : 'Expand'); 7440 } 7441 7442 $openBtn.on('click', function(e) { 7443 e.preventDefault(); 7444 e.stopPropagation(); 7445 openPopup(); 7446 }); 7447 7448 $closeBtn.on('click', function() { 7449 closePopup(); 7450 }); 7451 7452 /* */ 7453 $overlay.on('click', function(e) { 7454 if (e.target === this && $overlay.hasClass('expanded')) { 7455 toggleExpanded(); 7456 } 7457 }); 7458 7459 $expandBtn.on('click', function(e) { 7460 e.preventDefault(); 7461 e.stopPropagation(); 7462 toggleExpanded(); 7463 }); 7464 7465 $(document).on('keydown', function(e) { 7466 if (e.key === 'Escape' && $overlay.hasClass('active')) { 7467 if ($overlay.hasClass('expanded')) { 7468 toggleExpanded(); 7469 } else { 7470 closePopup(); 7471 } 7472 } 7473 }); 7474}); 7475</script>
7475 7476
7477<script> 7478$(function() { 7479 function openGptPopupFromHash() { 7480 var $overlay = $('#gpt-popup-overlay'); 7481 var $openBtn = $('#gpt-popup-open-btn'); 7482 var $chatInput = $('#gpt-popup-input'); 7483 if ($overlay.length) { 7484 $overlay.addClass('active'); 7485 if ($openBtn.length) { 7486 $openBtn.addClass('gpt-popup-btn-hidden'); 7487 } 7488 if ($chatInput.length) { 7489 $chatInput.focus(); 7490 } 7491 } 7492 } 7493 7494 var hash = window.location.hash.toLowerCase(); 7495 if (hash === '#gpt' || hash === '#chat') { 7496 setTimeout(openGptPopupFromHash, 500); 7497 } 7498 7499 $(document).on('click', 'a[href="#gpt"], a[href="#chat"], a[href$="#gpt"], a[href$="#chat"]', function(e) { 7500 e.preventDefault(); 7501 openGptPopupFromHash(); 7502 return false; 7503 }); 7504 7505 $(window).on('hashchange', function() { 7506 var newHash = window.location.hash.toLowerCase(); 7507 if (newHash === '#gpt' || newHash === '#chat') { 7508 openGptPopupFromHash(); 7509 } 7510 return false; 7511 }); 7512}); 7513</script>
7513 7514 </main><!-- main content end --> 7515 7516 <a name="contact"></a> 7517 7518 7519 <footer id="footer" class="dark"> 7520 7521 <!-- Copyrights 7522 ============================================= --> 7523 <div id="copyrights"> 7524 7525 <div class="container clearfix text-center"> 7526 7527 <div> 7528 Copyright © 2026 by respective copyright holders, which include but may not be limited to Brooks Demming and AttractWell. </div> 7529 </div> 7530 7531 </div><!-- #copyrights end --> 7532 7533 </footer><!-- #footer end --> 7534 7535</div><!-- #wrapper end --> 7536 7537 7538 7539 7540<style> 7541 .subscribe { 7542 font-weight: 300; 7543 margin-bottom:15px; 7544 } 7545 .subscribe label { 7546 font-weight: 300; 7547 display:inline; 7548 white-space:nowrap; 7549 } 7550 .subscribe > span, .subscribe > span > span { 7551 white-space:nowrap; 7552 } 7553 #contact-me-message { 7554 min-height:60px; 7555 margin-bottom:10px; 7556 max-height:120px; 7557 } 7558 .contact-form-address { 7559 display:none; 7560 } 7561 .sm-form-control { 7562 font-size: 1.8rem; 7563 height: auto; 7564 } 7565 .contact-form-grid { 7566 display: grid; 7567 grid-template-columns: 1fr 1fr; 7568 grid-gap: 2rem; 7569 align-items: center; 7570 justify-items: center; 7571 padding: 1rem; 7572 } 7573 .contact-form-grid > div { 7574 width: 100%; 7575 } 7576 @media (max-width: 991px) { 7577 .contact-form-grid { 7578 grid-template-columns: 1fr; 7579 } 7580 } 7581</style> 7582 7583<!-- Contact Me Modal --> 7584<div class="modal fade" id="contactMeModal" tabindex="-1" role="dialog" aria-labelledby="contactMeModalLabel" aria-hidden="true"> 7585 <div class="modal-dialog modal-lg"> 7586 <div class="modal-body"> 7587 <div class="modal-content"> 7588 <div class="modal-body"> 7589 <div class="contact-form-grid"> 7590 <div> 7591 <img src="https://attractwell-2052-fast.b-cdn.net/images/2052-67c1c938149b9.jpg" style="width:100%;" loading="lazy"> 7592 </div> 7593 <div> 7594 <div class="text-center"> 7595 <button type="button" class="close pull-right" data-dismiss="modal" aria-hidden="true">×</button> 7596 <h2 class="ls1 nobottommargin" id="contactMeModalLabel">Brooks Demming</h2> 7597 7598 <div style="color: #888888;font-weight:300;margin-bottom:10px;"> 7599 USA<br> <a href="tel:912-547-9943">912-547-9943</a> 7600 • 7601 <a href="mailto:support@brooksdemming.com">support@brooksdemming.com</a> 7602 <div style="margin-top:1rem;text-align:center;"> 7603 7604 <style> 7605 .social-icon { 7606 float: none; 7607 display: inline-block; 7608 } 7609 .si-snapchat:hover { 7610 background-color: #fffc00; 7611 } 7612 .snapchat-adjust { 7613 padding-top: 9px; 7614 } 7615 .snapchat-adjust:hover { 7616 padding-top: 15px; 7617 } 7618 .snapchat-adjust:not(.si-small):hover { 7619 padding-top: 18px; 7620 } 7621 .snapchat-adjust:hover i:first-child { 7622 visibility: hidden; 7623 } 7624 .snapchat-adjust i:last-child { 7625 color: #333 !important; 7626 } 7627 .fa-x-twitter:first-of-type { 7628 margin-top: 8px; 7629 } 7630 .fa-x-twitter:last-child { 7631 margin-top: 24px; 7632 } 7633 .fa-x-twitter-large { 7634 padding-top: 1px; 7635 } 7636 .fa-snapchat-ghost:first-of-type { 7637 margin-bottom:10px; 7638 } 7639 .fa-snapchat-ghost:last-child { 7640 position: relative; 7641 top: -1px; 7642 } 7643 .snapchat-adjust-large { 7644 padding-top: 10px; 7645 } 7646 .snapchat-adjust-large:hover { 7647 padding-top: 18px; 7648 } 7649 .snapchat-adjust-large:hover i:first-child { 7650 visibility: hidden; 7651 } 7652 .dark .snapchat-adjust-large i:last-child { 7653 color: #333 !important; 7654 } 7655 .fa-snapchat-ghost-large:first-of-type { 7656 margin-bottom:10px; 7657 } 7658 </style><a href="https://www.facebook.com/brooks.demming" target="_blank" class="social-icon si-small si-borderless si-facebook"> 7659 <i class="icon-facebook"></i> 7660 <i class="icon-facebook"></i> 7661 </a><a href="https://twitter.com/brooklyndemm" target="_blank" class="social-icon si-small si-borderless si-twitter"> 7662 <i class="fa-brands fa-x-twitter"></i> 7663 <i class="fa-brands fa-x-twitter"></i> 7664 </a><a href="https://www.instagram.com/demmingb/" target="_blank" class="social-icon si-small si-borderless si-instagram"> 7665 <i class="icon-instagram"></i> 7666 <i class="icon-instagram"></i> 7667 </a><a href="https://www.youtube.com/channel/UCg0pPtKsAceF56wblE7vlXA" target="_blank" class="social-icon si-small si-borderless si-youtube"> 7668 <i class="icon-youtube"></i> 7669 <i class="icon-youtube"></i> 7670 </a> </div> 7671</div> 7672 7673 7674 <div><input type="text" id="contact-me-name" name="contact-me-name" value="" class="sm-form-control" placeholder="Name" maxlength="50" style="margin-bottom:10px;"></div> 7675 <div class="row"> 7676 <div class="col-md-6"><input type="text" id="contact-me-phone" name="contact-me-phone" value="" class="sm-form-control" placeholder="Phone" maxlength="50" style="margin-bottom:10px;"></div> 7677 <div class="col-md-6"><input type="email" id="contact-me-email" name="contact-me-email" value="" class="sm-form-control" placeholder="Email" maxlength="100" style="margin-bottom:10px;"></div> 7678 </div> 7679 <div style="margin-bottom:10px;"> 7680 <select class="sm-form-control" id="contact-me-country" name="contact-me-country"> 7681 <optgroup label="My Country"> 7682 <option value="">Please select</option> 7683 <option value="USA" selected>USA</option><option value="Australia">Australia</option><option value="Canada">Canada</option><option value="Singapore">Singapore</option><option value="Afghanistan">Afghanistan</option><option value="Albania">Albania</option><option value="Algeria">Algeria</option><option value="American Samoa">American Samoa</option><option value="Andorra">Andorra</option><option value="Angola">Angola</option><option value="Anguilla">Anguilla</option><option value="Antarctica">Antarctica</option><option value="Antigua and Barbuda">Antigua and Barbuda</option><option value="Argentina">Argentina</option><option value="Armenia">Armenia</option><option value="Aruba">Aruba</option><option value="Austria">Austria</option><option value="Azerbaidjan">Azerbaidjan</option><option value="Bahamas">Bahamas</option><option value="Bahrain">Bahrain</option><option value="Bangladesh">Bangladesh</option><option value="Barbados">Barbados</option><option value="Belarus">Belarus</option><option value="Belgium">Belgium</option><option value="Belize">Belize</option><option value="Benin">Benin</option><option value="Bermuda">Bermuda</option><option value="Bhutan">Bhutan</option><option value="Bolivia">Bolivia</option><option value="Bosnia-Herzegovina">Bosnia-Herzegovina</option><option value="Botswana">Botswana</option><option value="Bouvet Island">Bouvet Island</option><option value="Brazil">Brazil</option><option value="British Indian Ocean Territory">British Indian Ocean Territory</option><option value="Brunei">Brunei</option><option value="Bulgaria">Bulgaria</option><option value="Burkina Faso">Burkina Faso</option><option value="Burundi">Burundi</option><option value="Cambodia">Cambodia</option><option value="Cameroon">Cameroon</option><option value="Canary Islands">Canary Islands</option><option value="Cape Verde">Cape Verde</option><option value="Cayman Islands">Cayman Islands</option><option value="Central African Republic">Central African Republic</option><option value="Chad">Chad</option><option value="Chile">Chile</option><option value="China">China</option><option value="Christmas Island">Christmas Island</option><option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option><option value="Colombia">Colombia</option><option value="Comoros">Comoros</option><option value="Congo">Congo</option><option value="Congo, The Democratic Republic Of The">Congo, The Democratic Republic Of The</option><option value="Cook Islands">Cook Islands</option><option value="Costa Rica">Costa Rica</option><option value="Croatia">Croatia</option><option value="Cuba">Cuba</option><option value="Cyprus">Cyprus</option><option value="Czech Republic">Czech Republic</option><option value="Denmark">Denmark</option><option value="Djibouti">Djibouti</option><option value="Dominica">Dominica</option><option value="Dominican Republic">Dominican Republic</option><option value="East Timor">East Timor</option><option value="Ecuador">Ecuador</option><option value="Egypt">Egypt</option><option value="El Salvador">El Salvador</option><option value="Equatorial Guinea">Equatorial Guinea</option><option value="Eritrea">Eritrea</option><option value="Estonia">Estonia</option><option value="Ethiopia">Ethiopia</option><option value="Falkland Islands">Falkland Islands</option><option value="Faroe Islands">Faroe Islands</option><option value="Fiji Islands">Fiji Islands</option><option value="Finland">Finland</option><option value="France">
7683France</option><option value="French Guyana">French Guyana</option><option value="French Polynesia">French Polynesia</option><option value="French Southern Territories">French Southern Territories</option><option value="Gabon">Gabon</option><option value="Gambia">Gambia</option><option value="Georgia">Georgia</option><option value="Germany">Germany</option><option value="Ghana">Ghana</option><option value="Gibraltar">Gibraltar</option><option value="Greece">Greece</option><option value="Greenland">Greenland</option><option value="Grenada">Grenada</option><option value="Guadeloupe">Guadeloupe</option><option value="Guam">Guam</option><option value="Guatemala">Guatemala</option><option value="Guinea">Guinea</option><option value="Guinea-Bissau">Guinea-Bissau</option><option value="Guyana">Guyana</option><option value="Haiti">Haiti</option><option value="Heard and McDonald Islands">Heard and McDonald Islands</option><option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option><option value="Honduras">Honduras</option><option value="Hong Kong">Hong Kong</option><option value="Hungary">Hungary</option><option value="Iceland">Iceland</option><option value="India">India</option><option value="Indonesia">Indonesia</option><option value="Iran">Iran</option><option value="Iraq">Iraq</option><option value="Ireland">Ireland</option><option value="Israel">Israel</option><option value="Italy">Italy</option><option value="Ivory Coast">Ivory Coast</option><option value="Jamaica">Jamaica</option><option value="Japan">Japan</option><option value="Jersey">Jersey</option><option value="Jordan">Jordan</option><option value="Kazakhstan">Kazakhstan</option><option value="Kenya">Kenya</option><option value="Kiribati">Kiribati</option><option value="Korea">Korea</option><option value="Kosovo">Kosovo</option><option value="Kuwait">Kuwait</option><option value="Kyrgyzstan">Kyrgyzstan</option><option value="Lao Peoples Democratic Republic">Lao Peoples Democratic Republic</option><option value="Latvia">Latvia</option><option value="Lebanon">Lebanon</option><option value="Lesotho">Lesotho</option><option value="Liberia">Liberia</option><option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option><option value="Liechtenstein">Liechtenstein</option><option value="Lithuania">Lithuania</option><option value="Luxembourg">Luxembourg</option><option value="Macau">Macau</option><option value="Macedonia">Macedonia</option><option value="Madagascar">Madagascar</option><option value="Malawi">Malawi</option><option value="Malaysia">Malaysia</option><option value="Maldives">Maldives</option><option value="Mali">Mali</option><option value="Malta">Malta</option><option value="Marshall Islands">Marshall Islands</option><option value="Martinique">Martinique</option><option value="Mauritania">Mauritania</option><option value="Mauritius">Mauritius</option><option value="Mayotte">Mayotte</option><option value="Mexico">Mexico</option><option value="Micronesia">Micronesia</option><option value="Moldova, Republic Of">Moldova, Republic Of</option><option value="Monaco">Monaco</option><option value="Mongolia">Mongolia</option><option value="Montenegro">Montenegro</option><option value="Montserrat">Montserrat</option><option value="Morocco">Morocco</option><option value="Mozambique">Mozambique</option><option value="Myanmar">Myanmar</option><option value="Nambia">Nambia</option><option value="Nauru">Nauru</option><option value="Nepal">Nepal</option><option value="Netherlands">Netherlands</option><option value="Netherlands Antilles">Netherlands Antilles</option><option value="New Caledonia">New Caledonia</option><option value="New Zealand">New Zealand</option><option value="Nicaragua">Nicaragua</option><option value="Niger">Niger</option><option value="Nigeria">Nigeria</option><option value="Niue">Niue</option><option value="Norfolk Island">Norfolk Island</option><option value="Northern Mariana Islands">Northern Mariana Islands</option><option value="Norway">Norway</option><option value="Oman">Oman</option><option value="Pakistan">Pakistan</option><option value="Palau">Palau</option><option value="Panama">Panama</option><option value="Paupau New Guinea">Paupau New Guinea</option><option value="Paraguay">Paraguay</option><option value="Peru">Peru</option><option value="Philippines">Philippines</option><option value="Pitcairn">Pitcairn</option><option value="Poland">Poland</option><option value="Portugal">Portugal</option><option value="Puerto Rico">Puerto Rico</option><option value="Qatar">Qatar</option><option value="Reunion">Reunion</option><option value="Romania">Romania</option><option value="Russia">Russia</option><option value="Rwanda">Rwanda</option><option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option><option value="Saint Lucia">Saint Lucia</option><option value="Saint Vincent And The Grenadines">Saint Vincent And The Grenadines</option><option value="Samoa">Samoa</option><option value="San Marino">San Marino</option><option value="Sao Tome And Principe">Sao Tome And Principe</option><option value="Saudi Arabia">Saudi Arabia</option><option value="Senegal">Senegal</option><option value="Serbia">Serbia</option><option value="Seychelles">Seychelles</option><option value="Sierra Leone">Sierra Leone</option><option value="Slovakia">Slovakia</option><option value="Slovenia">Slovenia</option><option value="Solomon Islands">Solomon Islands</option><option value="Somalia">Somalia</option><option value="South Africa">South Africa</option><option value="South Georgia And The South Sandwich Islands">South Georgia And The South Sandwich Islands</option><option value="Spain">Spain</option><option value="Srilanka">Srilanka</option><option value="St. Helena">St. Helena</option><option value="St. Pierre And Miquelon">St. Pierre And Miquelon</option><option value="Sudan">Sudan</option><option value="Suriname">Suriname</option><option value="Svalbard And Jan Mayen Islands">Svalbard And Jan Mayen Islands</option><option value="Swaziland">Swaziland</option><option value="Sweden">Sweden</option><option value="Switzerland">Switzerland</option><option value="Syrian Arab Republic">Syrian Arab Republic</option><option value="Taiwan">Taiwan</option><option value="Tajikistan">Tajikistan</option><option value="Tanzania">Tanzania</option><option value="Thailand">Thailand</option><option value="Togo">Togo</option><option value="Tokelau">Tokelau</option><option value="Tonga">Tonga</option><option value="Trinidad And Tobago">Trinidad And Tobago</option><option value="Tunisia">Tunisia</option><option value="Turkmenistan">Turkmenistan</option><option value="Turks And Caicos Islands">Turks And Caicos Islands</option><option value="Tuvalu">Tuvalu</option><option value="Uganda">Uganda</option><option value="Ukraine">Ukraine</option><option value="United Arab Emirates">United Arab Emirates</option><option value="United Kingdom">United Kingdom</option><option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option><option value="Uruguay">Uruguay</option><option value="Uzbekistan">Uzbekistan</option><option value="Vanuatu">Vanuatu</option><option value="Venezuela">Venezuela</option><option value="Vietnam">Vietnam</option><option value="Virgin Islands (British)">Virgin Islands (British)</option><option value="Virgin Islands (US)">Virgin Islands (US)</option><option value="Wallis And Futuna Islands">Wallis And Futuna Islands</option><option value="Western Sahara">Western Sahara</option><option value="Yemen">Yemen</option><option value="Zambia">Zambia</option><option value="Zimbabwe">Zimbabwe</option> </optgroup> 7684 </select> 7685 </div> 7686 <div> 7687 <div><input type="text" id="contact-address" name="contact-address" value="" class="sm-form-control contact-form-address" placeholder="Address" style="margin-bottom:10px;"></div> 7688 <textarea id="contact-me-message" name="contact-me-message" class="sm-form-control" placeholder="Your message to Brooks Demming (optional)"></textarea> 7689 <div class="subscribe text-center"> 7690 <label style="margin-right:5px;"> 7691 Contact me by 7692 </label>
7693 <span> 7694 <span> 7695 <input type="checkbox" name="subscribe-email" id="subscribe-email" value="1" checked style="margin-right:5px;"><label for="subscribe-email" style="margin-right:10px;">Email</label> 7696 </span> 7697 <span> 7698 <input type="checkbox" name="subscribe-text" id="subscribe-text" value="1" style="margin-right:5px;"><label for="subscribe-text">Text</label> 7699 </span> 7700 </span> 7701 </div> 7702 <div class="text-center"> 7703 <button type="button" id="send-message-button" class="button button-large button-green nomargin" value="submit">Send Message</button> 7704 </div> 7705 </div> 7706 </div> 7707 </div> 7708 </div> 7709 </div> 7710 </div> 7711 </div> 7712 </div> 7713</div> 7714
7715<script> 7716 function IsEU( country ) 7717 { 7718 var EU_countries = ["Austria","Belgium","Bulgaria","Croatia","Cyprus","Czech Republic","Denmark","Estonia","Finland","France","Germany","Greece","Hungary","Ireland","Italy","Latvia","Lithuania","Luxembourg","Malta","Netherlands","Netherlands Antilles","Poland","Portugal","Romania","Slovakia","Slovenia","Spain","Sweden","United Kingdom"]; 7719 7720 if( EU_countries.indexOf( country ) > -1 ) 7721 return true; 7722 else 7723 return false; 7724 } 7725 7726 $(function() { 7727 $('#contactMeModal').on('shown.bs.modal', function () { 7728 $('#contact-me-name').focus(); 7729 }); 7730 $('#contact-me-country').change( function() { 7731 if( IsEU( $(this).val() ) ) 7732 $('#subscribe-email').prop('checked',false); 7733 else 7734 $('#subscribe-email').prop('checked',true); 7735 }); 7736 $('#contact-me-country').change(); 7737 }); 7738 7739 $('#send-message-button').click( function() { 7740 var contact_name = $('#contact-me-name').val().trim(); 7741 var contact_email = $('#contact-me-email').val().trim(); 7742 var contact_phone = $('#contact-me-phone').val().trim(); 7743 var contact_message = $('#contact-me-message').val().trim(); 7744 var contact_country = $('#contact-me-country').val(); 7745 7746 if( contact_name == '' ) { 7747 toastr.error( 'Please enter your name.' ); 7748 $('#contact-me-name').focus(); 7749 return; 7750 } 7751 if( contact_email == '' && contact_phone == '' ) { 7752 toastr.error( 'Please enter either your phone or email address.' ); 7753 $('#contact-me-phone').focus(); 7754 return; 7755 } 7756 7757 if( contact_message == '' && !$('#subscribe-text').prop('checked') && !$('#subscribe-email').prop('checked') ) { 7758 toastr.error( 'Please either choose a way to be contacted or enter a message.'); 7759 $('#contact-me-message').focus(); 7760 return; 7761 } 7762 7763 if ($('#subscribe-text').prop('checked') && contact_phone == '') { 7764 toastr.error('Please enter your mobile phone number to be contacted by text.'); 7765 $('#contact-me-phone').focus(); 7766 return; 7767 } 7768 if ($('#subscribe-email').prop('checked') && contact_email == '') { 7769 toastr.error('Please enter your email address to be contacted by email.'); 7770 $('#contact-me-email').focus(); 7771 return; 7772 } 7773 7774 $('#contactMeModal').modal('hide'); 7775 toastr.info('Message sending...'); 7776 $.ajax({ 7777 //url: //, 7778 url: "https://brooksdemming.com/app/contact-me-form", 7779 method: "POST", 7780 dataType: "json", 7781 crossDomain: true, 7782 data: { 7783 'contact-name' : contact_name, 7784 'contact-email' : contact_email, 7785 'contact-phone' : contact_phone, 7786 'contact-message' : contact_message, 7787 'contact-country' : contact_country, 7788 'contact-address' : $('#contact-address').val(), 7789 'subscribe-email' : ($('#subscribe-email').prop('checked') ? '1' : '0'), 7790 'subscribe-text' : ($('#subscribe-text').prop('checked') ? '1' : '0'), 7791 'enroller-number' : "", 7792 'enroller-name' : "", 7793 'sponsor-number' : "", 7794 'sponsor-name' : "", 7795 'utm_source' : null, 7796 'utm_campaign' : null, 7797 'utm_medium' : null, 7798 'utm_term' : null, 7799 'utm_content' : null, 7800 'request_source' : 'contact_me', 7801 "analytics_campaign" : null } 7802 }) 7803 .done(function( data ) { 7804 if( data.success ) { 7805 toastr.success('Message sent!', {timeOut: 10000}); 7806 $('#contact-me-message').val(''); 7807 } 7808 else if( data.code == 'Invalid Email' ) { 7809 toastr.error( 'Please check your email address.' ); 7810 $('#contact-me-email').focus(); 7811 } 7812 else if( data.code == 'Missing Name' ) { 7813 toastr.error( 'Please enter your name.' ); 7814 $('#contact-me-name').focus(); 7815 } 7816 else if( data.code == 'Email Or Phone Required' ) { 7817 toastr.error( 'Please enter either your phone or email address.' ); 7818 $('#contact-me-phone').focus(); 7819 } 7820 else if( data.code == 'Missing Message' ) { 7821 toastr.error( 'Please enter a message.' ); 7822 $('#contact-me-message').focus(); 7823 } 7824 else 7825 toastr.error('Message not sent. Please contact me by email or phone instead.'); 7826 7827 }) 7828 .fail(function( jqXHR, textStatus ) { 7829 toastr.error( "Request failed: " + textStatus, 'Message not sent. Please contact me by email or phone instead.' ); 7830 }); 7831 }); 7832</script>
7832 7833 7834 7835<!-- Go To Top 7836============================================= --> 7837<div id="gotoTop" class="icon-angle-up"></div> 7838 7839<!-- Footer Scripts 7840============================================= -->
7841<script type="text/javascript" src="https://attractwell.com/site-assets/js/jquery.quickfit.js"></script>
7841 7842
7842<script type="text/javascript" src="https://attractwell.com/site-assets/themes/attractwell/js/functions.min.js"></script>
vendor: 1 bytes, line 7842
7842
7843<script type="text/javascript" src="https://attractwell.com/site-assets/js/jquery.quickfit.js"></script>
7843 7844<!--
7844<script type="text/javascript" src="https://attractwell.com/site-assets/js/js.cookie.js"></script>
7844 -->
7845<script type="text/javascript"> 7846 var quickfit_options_large = { 7847 min: 15, 7848 max: 36, 7849 width: 300 7850 //truncate: true 7851 }; 7852 var quickfit_options_small = { 7853 min: 12, 7854 max: 20, 7855 width: 200 7856 //truncate: true 7857 }; 7858 7859 function resizeText() 7860 { 7861 } 7862 7863 $(function() { 7864 // auto scale text name if it's too long, on both window resize and scroll 7865 $( window ).on( 'resize', resizeText ); 7866 $( window ).on( 'scroll', resizeText ); 7867 resizeText(); 7868 7869 $(window).load( function() { 7870 if( location.hash === '#contact' ) 7871 $('#contactMeModal').modal('show'); 7872 7873 $('a[href$="#contact"]').click( function() { 7874 $('#contactMeModal').modal('show'); 7875 return false; 7876 } ); 7877 7878 $('a[href$="#lead"]').click( function() { 7879 if( $('#leadModal').length === 0 && $('#lead').length === 0 ) { 7880 window.location.href = "\/\/#lead"; 7881 return false; 7882 } 7883 } ); 7884 7885 $( window ).resize(); 7886 }); 7887 7888 7889 $('.menu-flag-icon').click( function (){ 7890 Cookies.set("country",$(this).attr('data-flag'), { path: "\/BrooksDemming" } ); // cookie valid to the current path 7891 window.scrollTo(0,0); // scroll to top of page 7892 location.reload(true); 7893 }); 7894 7895 $('#landing-page-log-out').click(function() { 7896 var path_scope = "\/BrooksDemming"; 7897 Cookies.remove("registered-on-landing-page", {path: path_scope}); 7898 Cookies.remove('landing_account_id', {path: path_scope}); 7899 Cookies.remove('contact_id', {path: path_scope}); 7900 Cookies.remove('skip_registration', {path: path_scope}); 7901 }); 7902 7903 // instrument the page with click handlers 7904 $('a').click( function() { 7905 var url = $(this).attr('href'); 7906 var title = $(this).text();
7907 title = title.replace(/\\n/gi,'').trim(); 7908 if( url !== '#' ) { 7909 var is_sign_up_link = ($(this).hasClass('sign-up-link') || (url === null && null !== '')); 7910 RecordExternalClickAnalytics(url, title, is_sign_up_link ); 7911 if( is_sign_up_link && Cookies.get('contact_id') != '' ) 7912 RecordContactWebsiteSignUpLinkClick( Cookies.get('contact_id') ); 7913 } 7914 }); 7915 }); 7916</script>
vendor: 1 bytes, line 7916
7916
7917<script src="https://cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script>
vendor: 1 bytes, line 7917
7917
7918<script>$(function() { $('audio').on('contextmenu', () => {return false}); });</script>
7918 7919 7920 7921</body> 7922</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.