@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");

/*
! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: "";
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
  tab-size: 4;
  /* 3 */
  font-family: Inter, sans-serif;
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type="button"]),
input:where([type="reset"]),
input:where([type="submit"]) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}



/* PHP Email Form Messages
------------------------------*/
.loading,
.error-message,
.sent-message {
  display: none;
}

.error-message {
  background: #df1529;
  color: #fff;
  padding: 12px;
  margin-top: 10px;
  margin-bottom: 25px;

  font-weight: 600;
}

.sent-message {
  background: #059652;
  color: #fff;
  padding: 12px;
  margin-top: 10px;
  margin-bottom: 25px;

  font-weight: 600;
  text-align: center;
}

.loading {
  background: #f5f5f5;
  padding: 12px;
  margin-top: 10px;
  text-align: center;
}









/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder,
textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden] {
  display: none;
}

::-webkit-scrollbar {
  height: 0.75rem;
  width: 0.75rem;
}

::-webkit-scrollbar-track {
  --tw-bg-opacity: 1;
  background-color: rgb(253 253 254 / var(--tw-bg-opacity));
}

:where([data-web-theme="dark"],
  [data-web-theme="dark"] *)::-webkit-scrollbar-track {
  --tw-bg-opacity: 1;
  background-color: rgb(29 34 46 / var(--tw-bg-opacity));
}

::-webkit-scrollbar-thumb {
  border-radius: 0.25rem;
  border-width: 2px;
  border-style: solid;
  --tw-border-opacity: 1;
  border-color: rgb(253 253 254 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(139 141 152 / var(--tw-bg-opacity));
}

:where([data-web-theme="dark"],
  [data-web-theme="dark"] *)::-webkit-scrollbar-thumb {
  --tw-border-opacity: 1;
  border-color: rgb(29 34 46 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(114 116 127 / var(--tw-bg-opacity));
}

::-webkit-scrollbar-corner {
  background-color: transparent;
}

*,
*::before,
*::after {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 400ms;
}

html {
  scroll-behavior: smooth;
  color-scheme: light;
  font-family: "Inter", sans-serif;
}

[data-web-theme="dark"] {
  color-scheme: dark;
}

body {
  --tw-bg-opacity: 1;
  background-color: rgb(253 253 254 / var(--tw-bg-opacity));
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.5;
}

@media (min-width: 1024px) {
  body {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

body:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(29 34 46 / var(--tw-bg-opacity));
}

[tabindex] {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

img {
  max-width: 100%;
}

a {
  text-wrap: balance;
  overflow-wrap: break-word;
  --tw-text-opacity: 1;
  color: rgb(57 91 199 / var(--tw-text-opacity));
  text-decoration-line: none;
}

a:hover {
  --tw-text-opacity: 1;
  color: rgb(54 87 195 / var(--tw-text-opacity));
}

a:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(148 181 255 / var(--tw-text-opacity));
}

a:hover:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(49 84 205 / var(--tw-text-opacity));
}

a,
button {
  cursor: pointer;
}

button,
input,
select,
textarea {
  border-width: 0px;
  background-color: inherit;
  color: inherit;
  outline: 2px solid transparent;
  outline-offset: 2px;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

ul,
ol {
  list-style-type: none;
}

strong {
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

strong:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0px;
  text-wrap: pretty;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

h1:where([data-web-theme="dark"], [data-web-theme="dark"] *),
h2:where([data-web-theme="dark"], [data-web-theme="dark"] *),
h3:where([data-web-theme="dark"], [data-web-theme="dark"] *),
h4:where([data-web-theme="dark"], [data-web-theme="dark"] *),
h5:where([data-web-theme="dark"], [data-web-theme="dark"] *),
h6:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

h1 {
  font-size: 3rem;
  line-height: 1.25;
}

h2 {
  font-size: 2.25rem;
  line-height: 1.25;
}

h3 {
  font-size: 1.875rem;
  line-height: 1.25;
}

h4 {
  font-size: 1.5rem;
  line-height: 1.25;
}

h5 {
  font-size: 1.25rem;
  line-height: 1.25;
}

h6 {
  font-size: 0.875rem;
  line-height: 1.25;
}

p {
  margin: 0px;
  font-size: 1em;
  line-height: 1.5;
}

p+p {
  margin-top: 1.25rem;
}

*,
::before,
::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}

.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1200px;
  }
}

.disabled,
:disabled {
  pointer-events: none !important;
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  user-select: none !important;
  opacity: 0.6 !important;
}

.page-loading {
  background-image: radial-gradient(circle at top right,
      rgba(61, 99, 221, 0.1) 0%,
      rgba(61, 99, 221, 0.1) 28%,
      rgba(61, 99, 221, 0.075) 28%,
      rgba(61, 99, 221, 0.075) 45%,
      rgba(61, 99, 221, 0.05) 45%,
      rgba(61, 99, 221, 0.05) 63%,
      rgba(61, 99, 221, 0.025) 63%,
      rgba(61, 99, 221, 0.025) 100%);
}

.page-loading.hide {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}

.grid-loader,
.grid-loader div {
  box-sizing: border-box;
}

.grid-loader {
  position: relative;
  display: inline-block;
  height: 80px;
  width: 80px;
}

.grid-loader div {
  position: absolute;
  height: 1rem;
  width: 1rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
  animation: grid-loader 1.2s linear infinite;
}

.grid-loader div:nth-child(1) {
  top: 0.5rem;
  left: 0.5rem;
  animation-delay: 0s;
}

.grid-loader div:nth-child(2) {
  top: 0.5rem;
  left: 2rem;
  animation-delay: -0.4s;
}

.grid-loader div:nth-child(3) {
  top: 0.5rem;
  left: 3.5rem;
  animation-delay: -0.8s;
}

.grid-loader div:nth-child(4) {
  top: 2rem;
  left: 0.5rem;
  animation-delay: -0.4s;
}

.grid-loader div:nth-child(5) {
  top: 2rem;
  left: 2rem;
  animation-delay: -0.8s;
}

.grid-loader div:nth-child(6) {
  top: 2rem;
  left: 3.5rem;
  animation-delay: -1.2s;
}

.grid-loader div:nth-child(7) {
  top: 3.5rem;
  left: 0.5rem;
  animation-delay: -0.8s;
}

.grid-loader div:nth-child(8) {
  top: 3.5rem;
  left: 2rem;
  animation-delay: -1.2s;
}

.grid-loader div:nth-child(9) {
  top: 3.5rem;
  left: 3.5rem;
  animation-delay: -1.6s;
}

@keyframes grid-loader {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

.ic-navbar {
  border-width: 0px;
  border-bottom-width: 1px;
  border-color: transparent;
}

.ic-navbar.sticky {
  position: fixed;
  z-index: 9999;
  border-color: #00073527;
  background-color: rgb(253 253 254 / var(--tw-bg-opacity));
  --tw-bg-opacity: 0.75;
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
    0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-backdrop-blur: blur(8px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.ic-navbar.sticky:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  border-color: #d6dbfc2f;
  background-color: rgb(29 34 46 / var(--tw-bg-opacity));
  --tw-bg-opacity: 0.7;
}

.ic-navbar.sticky .ic-navbar-logo {
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

.ic-navbar.sticky .ic-navbar-logo:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

.ic-navbar.sticky .ic-navbar-logo #NavbarBrandIcon {
  fill: #3d63dd;
}

.ic-navbar.sticky .ic-navbar-toggler {
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

.ic-navbar.sticky .ic-navbar-toggler:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

.ic-navbar.menu-show .ic-navbar-collapse {
  z-index: -1;
  display: block;
}

@media (min-width: 1024px) {
  .ic-navbar.sticky .ic-page-scroll {
    --tw-text-opacity: 1;
    color: rgb(30 31 36 / var(--tw-text-opacity));
  }

  .ic-navbar.sticky .ic-page-scroll:hover {
    --tw-text-opacity: 1;
    color: rgb(61 99 221 / var(--tw-text-opacity));
    opacity: 1;
  }

  .ic-navbar.sticky .ic-page-scroll:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
    --tw-text-opacity: 1;
    color: rgb(238 238 240 / var(--tw-text-opacity));
  }
}

.ic-page-scroll.active {
  --tw-text-opacity: 1;
  color: rgb(61 99 221 / var(--tw-text-opacity));
}

@media (min-width: 1024px) {
  .ic-page-scroll.active {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
    opacity: 0.7;
  }

  .ic-navbar.sticky .ic-page-scroll.active {
    --tw-text-opacity: 1;
    color: rgb(61 99 221 / var(--tw-text-opacity));
    opacity: 1;
  }
}

.ic-navbar.sticky [data-web-trigger="web-theme"] {
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

.ic-navbar.sticky [data-web-trigger="web-theme"]:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

.ic-navbar.sticky .btn-navbar {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
}

.ic-navbar.sticky .btn-navbar:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(54 87 195 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.ic-navbar.sticky .btn-navbar:hover:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(49 84 205 / var(--tw-bg-opacity));
}

#home {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-image: radial-gradient(circle at top right,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(255, 255, 255, 0.1) 28%,
      rgba(255, 255, 255, 0.075) 28%,
      rgba(255, 255, 255, 0.075) 45%,
      rgba(255, 255, 255, 0.05) 45%,
      rgba(255, 255, 255, 0.05) 63%,
      rgba(255, 255, 255, 0.025) 63%,
      rgba(255, 255, 255, 0.025) 100%);
}

.section-area {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 3rem;
  --tw-text-opacity: 1;
  color: rgb(98 99 108 / var(--tw-text-opacity));
}

.section-area:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(180 182 191 / var(--tw-text-opacity));
}

.section-area:nth-child(odd) {
  background-color: #00005506;
}

.section-area:nth-child(odd):where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  background-color: #adc5f30f;
}

.tabs-nav .tabs-link.active {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.tabs .tabs-content {
  display: block;
}

.tabs .tabs-content.hide {
  display: none;
}

.portfolio-menu button.active {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.portfolio.show {
  display: block;
}

.portfolio.hide {
  display: none;
}

#call-action {
  background-image: radial-gradient(circle at top left,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(255, 255, 255, 0.1) 28%,
      rgba(255, 255, 255, 0.075) 28%,
      rgba(255, 255, 255, 0.075) 45%,
      rgba(255, 255, 255, 0.05) 45%,
      rgba(255, 255, 255, 0.05) 63%,
      rgba(255, 255, 255, 0.025) 63%,
      rgba(255, 255, 255, 0.025) 100%);
}

.common-carousel .swiper-button-prev,
.common-carousel .swiper-button-next {
  position: static !important;
  margin: 0px;
  height: 3rem;
  width: 3rem;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(252 252 253 / var(--tw-bg-opacity));
  font-size: 22px;
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
    0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.common-carousel .swiper-button-prev::after,
.common-carousel .swiper-button-next::after {
  content: var(--tw-content);
  display: none;
}

.common-carousel .swiper-button-prev:hover,
.common-carousel .swiper-button-next:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.common-carousel .swiper-button-prev:focus,
.common-carousel .swiper-button-next:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.common-carousel .swiper-button-prev:where([data-web-theme="dark"], [data-web-theme="dark"] *),
.common-carousel .swiper-button-next:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  background-color: rgb(238 238 240 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

[data-web-trigger="scroll-top"].is-hided {
  visibility: hidden;
  opacity: 0;
}

.pointer-events-auto {
  pointer-events: auto;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.-left-9 {
  left: -2.25rem;
}

.-right-6 {
  right: -1.5rem;
}

.-top-6 {
  top: -1.5rem;
}

.bottom-0 {
  bottom: 0px;
}

.bottom-5 {
  bottom: 1.25rem;
}

.bottom-\[117px\] {
  bottom: 117px;
}

.left-0 {
  left: 0px;
}

.left-1\/2 {
  left: 50%;
}

.left-5 {
  left: 1.25rem;
}

.right-0 {
  right: 0px;
}

.right-4 {
  right: 1rem;
}

.right-5 {
  right: 1.25rem;
}

.right-\[20px\] {
  right: 20px;
}


.top-0 {
  top: 0px;
}

.top-1\.5 {
  top: 0.375rem;
}

.top-1\/2 {
  top: 50%;
}

.top-5 {
  top: 1.25rem;
}

.top-\[80px\] {
  top: 80px;
}

.-z-10 {
  z-index: -10;
}

.-z-\[1\] {
  z-index: -1;
}

.z-10 {
  z-index: 10;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.z-\[-1\] {
  z-index: -1;
}

.z-\[99999\] {
  z-index: 99999;
}

.-order-3 {
  order: -3;
}

.order-first {
  order: -9999;
}

.m-0 {
  margin: 0px;
}

.-mx-3 {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.-mx-5 {
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}

.mx-8 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.-mt-\[12rem\] {
  margin-top: -12rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mb-15 {
  margin-bottom: 5rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mb-9 {
  margin-bottom: 2.25rem;
}

.mb-\[3\.750rem\] {
  margin-bottom: 3.75rem;
}

.ml-5 {
  margin-left: 1.25rem;
}

.mr-4 {
  margin-right: 1rem;
}

.mt-11 {
  margin-top: 2.75rem;
}

.mt-16 {
  margin-top: 4rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-\[60px\] {
  margin-top: 60px;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.aspect-\[3\/2\] {
  aspect-ratio: 3/2;
}

.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

.aspect-video {
  aspect-ratio: 16 / 9;
}

.h-10 {
  height: 2.5rem;
}

.h-12 {
  height: 3rem;
}

.h-\[120px\] {
  height: 120px;
}

.h-\[40px\] {
  height: 40px;
}

.h-\[500px\] {
  height: 500px;
}

.h-\[50px\] {
  height: 50px;
}

.h-\[70px\] {
  height: 70px;
}

.h-\[80px\] {
  height: 80px;
}

.h-auto {
  height: auto;
}

.h-full {
  height: 100%;
}

.w-10 {
  width: 2.5rem;
}

.w-12 {
  width: 3rem;
}

.w-20 {
  width: 5rem;
}

.w-60 {
  width: 15rem;
}

.w-\[120px\] {
  width: 120px;
}

.w-\[50px\] {
  width: 50px;
}

.w-\[60px\] {
  width: 60px;
}

.w-\[70px\] {
  width: 70px;
}

.w-\[80px\] {
  width: 80px;
}

.w-full {
  width: 100%;
}

.max-w-\[605px\] {
  max-width: 605px;
}

.max-w-\[620px\] {
  max-width: 620px;
}

.max-w-\[305px\] {
  max-width: 450px;
}

.max-w-\[150px\] {
  max-width: 150px;
}

.max-w-\[250px\] {
  max-width: 250px;
}

.max-w-\[400px\] {
  max-width: 400px;
}

.max-w-\[480px\] {
  max-width: 480px;
}

.max-w-\[50px\] {
  max-width: 50px;
}

.max-w-\[550px\] {
  max-width: 550px;
}

.max-w-\[600px\] {
  max-width: 600px;
}

.max-w-\[780px\] {
  max-width: 780px;
}

.max-w-\[845px\] {
  max-width: 845px;
}

.max-w-\[900px\] {
  max-width: 900px;
}

.max-w-\[1000px\] {
  max-width: 100px;
}

.max-w-\[1200px\] {
  max-width: 1150px;
}

.max-w-full {
  max-width: 100%;
}

.flex-grow {
  flex-grow: 1;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-\[0\.15\] {
  --tw-scale-x: 0.15;
  --tw-scale-y: 0.15;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

.justify-end {
  justify-content: flex-end;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-14 {
  gap: 3.5rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-5 {
  gap: 1.25rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-x-3 {
  -moz-column-gap: 0.75rem;
  column-gap: 0.75rem;
}

.gap-x-8 {
  -moz-column-gap: 2rem;
  column-gap: 2rem;
}

.gap-y-12 {
  row-gap: 3rem;
}

.overflow-hidden {
  overflow: hidden;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-md {
  border-radius: 0.375rem;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.rounded-e-none {
  border-start-end-radius: 0px;
  border-end-end-radius: 0px;
}

.rounded-s-none {
  border-start-start-radius: 0px;
  border-end-start-radius: 0px;
}

.rounded-t-xl {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

.rounded-tr-xl {
  border-top-right-radius: 0.75rem;
}

.border {
  border-width: 1px;
}

.border-0 {
  border-width: 0px;
}

.border-t {
  border-top-width: 1px;
}

.border-solid {
  border-style: solid;
}

.border-alpha-dark {
  border-color: #d6dbfc2f;
}

.border-alpha-light {
  border-color: #00073527;
}

.\!bg-primary {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity)) !important;
}

.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}

.bg-body-light-1 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 252 253 / var(--tw-bg-opacity));
}

.bg-body-light-1\/75 {
  background-color: rgb(252 252 253 / 0.75);
}

.bg-body-light-12\/10 {
  background-color: rgb(30 31 36 / 0.1);
}

.bg-green-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(74 222 128 / var(--tw-bg-opacity));
}

.bg-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
}

.bg-primary-color {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.bg-primary-color\/\[0\.15\] {
  background-color: rgb(255 255 255 / 0.15);
}

.bg-primary-dark-2 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 37 52 / var(--tw-bg-opacity));
}

.bg-primary-light-1 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 253 254 / var(--tw-bg-opacity));
}

.bg-primary\/10 {
  background-color: rgb(61 99 221 / 0.1);
}

.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}

.bg-transparent {
  background-color: transparent;
}

.bg-opacity-20 {
  --tw-bg-opacity: 0.2;
}

.fill-current {
  fill: currentColor;
}

.fill-indigo-500 {
  fill: #6366f1;
}

.fill-teal-500 {
  fill: #14b8a6;
}

.object-cover {
  -o-object-fit: cover;
  object-fit: cover;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 2rem;
}

.p-6 {
  padding: 3rem;
}

.p-left {
  padding-left: 7rem
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.px-9 {
  padding-left: 2.25rem;
  padding-right: 2.25rem;
}

.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.py-\[6px\] {
  padding-top: 6px;
  padding-bottom: 6px;
}

.pb-10 {
  padding-bottom: 2.5rem;
}

.pl-4 {
  padding-left: 1rem;
}

.pr-\[52px\] {
  padding-right: 52px;
}

.pt-12 {
  padding-top: 3rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-8 {
  padding-top: 2rem;
}

.pt-\[120px\] {
  padding-top: 120px;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-\[1\.125rem\] {
  font-size: 1.125rem;
}

.text-\[1\.25rem\] {
  font-size: 1.25rem;
}

.text-\[1\.25rem\]\/tight {
  font-size: 1.25rem;
  line-height: 1.25;
}

.text-\[1\.5rem\] {
  font-size: 1.5rem;
}

.text-\[1\.75rem\] {
  font-size: 1.75rem;
}

.text-\[1\.875rem\] {
  font-size: 1.875rem;
}

.text-\[22px\] {
  font-size: 22px;
}

.text-\[22px\]\/none {
  font-size: 22px;
  line-height: 1;
}

.text-\[24px\]\/none {
  font-size: 24px;
  line-height: 1;
}

.text-\[28px\] {
  font-size: 28px;
}

.text-\[37px\]\/none {
  font-size: 37px;
  line-height: 1;
}

.text-\[55px\] {
  font-size: 55px;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-lg\/none {
  font-size: 1.125rem;
  line-height: 1;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-bold {
  font-weight: 700;
}

.font-medium {
  font-weight: 500;
}

.font-normal {
  font-weight: 400;
}

.font-semibold {
  font-weight: 600;
}

.leading-\[24px\] {
  line-height: 24px;
}

.leading-none {
  line-height: 1;
}

.leading-snug {
  line-height: 1.375;
}

.leading-tight {
  line-height: 1.25;
}

.\!text-primary-color {
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity)) !important;
}

.text-body-dark-11 {
  --tw-text-opacity: 1;
  color: rgb(180 182 191 / var(--tw-text-opacity));
}

.text-body-light-10 {
  --tw-text-opacity: 1;
  color: rgb(128 130 141 / var(--tw-text-opacity));
}

.text-body-light-11 {
  --tw-text-opacity: 1;
  color: rgb(98 99 108 / var(--tw-text-opacity));
}

.text-body-light-12 {
  --tw-text-opacity: 1;
  color: rgb(30 31 36 / var(--tw-text-opacity));
}

.text-inherit {
  color: inherit;
}

.text-primary {
  --tw-text-opacity: 1;
  color: rgb(61 99 221 / var(--tw-text-opacity));
}

.text-E20512 {
  color: #E20512;
}


.text-primary-color {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.text-primary-color\/60 {
  color: rgb(255 255 255 / 0.6);
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.opacity-0 {
  opacity: 0;
}

.opacity-100 {
  opacity: 1;
}

.opacity-75 {
  opacity: 0.75;
}

.shadow-card-1 {
  --tw-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.08);
  --tw-shadow-colored: 0px 0px 40px 0px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card-2 {
  --tw-shadow: 0px 10px 20px 0 rgba(0, 0, 0, 0.08);
  --tw-shadow-colored: 0px 10px 20px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
    0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
    0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.ring-primary {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(61 99 221 / var(--tw-ring-opacity));
}

.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.row {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
  margin-top: -2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.row>* {
  margin-top: 2rem;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.col-6 {
  width: 50%;
}

.col-12 {
  width: 100%;
}

.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:bg-green-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}

.hover\:bg-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
}

.hover\:bg-primary-color:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.hover\:bg-primary-light-10:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(54 87 195 / var(--tw-bg-opacity));
}

.hover\:bg-primary-light-5:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(208 223 255 / var(--tw-bg-opacity));
}

.hover\:bg-opacity-100:hover {
  --tw-bg-opacity: 1;
}

.hover\:text-body-dark-12:hover {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

.hover\:text-primary:hover {
  --tw-text-opacity: 1;
  color: rgb(61 99 221 / var(--tw-text-opacity));
}

.hover\:text-primary-color:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
    0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-xl:hover {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),
    0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:grayscale-0:hover {
  --tw-grayscale: grayscale(0);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:invert-0:hover {
  --tw-invert: invert(0);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.focus\:border-primary:focus {
  --tw-border-opacity: 1;
  border-color: rgb(61 99 221 / var(--tw-border-opacity));
}

.focus\:bg-green-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}

.focus\:bg-primary:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(61 99 221 / var(--tw-bg-opacity));
}

.focus\:bg-primary-color:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.focus\:bg-primary-light-10:focus {
  --tw-bg-opacity: 1;
  background-color: rgb(54 87 195 / var(--tw-bg-opacity));
}

.focus\:text-primary:focus {
  --tw-text-opacity: 1;
  color: rgb(61 99 221 / var(--tw-text-opacity));
}

.focus\:text-primary-color:focus {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.focus\:text-white:focus {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.focus\:shadow-xl:focus {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),
    0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}

.group:hover .group-hover\:visible {
  visibility: visible;
}

.group:hover .group-hover\:rotate-\[2deg\] {
  --tw-rotate: 2deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-95 {
  --tw-scale-x: 0.95;
  --tw-scale-y: 0.95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-\[1\.05\] {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:text-primary {
  --tw-text-opacity: 1;
  color: rgb(61 99 221 / var(--tw-text-opacity));
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

@media (min-width: 640px) {
  .sm\:mr-6 {
    margin-right: 1.5rem;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:h-\[60px\] {
    height: 60px;
  }

  .sm\:max-w-\[60px\] {
    max-width: 60px;
  }

  .sm\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .sm\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .sm\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .sm\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .sm\:text-\[32px\] {
    font-size: 32px;
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .sm\:leading-normal {
    line-height: 1.5;
  }

  .sm\:leading-snug {
    line-height: 1.375;
  }

  .sm\:col-6 {
    width: 50%;
  }
}

@media (min-width: 768px) {
  .md\:w-1\/2 {
    width: 50%;
  }

  .md\:justify-start {
    justify-content: flex-start;
  }

  .md\:justify-end {
    justify-content: flex-end;
  }

  .md\:gap-5 {
    gap: 1.25rem;
  }

  .md\:px-7 {
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }

  .md\:py-\[14px\] {
    padding-top: 14px;
    padding-bottom: 14px;
  }

  .md\:pt-\[130px\] {
    padding-top: 130px;
  }

  .md\:col-4 {
    width: 33.333333%;
  }

  .md\:col-6 {
    width: 50%;
  }
}

@media (min-width: 1024px) {
  .lg\:static {
    position: static;
  }

  .lg\:order-1 {
    order: 1;
  }

  .lg\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }

  .lg\:mr-0 {
    margin-right: 0px;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:inline-flex {
    display: inline-flex;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:w-56 {
    width: 14rem;
  }

  .lg\:w-full {
    width: 100%;
  }

  .lg\:max-w-full {
    max-width: 100%;
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:bg-transparent {
    background-color: transparent;
  }

  .lg\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  .lg\:py-0 {
    padding-top: 0px;
    padding-bottom: 0px;
  }

  .lg\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .lg\:py-\[100px\] {
    padding-top: 100px;
    padding-bottom: 100px;
  }

  .lg\:py-\[50px\] {
    padding-top: 50px;
    padding-bottom: 50px;
  }


  .lg\:pr-0 {
    padding-right: 0px;
  }

  .lg\:pt-\[160px\] {
    padding-top: 160px;
  }


  .lg\:pt-\[260px\] {
    padding-top: 350px;
  }

  .lg\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .lg\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .lg\:leading-tight {
    line-height: 1.25;
  }

  .lg\:text-primary-color {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
  }

  .lg\:shadow-none {
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
      var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }

  .lg\:col-2 {
    width: 16.666667%;
  }

  .lg\:col-3 {
    width: 25%;
  }

  .lg\:col-4 {
    width: 33.333333%;
  }

  .group:hover .lg\:group-hover\:text-primary-color {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
  }

  .group:hover .lg\:group-hover\:opacity-70 {
    opacity: 0.7;
  }
}

@media (min-width: 1280px) {
  .xl\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .xl\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .xl\:col-4 {
    width: 33.333333%;
  }

  .xl\:col-8 {
    width: 66.666667%;
  }

  .xl\:col-12 {
    width: 100%;
  }
}

.dark\:border-alpha-dark:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  border-color: #d6dbfc2f;
}

.dark\:bg-body-dark-12\/10:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  background-color: rgb(238 238 240 / 0.1);
}

.dark\:bg-primary-dark-1:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(29 34 46 / var(--tw-bg-opacity));
}

.dark\:bg-primary-dark-2:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(30 37 52 / var(--tw-bg-opacity));
}

.dark\:text-body-dark-10:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(125 127 138 / var(--tw-text-opacity));
}

.dark\:text-body-dark-11:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(180 182 191 / var(--tw-text-opacity));
}

.dark\:text-body-dark-12:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(238 238 240 / var(--tw-text-opacity));
}

.dark\:invert:where([data-web-theme="dark"], [data-web-theme="dark"] *) {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.dark\:hover\:bg-primary-dark-10:hover:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(49 84 205 / var(--tw-bg-opacity));
}

.dark\:hover\:text-primary-color:hover:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.dark\:focus\:bg-primary-dark-10:focus:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-bg-opacity: 1;
  background-color: rgb(49 84 205 / var(--tw-bg-opacity));
}

.dark\:focus\:text-primary-color:focus:where([data-web-theme="dark"],
  [data-web-theme="dark"] *) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

@media (min-width: 1024px) {

  .dark\:lg\:bg-transparent:where([data-web-theme="dark"],
    [data-web-theme="dark"] *) {
    background-color: transparent;
  }

  .lg\:dark\:text-primary-color:where([data-web-theme="dark"],
    [data-web-theme="dark"] *) {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
  }
}



/* =================== HERO =================== */

/* Ajustes generales del hero */
#home {
  /* altura de la banda clara inferior */
  --hero-band-h: 300px;

  /* tamaño por defecto de la mujer */
  --woman-w: clamp(200px, 34vw, 600px);

  position: relative;
  background-image: url("./assets/img/fondo.png") !important;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#home {
  background-image: url("../img/fondo.png?v=3") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center !important;
}

/*Posicion de la mujer*/

.right-top-200 {
  right: 90px;
  top: -350px;
}


/* Banda inferior clara con ::before (no tapa el fondo rojo) */
#home::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--hero-band-h);
  background: #f3f6f8;
  z-index: 0;
  /* por debajo del contenido */
  border-radius: 0;
}

/* Contenido del hero por encima de la banda */
#home>* {
  position: relative;
  z-index: 1;
}

/* Imagen de la mujer controlada por variable */
.hero-woman img {
  width: var(--woman-w);
  height: auto;
  display: block;
  pointer-events: none;
}

/* Presets opcionales de tamaño para la mujer */
#home.size-sm {
  --woman-w: clamp(160px, 28vw, 320px);
}

#home.size-md {
  --woman-w: clamp(200px, 34vw, 380px);
}

#home.size-lg {
  --woman-w: clamp(240px, 38vw, 460px);
}

/* Responsive para la altura de la banda */
@media (max-width: 767px) {
  #home {
    --hero-band-h: 220px;
  }
}

@media (min-width: 1024px) {
  #home {
    --hero-band-h: 300px;
  }
}

/* Utilidad puntual (si la usas en el mockup) */
.max-w-\[1000px\] {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

/*probando*/


/* --- Subir mockup un poco más --- */
#home {
  /* factor de subida relativo a la altura de la banda */
  --mockup-shift: -0.300;
  /* -0.45 ≈ “un poco más arriba”; ajusta a gusto */
}

.hero-mockup {
  transform: translateY(calc(var(--hero-band-h) * var(--mockup-shift)));
}

/* Opcional: pequeños ajustes por breakpoint */
@media (max-width: 1024px) {

  /* tablets */
  #home {
    --mockup-shift: -0.40;
  }
}

@media (max-width: 768px) {

  /* móviles */
  #home {
    --mockup-shift: -0.28;
  }
}

@media (min-width: 1024px) {
  #home .hero-copy {
    position: relative;
    transform: translate(175px, -100px);
    /* ajusta a gusto */
  }
}


/* HERO: container full-width en todo... */
#home .container {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 16px;
  /* ajusta si quieres más/menos borde */
}

/* ...y SOLO fija max-width cuando el viewport >= 1536px */
@media (min-width: 1536px) {
  #home .container {
    max-width: 1536px;
  }
}


/* Movimiento de los ops */
.-left-300 {
  left: -4.25rem;
}

.-bot-300 {
  bottom: -2rem;
}

.-right-300 {
  right: -6.25rem;
}

.-top-300 {
  top: -1.5rem;
}


/* Todo el texto del hero usa Montserrat */
#home {
  font-family: "Montserrat", Inter, sans-serif;
}

/* Tipos del título del hero */
#home .hero-kicker {
  font-family: "Montserrat", Inter, sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: italic;
  /* Italic */
  font-size: 36px;
  line-height: 100%;
  letter-spacing: 0;
}

#home .hero-title {
  font-family: "Montserrat", Inter, sans-serif;
  font-weight: 900;
  /* Black */
  font-style: normal;
  font-size: 48px;
  line-height: 100%;
  letter-spacing: 0;
  text-transform: uppercase;
}


/* Tipografía específica SOLO para este bloque */
.infografia-typo .infografia-sub {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: italic;
  /* Italic */
  font-size: 36px;
  line-height: 100%;
  letter-spacing: 0;
  margin-bottom: 0.5rem;
  /* conserva tu separación */
}

.infografia-typo h1 {
  line-height: 100%;
  /* que no cambie el alto entre líneas del título */
}

.infografia-typo h1>span {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  /* Black en CSS = 900 */
  font-size: 48px;
  line-height: 100%;
  letter-spacing: 0;
  text-transform: uppercase;
}


/* Carga Montserrat con 600 y 700 (si no la tienes ya) */

/* SOLO en #home y SOLO para los <p> que marques con las clases pedidas */
#home p.infografia-desc {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 400 !important;
  /* SemiBold */
  font-style: italic !important;
  font-size: 20px !important;
  line-height: 1 !important;
  /* 100% */
  letter-spacing: 0 !important;
}

#home p.infografia-remark {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  /* Bold */
  font-style: italic !important;
  font-size: 20px !important;
  line-height: 1 !important;
  /* 100% */
  letter-spacing: 0 !important;
}



/*Botones*/


/* Tipografía Montserrat 800 */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,800&display=swap");

/* Botón de inscripción — SOLO en el hero */
#home a.btn-inscribe {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 800 !important;
  /* ExtraBold */
  font-style: normal !important;
  font-size: 18px !important;
  line-height: 1.22 !important;
  /* 122% */
  letter-spacing: 0 !important;
  font-variant: small-caps !important;
  color: #E20512 !important;
  /* texto rojo */
  text-transform: none !important;
  border-radius: 25px;
  /* según lo pedido */

}

/* Icono circular a la izquierda */
#home a.btn-inscribe .btn-icon {
  width: 32px;
  height: 32px;
  border-radius: 25px;
  /* según lo pedido */
  background: #ffffff;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  /* por si la imagen es rectangular */
}

/* Imagen dentro del icono (ajuste suave) */
#home a.btn-inscribe .btn-icon img {
  width: 70%;
  height: 70%;
  object-fit: contain;
  display: block;
}


/* Botón de inscribirme: ancho/alto fijos y tipografía */
/* Botón WhatsApp — DEFAULT: rojo con contenido blanco */
/* HOVER: fondo blanco + contenido rojo (ícono rojo original visible) */

/* ===== Botón header WhatsApp (versión aislada) ===== */
/* Estado normal: fondo rojo, texto e ícono blancos */
.boton-header-whasap {
  width: 275px;
  height: 50px;
  border-radius: 25px;
  background: #ffffff;
  color: #E20512;
  gap: 10px;
  /* separa icono y texto (ajusta si quieres) */
  padding: 0 16px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-size: 17px;
  line-height: 1.22;
  /* 122% */
  text-transform: uppercase;
  font-variant: small-caps;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .12);
  transition: background-color .2s, color .2s, box-shadow .2s, transform .2s, filter .2s;
}

.boton-header-whasap__icon {
  width: 24px;
  height: 24px;
  display: block;
  /* El PNG es rojo, lo blanqueamos en el estado normal */

}

.boton-header-whasap__text {
  color: inherit;
  /* hereda para que cambie con el hover */
}

/* Hover: fondo blanco, contenido rojo (ícono vuelve a su rojo original) */
.boton-header-whasap:hover {
  background: #E20512;
  color: #fff;
  box-shadow: 0 10px 18px rgba(226, 5, 18, .18);
}

.boton-header-whasap:hover .boton-header-whasap__icon {
  filter: none;
  filter: brightness(0) invert(1);
  transition: filter .2s, transform .2s;
  /* muestra ./whats_rojo.png en rojo */
}

/* Feedback accesible */
.boton-header-whasap:active {
  transform: translateY(1px);
}

.boton-header-whasap:focus-visible {
  outline: 2px solid #E20512;
  outline-offset: 2px;
}


/* Botón "Ver Introducción" – ajustes locales */
.boton-header-intro {
  border-radius: 25px !important;
  /* radio 25px */
  background: transparent !important;
  /* fondo transparente por defecto */
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  /* Semibold */
  font-style: italic;
  font-size: 16px;
  /* 16px */
  line-height: 1;
  /* 100% */
  letter-spacing: 0;
}



/* Botón "Ver Introducción" – ajustes locales */
.boton-header-intro {
  border-radius: 25px !important;
  /* radio 25px */
  background: transparent !important;
  /* fondo transparente */
  border: 1px solid #fff !important;
  /* borde blanco 1px */
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  /* Semibold */
  font-style: italic;
  font-size: 16px;
  /* 16px */
  line-height: 1;
  /* 100% */
  letter-spacing: 0;
}

/* El ícono ▷ NO hereda la tipografía/itálica del botón */
.boton-header-intro .intro-icon {
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-weight: 600;
  /* puedes bajarlo a 400 si lo prefieres */
  font-size: 16px;
  /* mismo tamaño del texto */
}

/* Mantiene tu hover de Tailwind (bg blanco + texto rojo) tal cual */

/* Botón "Ver Introducción": más ancho + hover rojo con leve subida */
.boton-header-intro {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 25px !important;
  background: transparent !important;
  border: 1px solid #fff !important;

  /* Tipografía */
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-style: italic;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0;

  /* Dimensiones y espaciado */
  height: 50px;
  /* altura fija, como el otro botón */
  min-width: 270px;
  /* un poco más ancho */
  padding: 0 22px;
  /* acomodo lateral */
  gap: 10px;
  /* espacio ícono/texto */

  color: #fff !important;
  /* mantiene texto blanco */

  /* Animación suave */
  transition:
    transform .18s ease,
    background-color .18s ease,
    box-shadow .18s ease;
}

.boton-header-intro:hover {
  background: #E20512 !important;
  /* solo cambia el fondo */
  transform: translateY(-2px);
  /* leve subida */
}

/* El ícono ▷ NO hereda la itálica del botón */
.boton-header-intro .intro-icon {
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 16px;
}




/* ====== MOBILE (≤767px) ====== */
@media (max-width: 767px) {

  /* La banda clara (before) mantiene el fondo + MUESTRA el mockup centrado */
  #home {
    --hero-band-h: 260px;
  }

  /* alto de la franja inferior en mobile */
  #home::before {
    /* color de la banda */
    background-color: #f3f6f8;
    /* mockup centrado dentro de la banda */
    background-image: url("/assets/img/gestion/mockup.png");
    background-repeat: no-repeat;
    background-position: center center;
    /* “en el medio centralizado” */
    background-size: contain;
    /* que quepa sin recortarse */
  }

  /* Ocultamos el <figure> del mockup (porque ahora va en ::before) */
  .hero-mockup {
    display: none !important;
  }

  /* La mujer BAJO el texto y SOBRE el mockup (::before) */
  .hero-woman {
    position: static !important;
    /* sale del absolute */
    display: block !important;
    margin: 16px auto 0;
    /* centrada bajo el texto */
    text-align: center;
    z-index: 2;
    /* por encima de ::before */
  }

  .hero-woman img {
    width: clamp(180px, 60vw, 300px);
    /* tamaño cómodo en móvil */
    height: auto;
  }

  /* Anulamos el helper de desktop para que no empuje en móvil */
  .right-top-200 {
    right: auto !important;
    top: auto !important;
  }
}

/* ====== TABLET (768–1023px) opcional, por si quieres el mismo comportamiento ====== */
@media (min-width: 768px) and (max-width: 1023px) {
  #home {
    --hero-band-h: 260px;
  }

  #home::before {
    background-color: #f3f6f8;
    background-image: url("/assets/img/gestion/mockup.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: min(85%, 760px) auto;
    /* un poco más grande que en móvil */
  }

  .hero-mockup {
    display: none !important;
  }

  .hero-woman {
    position: static !important;
    display: block !important;
    margin: 20px auto 0;
    text-align: center;
    z-index: 2;
  }

  .hero-woman img {
    width: clamp(220px, 45vw, 380px);
  }
}

/* ====== MOBILE (≤767px) ====== */
@media (max-width: 767px) {

  /* La banda clara con el mockup ya la tienes configurada */
  #home {
    --hero-band-h: 260px;
    /* alto de la franja */
    padding-bottom: calc(var(--hero-band-h) + 240px);
    /* espacio para la chica */
  }

  /* La CHICA: debajo del texto/botones, centrada,
     y con los pies justo en el borde SUPERIOR del ::before */
  .hero-woman {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: var(--hero-band-h) !important;
    /* alinea los pies con el borde superior */
    z-index: 2 !important;
    /* sobre el ::before (mockup) */
    margin: 0 !important;
    text-align: center;
  }

  .hero-woman img {
    width: clamp(200px, 60vw, 320px);
    height: auto;
  }

  /* No uses el helper de desktop en móvil */
  .right-top-200 {
    right: auto !important;
    top: auto !important;
  }

  /* Oculta el <figure> del mockup porque ahora va en ::before */
  .hero-mockup {
    display: none !important;
  }
}

/* ====== TABLET (768–1023px) ====== */
@media (min-width:768px) and (max-width:1023px) {
  #home {
    --hero-band-h: 280px;
    padding-bottom: calc(var(--hero-band-h) + 260px);
  }

  .hero-woman {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: var(--hero-band-h) !important;
    z-index: 2 !important;
  }

  .hero-woman img {
    width: clamp(240px, 40vw, 380px);
  }

  .right-top-200 {
    right: auto !important;
    top: auto !important;
  }

  .hero-mockup {
    display: none !important;
  }
}

/* ====== MOBILE (≤767px) ====== */
@media (max-width: 767px) {

  /* La banda clara con el mockup ya la tienes configurada */
  #home {
    --hero-band-h: 260px;
    /* alto de la franja */
    padding-bottom: calc(var(--hero-band-h) + 290px);
    /* espacio para la chica */
  }

  /* La CHICA: debajo del texto/botones, centrada,
     y con los pies justo en el borde SUPERIOR del ::before */
  .hero-woman {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: var(--hero-band-h) !important;
    /* alinea los pies con el borde superior */
    z-index: 2 !important;
    /* sobre el ::before (mockup) */
    margin: 0 !important;
    text-align: center;
  }

  .hero-woman img {
    width: clamp(200px, 60vw, 320px);
    height: auto;
  }

  /* No uses el helper de desktop en móvil */
  .right-top-200 {
    right: auto !important;
    top: 538px !important;
  }

  /* Oculta el <figure> del mockup porque ahora va en ::before */
  .hero-mockup {
    display: none !important;
  }
}

/* ====== TABLET (768–1023px) ====== */
@media (min-width:768px) and (max-width:1023px) {
  #home {
    --hero-band-h: 280px;
    padding-bottom: calc(var(--hero-band-h) + 260px);
  }

  .hero-woman {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: var(--hero-band-h) !important;
    z-index: 2 !important;
  }

  .hero-woman img {
    width: clamp(240px, 40vw, 380px);
  }

  .right-top-200 {
    right: auto !important;
    top: auto !important;
  }

  .hero-mockup {
    display: none !important;
  }
}

/* Solo MÓVIL (≤767px) */
@media (max-width: 767px) {
  #home {
    --woman-w: 40px;
  }

  /* ancho de la chica en móvil */
}

/* Solo TABLET (768–1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  #home {
    --woman-w: 320px;
  }

  /* ancho en tablet */
}



/* Desktop (≥1024px) se queda como está por tu regla base */


/*Responsive modificaion*/

/* =========================================================
   📱 RESPONSIVE SOLO (NO cambia Desktop/Laptop ≥1025px)
   Pega al FINAL de tu CSS
   Aplica únicamente a #home
   ========================================================= */

/* ===== Móvil pequeño (≤360px) ===== */
@media (max-width: 360px) {
  #home {
    --hero-band-h: 230px;
    /* altura banda clara inferior */
    --mockup-shift: -0.22;
    /* sube el mockup */
    --woman-w: 240px;
    /* ancho mujer */
  }

  #home .hero-copy {
    margin-bottom: 40px;
  }

  /* espacio texto↔mujer */
  #home .hero-woman {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    /* centrada */
    bottom: var(--hero-band-h);
    /* pies al borde del ::before */
    z-index: 2;
  }
}

/* ===== Móvil (361–480px) ===== */
@media (min-width: 361px) and (max-width: 480px) {
  #home {
    --hero-band-h: 240px;
    --mockup-shift: -0.26;
    --woman-w: 270px;
  }

  #home .hero-copy {
    margin-bottom: 44px;
  }

  #home .hero-woman {
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--hero-band-h);
  }
}

/* ===== Phablet (481–575px) ===== */
@media (min-width: 481px) and (max-width: 575px) {
  #home {
    --hero-band-h: 250px;
    --mockup-shift: -0.30;
    --woman-w: 300px;
  }

  #home .hero-copy {
    margin-bottom: 48px;
  }

  #home .hero-woman {
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--hero-band-h);
  }
}

/* ===== Tablet (576–768px) ===== */
@media (min-width: 576px) and (max-width: 768px) {
  #home {
    --hero-band-h: 260px;
    --mockup-shift: -0.34;
    --woman-w: 340px;
  }

  #home .hero-copy {
    margin-bottom: 56px;
  }

  #home .hero-woman {
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--hero-band-h);
  }
}

/* ===== Tablet grande / chico laptop (769–1024px) ===== */
@media (min-width: 769px) and (max-width: 1024px) {
  #home {
    --hero-band-h: 280px;
    --mockup-shift: -0.38;
    --woman-w: 380px;
  }

  /* Anula cualquier transform de escritorio en esta franja */
  #home .hero-copy {
    margin-bottom: 64px;
    transform: none;
  }

  #home .hero-woman {
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--hero-band-h);
  }
}

/* Utilidades responsive (no afectan Desktop) */
@media (max-width: 1024px) {
  #home .hero-mockup {
    transform: translateY(calc(var(--hero-band-h) * var(--mockup-shift)));
  }
}



/* =========================================================
   ✅ HERO Responsive: ocultar chica, alinear mockup al borde
   superior del ::before y tipografías/alineaciones
   (NO afecta Desktop/Laptop ≥1025px)
   ========================================================= */

/* ---------- Reglas generales SOLO ≤1024px ---------- */
@media (max-width: 1024px) {

  /* 1) Ocultar la chica (no borrar HTML) */
  #home .hero-woman {
    display: none !important;
  }

  /* 2) Alinear el mockup:
        Queremos que el CENTRO de la imagen coincida con el
        BORDE SUPERIOR del ::before (la banda clara).
        El borde superior del ::before está en: top = 100% - var(--hero-band-h)
        Colocamos el <figure> absolutamente respecto a #home. */
  #home .hero-mockup {
    position: static !important;
  }

  /* neutraliza posiciones previas */
  #home .hero-mockup figure {
    position: absolute !important;
    left: 50% !important;
    top: calc(100% - var(--hero-band-h)) !important;
    /* línea del borde superior del ::before */
    transform: translate(-50%, -50%) !important;
    /* centra el mockup EN esa línea */
    margin: 0 !important;
    z-index: 2 !important;
    /* por encima del ::before */
    width: min(92vw, 960px) !important;
    /* tamaño fluido y seguro */
  }

  #home .hero-mockup figure img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* 3) Decorativos ocultos en responsive (op.png) */
  #home .hero-mockup .-left-300,
  #home .hero-mockup .-right-300 {
    display: none !important;
  }

  /* 4) Asegurar espacio inferior para que no se corte el mockup */
  /*    (añadimos un padding-bottom suavemente mayor que la banda) */
  #home {
    padding-bottom: calc(var(--hero-band-h) + 220px) !important;
  }

  /* 5) Tipografía y alineaciones en responsive */
  /*    Variables de tamaño para editar fácil si lo deseas */
  #home {
    --h1-size: clamp(28px, 8vw, 40px);
    --sub-size: clamp(18px, 5vw, 28px);
    --p-size: clamp(14px, 4vw, 18px);
    --p-line: 1.25;
  }

  /* Bloque de texto centrado y ancho cómodo */
  #home .hero-copy {
    max-width: 900px !important;
    margin-inline: auto !important;
    text-align: center !important;
    /* centrado por defecto en responsive */
    transform: none !important;
    /* anula transform de desktop si aplica */
    padding-inline: 10px !important;
  }

  /* Subtítulo y Título */
  #home .infografia-typo .infografia-sub {
    font-size: var(--sub-size) !important;
  }

  #home .infografia-typo h1>span {
    font-size: var(--h1-size) !important;
  }

  /* Párrafos */
  #home p.infografia-desc,
  #home p.infografia-remark {
    font-size: var(--p-size) !important;
    line-height: var(--p-line) !important;
    max-width: 56ch !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Botones centrados */
  #home ul {
    justify-content: center !important;
  }
}

/* ---------- Ajustes finos por rango (opcional) ---------- */
/* Móvil típico ≤767px: un poco más de espacio inferior si tu mockup es alto */
@media (max-width: 767px) {
  #home {
    padding-bottom: calc(var(--hero-band-h) + 260px) !important;
  }
}

/* ---------- Helpers de alineación SOLO en responsive ---------- */
/* Úsalas en cualquier elemento (sin tocar HTML si ya existen esas clases en tu CSS) */
@media (max-width: 1024px) {
  .m-center {
    text-align: center !important;
  }

  .m-justify {
    text-align: justify !important;
  }

  .m-left {
    text-align: left !important;
  }
}


/* =========================================================
   🛠 Ajuste responsive: menos altura y mockup al centro
   (solo ≤1024px; Desktop/Laptop ≥1025px NO cambia)
   ========================================================= */
@media (max-width: 1024px) {

  /* ---- 1) Menos altura del sector ----
     - Baja un poco la banda clara
     - Reduce padding top/bottom del hero
     Ajusta estos 3 valores a gusto. */
  #home {
    --hero-band-h: 220px;
    /* antes 260–300px */
    padding-top: 80px !important;
    /* antes 120px */
    padding-bottom: calc(var(--hero-band-h) + 140px) !important;
    /* antes más alto */
  }

  /* Si quieres aún más compacto en móviles muy pequeños, descomenta:
  @media (max-width: 480px){
    #home{
      --hero-band-h: 200px;
      padding-top: 64px !important;
      padding-bottom: calc(var(--hero-band-h) + 120px) !important;
    }
  } */

  /* ---- 2) Mockup al MEDIO entre top rojo y borde sup. del ::before ----
     El borde superior del ::before está en (100% - var(--hero-band-h)).
     El punto medio entre TOP (0) y esa línea es:
        (100% - var(--hero-band-h)) / 2
     Colocamos el CENTRO del mockup en ese punto. */
  #home .hero-mockup {
    position: static !important;
  }

  #home .hero-mockup figure {
    position: absolute !important;
    left: 50% !important;
    top: calc((100% - var(--hero-band-h)) / 2) !important;
    /* mitad exacta */
    transform: translate(-50%, -50%) !important;
    /* centra la imagen en ese punto */
    width: min(90vw, 920px) !important;
    /* tamaño fluido */
    margin: 0 !important;
    z-index: 2 !important;
    /* sobre el ::before */
  }

  #home .hero-mockup figure img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* Decorativos fuera en responsive para evitar solapes */
  #home .hero-mockup .-left-300,
  #home .hero-mockup .-right-300,
  #home .hero-mockup .-top-300,
  #home .hero-mockup .-bot-300 {
    display: none !important;
  }

  /* La chica sigue oculta en responsive (como pediste antes) */
  #home .hero-woman {
    display: none !important;
  }
}

/* Ajuste fino en móvil típico (≤767px): un pelín menos alto aún */
@media (max-width: 767px) {
  #home {
    --hero-band-h: 200px;
    /* banda un poco más baja */
    padding-top: 68px !important;
    padding-bottom: calc(var(--hero-band-h) + 120px) !important;
  }

  #home .hero-mockup figure {
    width: min(92vw, 840px) !important;
    /* leve reducción */
  }
}



/* =========================================================
   Mockup en ::before — más pequeño y más arriba (≤1024px)
   ========================================================= */
@media (max-width: 1024px) {

  /* Control por variables: tamaño y desplazamiento vertical */
  #home {
    /* ⬇️ Tamaño del mockup dentro del ::before */
    --mockup-size: min(72vw, 620px);
    /* ⬆️ Desplazamiento hacia ARRIBA (negativo = sube) */
    --mockup-shiftY: -48px;
  }

  /* El mockup está en la banda (::before) */
  #home::before {
    background-image: url("/assets/img/gestion/mockup.png");
    background-repeat: no-repeat;
    background-size: var(--mockup-size);
    /* Top de la banda = 0% → movemos hacia arriba con negativo */
    background-position: center calc(0% + var(--mockup-shiftY));
  }

  /* Asegura que el <figure> no duplique la imagen */
  #home .hero-mockup {
    display: none !important;
  }
}

/* Ajuste fino para móviles típicos (≤767px): aún más chico y más arriba */
@media (max-width: 767px) {
  #home {
    --mockup-size: min(68vw, 1040px);
    /* más pequeño */
    --mockup-shiftY: -64px;
    /* más arriba */
  }
}

/* Extra pequeño (≤375px): un punto más compacto */
@media (max-width: 375px) {
  #home {
    --mockup-size: min(64vw, 500px);
    --mockup-shiftY: -72px;
  }
}


/* =========================================================
   Mockup por DELANTE del fondo rojo (solo ≤1024px)
   - Quitamos la imagen del ::before (queda solo la banda clara)
   - Mostramos el <figure> y lo posicionamos por encima
   ========================================================= */
@media (max-width: 1024px) {

  /* 1) La banda clara permanece, SIN imagen */
  #home::before {
    background-color: #f3f6f8 !important;
    background-image: none !important;
    /* <- ya no pinta el mockup aquí */
    background-position: initial !important;
    background-size: initial !important;
  }

  /* 2) El mockup vuelve al <figure> por delante del fondo rojo */
  #home .hero-mockup {
    display: block !important;
  }

  /* Controles de tamaño/posición (ajusta a gusto) */
  #home {
    --mockup-width: min(80vw, 820px);
    /* tamaño del mockup */
    --mockup-top: calc((100% - var(--hero-band-h)) / 2);
    /* mitad del rojo→borde superior de la banda */
  }

  #home .hero-mockup figure {
    position: absolute !important;
    left: 50% !important;
    top: var(--mockup-top) !important;
    /* alineación vertical */
    transform: translate(-50%, -50%) !important;
    width: var(--mockup-width) !important;
    margin: 0 !important;
    z-index: 2 !important;
    /* ← delante del fondo rojo y del ::before */
    pointer-events: none;
    /* evita bloquear clics en botones del hero */
  }

  #home .hero-mockup figure img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* 3) Un poco de aire abajo para que no se corte */
  #home {
    padding-bottom: calc(var(--hero-band-h) + 160px) !important;
  }
}

/* Fino en móvil típico (≤767px): un toque más chico y un pelín más arriba */
@media (max-width: 767px) {
  #home {
    --mockup-width: min(78vw, 700px);
    --mockup-top: calc((100% - var(--hero-band-h)) / 2 - 12px);
    padding-bottom: calc(var(--hero-band-h) + 100px) !important;
  }
}



/* =========================================================
   Mockup en el BORDE rojo/::before + banda más baja (≤1024px)
   ========================================================= */
@media (max-width: 1024px) {

  /* ↓ Altura de la banda clara (ajústala a gusto) */
  #home {
    --hero-band-h: 180px;
    /* antes mayor */
    --mockup-width: min(78vw, 740px);
    /* tamaño del mockup en responsive */
    padding-bottom: calc(var(--hero-band-h) + 140px) !important;
    /* aire para que no se corte */
  }

  /* La banda clara se mantiene, sin imagen de mockup */
  #home::before {
    background-color: #f3f6f8 !important;
    background-image: none !important;
  }

  /* Mockup por delante del fondo rojo, centrado EXACTO en la frontera */
  #home .hero-mockup {
    display: block !important;
  }

  #home .hero-mockup figure {
    position: absolute !important;
    left: 50% !important;
    top: calc(100% - var(--hero-band-h)) !important;
    /* ← borde inferior del rojo / superior de la banda */
    transform: translate(-50%, -50%) !important;
    /* centro del mockup en esa línea */
    width: var(--mockup-width) !important;
    margin: 0 !important;
    z-index: 2 !important;
    /* delante del fondo rojo y de la banda */
  }

  #home .hero-mockup figure img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }
}

/* Fino en móvil típico (≤767px): banda aún más baja y mockup un poco menor */
@media (max-width: 767px) {
  #home {
    --hero-band-h: 160px;
    /* banda más pequeña en móvil */
    --mockup-width: min(82vw, 660px);
    /* un toque más compacto */
    padding-bottom: calc(var(--hero-band-h) + 120px) !important;
  }
}


/* ============================
   CONTROLES DEL MOCKUP (≤1024px)
   - Mueve y escala SOLO el mockup
   ============================ */
@media (max-width: 1024px) {

  /* 🎛️ Ajustes rápidos */
  #home {
    --mk-width: min(92vw, 740px);
    /* tamaño del mockup */
    --mk-dy: 220px;
    /* + = más ABAJO / - = más ARRIBA */
    --mk-dx: 0px;
    /* + = a la DERECHA / - = a la IZQUIERDA */

    /* Punto de anclaje vertical:
       - Línea entre rojo y banda clara (= borde superior del ::before) */
    --mk-anchor: calc(100% - var(--hero-band-h));
  }

  /* Posicionamiento solo del mockup */
  #home .hero-mockup {
    display: block !important;
  }

  #home .hero-mockup figure {
    position: absolute !important;
    width: var(--mk-width) !important;

    /* ↔ Centro + desplazamiento horizontal */
    left: calc(50% + var(--mk-dx)) !important;
    transform: translateX(-50%) !important;

    /* ↕ Anclado a la frontera rojo/banda + desplazamiento vertical */
    top: calc(var(--mk-anchor) + var(--mk-dy)) !important;

    margin: 0 !important;
    z-index: 2 !important;
  }

  #home .hero-mockup figure img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }
}












/*=============================== Fin header===========================*/


/* Texto con check inicial */
.lead-with-check {
  /* Tipografía solicitada */
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  font-style: italic;
  font-size: 20px;
  line-height: 1;
  /* 100% */
  letter-spacing: 0;
  /* 0% */
  margin: 0;
  /* ayuda a “recortar” el leading visual */

  /* Para alinear el icono con el texto */
  display: inline-flex;
  gap: 8px;
  /* espacio entre el check y el texto */
  color: black;

  width: 475px;
  justify-content: center;
}

/* Tamaño y alineación del check */
.lead-with-check .check-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  object-fit: contain;
  flex: 0 0 18px;
  /* Si tu línea se ve un poco “alta” o “baja”, ajusta con: */
  /* transform: translateY(1px); */
}

/*Responsive*/
/* =========================
   Bullets con check (responsive)
   ========================= */
.lead-with-check {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  font-style: italic;
  font-size: 16px;
  /* base móvil */
  line-height: 1.3;
  /* mejor legibilidad en varias líneas */
  letter-spacing: 0;
  margin: 0;
  display: flex;
  /* evita centrado raro como inline-flex */
  align-items: flex-start;
  /* alinea el ícono con la primera línea */
  gap: 8px;
  color: #000;
  width: auto;
  /* elimina ancho fijo que rompía el responsive */
  max-width: 100%;
  justify-content: flex-start;
}

.lead-with-check .check-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  object-fit: contain;
  flex: 0 0 18px;
  margin-top: 2px;
  /* ajuste fino vertical del ícono */
}

/* =========================
   Layout #about (mobile-first)
   ========================= */

/* Móvil (≤639px): una columna, todo centrado visualmente pero texto a la izquierda */
#about .grid {
  gap: 20px;
}

#about figure {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

#about img.rounded-xl {
  width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
}

#about h2 {
  font-size: 28px;
  line-height: 1.15;
  text-align: center;
  /* título centrado en móvil */
  margin-bottom: 12px;
}

#about .tabs {
  text-align: left;
  /* bullets alineados a la izquierda */
}

/* Tablet (640–1023px): más aire y tipografía un poco más grande */
@media (min-width: 640px) and (max-width: 1023px) {
  .lead-with-check {
    font-size: 17px;
  }

  #about .grid {
    gap: 28px;
  }

  #about h2 {
    font-size: 34px;
  }
}

/* Desktop (≥1024px): dos columnas, imagen a la izquierda, texto a la derecha */
@media (min-width: 1024px) {
  .lead-with-check {
    font-size: 18px;
    max-width: 475px;
    /* tu ancho objetivo, ya sin forzar en móvil */
  }

  #about .grid {
    gap: 32px;
    align-items: center;
    justify-items: start;
    /* fija cada columna al inicio */
  }

  /* Empuja la imagen a la derecha dentro de su columna como querías */
  #about figure {
    max-width: 520px;
    /* tamaño cómodo en desktop */
    margin-left: auto;
    /* se alinea al borde derecho de su columna */
    margin-right: 0;
  }

  #about h2 {
    text-align: left;
    font-size: 40px;
    margin-bottom: 16px;
  }
}

/* Large desktop (≥1280px): escala final y ancho del bloque centrado */
@media (min-width: 1280px) {
  .lead-with-check {
    font-size: 20px;
  }

  #about figure {
    max-width: 620px;
  }

  /* como el mockup */
  #about .grid {
    max-width: 1200px;
    /* centra todo el bloque */
    margin-inline: auto;
  }
}


/*Responsive mejorado about*/
/* CENTRAR el bloque del about en móvil */
#about .grid {
  max-width: 1200px;
  margin-inline: auto;
  /* centra el grid */
  padding-inline: 16px;
  /* acolchado igual a ambos lados */
}

/* anula el empuje hacia la derecha de p-left en móvil */
.p-left {
  padding-left: 0 !important;
}

/* en desktop puedes recuperar el padding si lo necesitabas */
@media (min-width: 1024px) {
  .p-left {
    padding-left: 24px !important;
  }

  /* opcional */
  #about .grid {
    padding-inline: 24px;
  }
}

/* asegúrate que la imagen no “empuje”: centrada en móvil, a la derecha en desktop */
#about figure {
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1024px) {
  #about figure {
    margin-left: auto;
    /* pegada a la derecha dentro de su col */
    margin-right: 0;
  }
}





/* Inicio de services */
/* === GRID robusto para #services === */
#services .row {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  /* ancho mínimo por card */
  gap: 16px;
  /* separación justa entre cards */
  max-width: 1000px;
  /* ancho total del bloque */
  margin-inline: auto;
  padding-inline: clamp(12px, 3vw, 24px);
  align-items: stretch;
  /* permite igualar alturas si el contenido lo permite */
  justify-items: center;
  /* centra cada columna dentro del grid */
}

/* Anula anchos heredados del sistema .col-* dentro del grid y permite estirar la card */
#services .row>[class*="col-"] {
  width: 100% !important;
  max-width: none !important;
  flex: initial !important;
  min-width: 0;
  display: flex;
  /* permite que la card se estire */
}

/* === CARD (altura adaptable, centrada y con sombra pedida) === */
#services .group {
  width: 100%;
  max-width: 300px;
  /* tu ancho objetivo por card */
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 18px;
  padding: 24px;
  text-align: center;
  box-shadow: 0px 4px 4px 0px #00000040;
  /* sombra exacta */
  transition: transform .25s ease, box-shadow .25s ease;
  overflow: hidden;

  /* altura adaptable (versión final) */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: clamp(275px, 45vw, 0px) !important;
  /* móvil ≈300px → sube hasta 320px */
}

#services .group:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, .10);
}

/* Un poco más de aire en desktop + opcional min-height para alinear filas */
@media (min-width: 1024px) {
  #services .group {
    padding: 30px;
    /* min-height: 300px; */
  }
}

/* === ICONO (wrapper de 70x70 e imagen centrada) === */
#services .group>div:first-child {
  width: 70px;
  height: 70px;
  margin: 10px auto 30px auto;
  /* espacio final entre icono y texto */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* Icono (tu imagen) */
#services .service-icon {
  display: block;
  width: 560px;
  /* tamaño que dejaste al final */
  height: 560px;
  object-fit: contain;
  margin: 0;
  float: none;
  /* espacio inferior */
}

/* === TIPOGRAFÍA === */
/* h4 — Montserrat Semibold 17.5px, rojo, centrado */
#services .group h4 {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  /* Semibold */
  font-style: normal;
  font-size: 17px;
  /* versión final */
  line-height: 1.25;
  letter-spacing: 0;
  text-align: center;
  color: #E20512;
  margin: 0 0 10px 0;
  /* margin-top: 0 (última regla aplicada) */
}

/* p — Montserrat Medium 11px, centrado */
#services .group p {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 400;
  /* Medium */
  font-style: medium;
  font-size: 10.8px;
  /* versión final */
  line-height: 122%;
  /* mejor legibilidad que 1.22 */
  letter-spacing: 0px;
  text-align: center;
  color: #000;
  margin: 0 auto;
  max-width: 46ch;
  /* ancho legible del párrafo */
}

/* Altura exacta en pantallas medianas/grandes (última versión) */
@media (min-width: 768px) {
  #services .group {
    height: 320px;
  }
}

/* En pantallas muy pequeñas, baja un poquito más si es necesario */
@media (max-width: 360px) {
  #services .group {
    height: 280px;
  }
}

/* ---------- Encabezado de Services ---------- */
#services h6 {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: normal;
  font-size: 20px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  margin: 0 0 8px 0;
}

#services h2 {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 40px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  text-transform: capitalize;
  margin: 0;
  /* ya tienes .mb-6 en el HTML si quieres espacio */
}

/* El span dentro del h2 con mismas propiedades (y color opcional) */
#services h2 span {
  font-family: inherit;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: inherit;
  /* 40px como el h2 */
  line-height: inherit;
  /* 1.22 */
  letter-spacing: inherit;
  text-align: inherit;
  text-transform: inherit;
  /* Si quieres el “ESAC?” en rojo como antes, descomenta: */
  color: #E20512;
}


/* =======================================
   Toggle global de cards: SOLO en móviles
   ======================================= */

/* Desktop/laptop: botón oculto, grid siempre visible */
@media (min-width: 641px) {
  #services .svc-all-toggle {
    display: none;
  }

  #services .svc-switch {
    display: none;
  }

  #services .svc-panel {
    display: block;
  }

  /* abierto siempre */
}

/* Móvil: botón visible y panel colapsable sin espacios en blanco */
@media (max-width: 640px) {

  /* El checkbox existe pero oculto (control) */
  #services .svc-switch {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  /* Contenedor del botón */
  #services .svc-all-toggle {
    display: block;
    margin: 0 auto;
    max-width: 420px;
  }

  /* Botón (label) */
  #services .svc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 2px solid #E20512;
    background: #fff;
    color: #E20512;
    font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.1;
    cursor: pointer;
    user-select: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
  }

  #services .svc-btn:hover {
    background: #E20512;
    color: #fff;
  }

  /* Chevron del botón */
  #services .svc-btn-icon {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid currentColor;
    /* mismo color del texto */
    transition: transform .2s ease;
    transform-origin: 50% 40%;
  }

  /* Girar chevron al abrir:
     el input va ANTES y es hermano ADYACENTE del contenedor del botón */
  #services #svc-all:checked+.svc-all-toggle .svc-btn-icon {
    transform: rotate(180deg);
  }

  /* Panel colapsable (0fr → 1fr) sin márgenes/paddings extra */
  #services .svc-panel {
    display: grid;
    grid-template-rows: 0fr;
    /* cerrado */
    transition: grid-template-rows .28s ease;
    margin: 0;
    padding: 0;
    overflow: hidden;
    /* evita “hueco” */
  }

  #services .svc-panel>.row {
    overflow: hidden;
    margin: 0;
    padding: 0;
    /* limpia márgenes heredados */
  }

  /* Abrir panel: el input es HERMANO anterior de .svc-panel */
  #services #svc-all:checked~.svc-panel {
    grid-template-rows: 1fr;
    /* abierto */
  }

  /* (Opcional) un respiro al abrir */
  #services #svc-all:checked~.svc-panel>.row {
    padding-top: 8px;
  }
}







/* =======================================
   Toggle global de cards: SOLO en móviles
   ======================================= */

/* Desktop/laptop: botón oculto, grid siempre visible */
@media (min-width: 641px) {
  #services .svc-all-toggle {
    display: none;
  }

  #services .svc-switch {
    display: none;
  }

  #services .svc-panel {
    display: block;
  }

  /* abierto siempre */
}

/* Móvil: botón visible y panel colapsable sin espacios en blanco */
@media (max-width: 640px) {

  /* Checkbox (control) — existe pero oculto */
  #services .svc-switch {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  /* Botón */
  #services .svc-all-toggle {
    display: block;
    margin: 0 auto;
    max-width: 420px;
  }

  #services .svc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 2px solid #E20512;
    background: #fff;
    color: #E20512;
    font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.1;
    cursor: pointer;
    user-select: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
  }

  #services .svc-btn:hover {
    background: #E20512;
    color: #fff;
  }

  /* Chevron del botón */
  #services .svc-btn-icon {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid currentColor;
    transition: transform .2s ease;
    transform-origin: 50% 40%;
  }

  /* Girar chevron con :has() (si no hay soporte, no gira pero el panel funciona) */
  #services .container:has(#svc-all:checked) .svc-btn-icon {
    transform: rotate(180deg);
  }

  /* Panel colapsable (0fr → 1fr) sin “huecos” */
  #services .svc-panel {
    display: grid;
    grid-template-rows: 0fr;
    /* cerrado */
    transition: grid-template-rows .28s ease;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }

  #services .svc-panel>.row {
    overflow: hidden;
    margin: 0;
    padding: 0;
  }

  /* Abrir panel: #svc-all y .svc-panel son HERMANOS */
  #services #svc-all:checked~.svc-panel {
    grid-template-rows: 1fr;
    /* abierto */
  }

  /* (Opcional) respirito al abrir */
  #services #svc-all:checked~.svc-panel>.row {
    padding-top: 8px;
  }
}



/* ===== Ajustes finos SOLO en móvil (≤640px) ===== */
@media (max-width: 640px) {

  /* 1) Centrar las cards y ocupar 1 columna */
  #services .row {
    grid-template-columns: minmax(0, 1fr);
    /* 1 col */
    justify-items: center;
    /* centra cada card */
    padding-inline: 16px;
    /* padding simétrico */
    gap: 20px;
    /* separaciones limpias */
  }

  /* 2) Asegurar centrado de cada card y ancho amable */
  #services .group {
    max-width: 340px;
    /* ligeramente + ancha que 300 si quieres */
    margin-inline: auto;
    /* centra por si acaso */
  }

  /* 3) Botón: un poco más abajo del H2 */
  #services .svc-all-toggle {
    margin-top: 10px;
    /* baja el botón respecto al texto */
  }

  /* 4) Acercar las cards al botón cuando se abre */
  #services #svc-all:checked~.svc-panel {
    margin-top: 8px;
    /* reduce el “aire” entre botón y grid */
  }

  #services #svc-all:checked~.svc-panel>.row {
    padding-top: 4px;
    /* muy sutil; puedes dejarlo en 0 si quieres más junto */
  }
}


/* ===== PC/Laptop: altura mínima de las cards ===== */
@media (min-width: 1024px) {
  #services .group {
    min-height: 300px;
    height: auto !important;
    /* anula cualquier height fijo previo (320px, etc.) */
  }
}












/*Fin de service*/


/* Intro Video Section*/


/* =========================
   Intro video section (fusionado)
   ========================= */

/* =========================
   Intro: Títulos y párrafo
   ========================= */
#intro .intro-title {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 40px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  text-transform: capitalize;
  color: #000;
  margin: 0;
}

#intro .intro-title span {
  display: block;
  /* fuerza la segunda línea */
  color: #E20512;
  text-transform: capitalize;
  /* text-decoration: underline; */
  /* activa si quieres subrayado */
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}

/* Párrafo: en desktop queda en 2 líneas exactas (l1 y l2) */
#intro .intro-sub {
  max-width: 90ch;
  margin: 10px auto 18px;
  text-align: center;

  /* anula clamps anteriores */
  display: block;
  -webkit-line-clamp: initial;
  -webkit-box-orient: initial;
  overflow: visible;

  font-weight: 500;
  color: #000;
}

#intro .intro-sub .l1,
#intro .intro-sub .l2 {
  display: block;
  /* cada span en su línea */
  white-space: nowrap;
  /* evita cortes internos */
  color: #000;
}

#intro .intro-sub .brand {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  color: #E20512;
  white-space: nowrap;
}

/* =========================
   Intro: Video con portada
   (coincide con tu HTML actual)
   ========================= */
.video-container {
  position: relative;
  width: 100%;
  max-width: 900px;
  /* centrado por ancho tope */
  margin-inline: auto;
  aspect-ratio: 16 / 9;
  /* mantiene proporción */
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
}

.video-container iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: 12px;
}

/* Portada (imagen) */
.video-thumbnail {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 12px;
}

/* Botón de play centrado con inversión en hover */
.play-button {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  /* centro real, sin “saltos” */
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: #E20512;
  color: #fff;
  border: 4px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 24px rgba(226, 5, 18, .28);
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.play-button .play-icon {
  width: 0;
  height: 0;
  border-left: 20px solid #fff;
  /* triángulo blanco */
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  transition: border-left-color .3s ease;
}

.play-button:hover {
  background-color: #fff;
  color: #E20512;
  border-color: #E20512;
  box-shadow: 0 18px 30px rgba(226, 5, 18, .35);
}

.play-button:hover .play-icon {
  border-left-color: #E20512;
}

/* =========================
   Animación de entrada (solo #intro)
   ========================= */

/* aplica a los elementos con tu clase scroll-revealed dentro de #intro */
#intro .scroll-revealed {
  animation: introFadeUp .6s ease-out both;
}

/* =========================
   Responsive
   ========================= */
@media (max-width: 640px) {
  #intro .intro-title {
    font-size: 32px;
  }

  #intro .intro-title span {
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
  }

  #intro .intro-sub {
    max-width: 44ch;
    margin: 10px auto 14px;
    display: block;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
    overflow: visible;
    text-wrap: pretty;
  }

  #intro .intro-sub .l1,
  #intro .intro-sub .l2 {
    display: inline;
    /* vuelve a flujo normal en móvil */
    white-space: normal;
  }

  .play-button {
    width: 60px;
    height: 60px;
  }

  .play-button .play-icon {
    border-left-width: 16px;
    border-top-width: 10px;
    border-bottom-width: 10px;
  }
}

@media (max-width: 400px) {
  #intro .intro-title {
    font-size: 28px;
  }

  #intro .intro-sub {
    max-width: 40ch;
  }
}


/* Fin del video Intro*/


/* Portfolio section */

/*Texto*/
/* Título h2 */
.portfolio-title {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  /* (no existe 'ExtraBold' como font-style) */
  font-size: 40px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  margin: 0 0 12px 0;
  color: #000000;
}

/* Párrafo bajo el título */
.portfolio-lead {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  /* (no existe 'Medium' como font-style) */
  font-size: 15px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;

}

/* (Opcional) ajuste suave en móviles muy pequeños */
@media (max-width: 400px) {
  .portfolio-title {
    font-size: 32px;
  }
}

/* Texto de las imagenes */

/* Título del card */
/* Título del card */
#portfolio .portfolio .pt-4 h4 {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: normal;
  font-size: 20px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  margin: 10px 0 12px 0;
  color: #E20512;
  /* rojo solicitado */
}

/* El <a> hereda color/tamaño del h4 (anula la utilitaria text-[1.5rem]) */
#portfolio .portfolio .pt-4 h4 a {
  color: inherit;
  text-decoration: none;
  font-size: inherit !important;
  /* fuerza 20px del h4 */
  line-height: inherit;
}

/* Párrafo del card */
#portfolio .portfolio .pt-4 p {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 400;
  /* Medium */
  font-style: normal;
  font-size: 16px;
  /* 13.98px ≈ 14px */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: justify;
  color: #000000;
  margin: 0;
}






/* Imagenes */
/* === Portfolio: swap de imagen al hover SOLO dentro de la imagen === */

/* Wrapper de imagen (coincide con rounded-xl del HTML) */
#portfolio .img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

/* Ambas imágenes apiladas una sobre otra */
#portfolio .img-wrap .base-img,
#portfolio .img-wrap .hover-img {
  position: absolute;
  inset: 0;
  /* top/right/bottom/left: 0 */
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .35s ease;
  /* fade suave */
}

/* Estado inicial */
#portfolio .img-wrap .base-img {
  opacity: 1;
}

#portfolio .img-wrap .hover-img {
  opacity: 0;
}

/* Cambia la imagen SOLO cuando el cursor está sobre la imagen
   (o cuando recibe foco por teclado dentro del wrapper) */
#portfolio .img-wrap:hover .hover-img,
#portfolio .img-wrap:focus-within .hover-img {
  opacity: 1;
}

#portfolio .img-wrap:hover .base-img,
#portfolio .img-wrap:focus-within .base-img {
  opacity: 0;
}



/* Boton y Icono */
/* CTA centrado bajo el texto del card */
#portfolio .card-cta {
  margin-top: 18px;
  display: flex;
  justify-content: center;
}

/* Botón WhatsApp */
#portfolio .cta-wsp {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 9999px;
  background: #E20512;
  /* rojo */
  color: #fff;
  /* texto blanco */
  text-decoration: none;
  border: 0;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  box-shadow: 0 10px 22px rgba(226, 5, 18, .25);
  transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

/* Icono del botón */
#portfolio .cta-wsp__icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
  transition: opacity .2s ease, transform .2s ease;
}

/* Hover: invertir colores y ocultar icono */
#portfolio .cta-wsp:hover,
#portfolio .cta-wsp:focus-visible {
  background: #fff;
  /* fondo blanco */
  color: #E20512;
  /* texto rojo */
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(226, 5, 18, .30);
  outline: none;
}

#portfolio .cta-wsp:hover .cta-wsp__icon,
#portfolio .cta-wsp:focus-visible .cta-wsp__icon {
  opacity: 0;
  /* oculta el icono */
  transform: scale(.7);
}

/* Responsive: botón un pelín más compacto en móvil */
@media (max-width: 480px) {
  #portfolio .cta-wsp {
    padding: 12px 18px;
    font-size: 13px;
  }
}






/* Centrar el bloque de copia de cada card */
#portfolio .portfolio .pt-4 {
  text-align: center;
  /* centra h4, p y lo que siga */
}

/* Asegura el ancho legible del párrafo y lo centra */
#portfolio .portfolio .pt-4 p {
  max-width: 320px;
  /* ajusta si lo quieres más angosto/ancho */
  margin: 0 auto 16px auto;
  /* centrado + espacio inferior */
  text-align: center;
  /* fuerza centrado del texto */
}

/* Centra el CTA bajo el texto */
#portfolio .portfolio .pt-4 .card-cta {
  display: flex;
  justify-content: center;
}

/* La grilla estira cada ítem a la misma altura */
#portfolio .portfolio-grid {
  align-items: stretch;
  /* si es grid o flex, fuerza el estiramiento */
}

/* Cada columna (card) se comporta como un contenedor vertical */
#portfolio .portfolio {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Bloque de la imagen (article .group) no crece ni se encoge */
#portfolio .portfolio>.group {
  flex: 0 0 auto;
  /* mantiene el alto del 4:3 que ya tienes */
}

/* Bloque de texto + botón ocupa el resto y alinea al centro */
#portfolio .portfolio>.pt-4 {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* centra h4, p y CTA horizontalmente */
  /* espacio vertical uniforme */
  flex: 1;
  /* rellena la altura restante de la card */
  text-align: center;
  /* asegura centrado de texto */
}

/* El párrafo puede crecer para empujar el botón hacia abajo */
#portfolio .portfolio>.pt-4 p {
  max-width: 340px;
  /* ancho legible */
  margin: 0 auto;
  /* centrado */
  text-align: justify;
  flex: 1;
  /* toma el espacio flexible */
}

/* El CTA siempre queda pegado al fondo de la card */
#portfolio .portfolio>.pt-4 .card-cta {
  margin-top: auto;
  /* empuja el botón al final */
  display: flex;
  justify-content: center;
}

/* --- RESTAURAR/CONSERVAR .row GLOBAL PARA EL RESTO DEL SITIO (Contact, etc.) --- */
/* Si ya tienes un framework, estas reglas suelen ser las correctas por defecto. 
   Lo importante es NO meterle márgenes/paddings raros a .row de forma global. */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.75rem;
  margin-right: -0.75rem;
  /* NO justify-content:center;  → eso descuadra formularios */
}

/* --- SOLO PORTFOLIO: convierto la "row" en grid y le doy el padding deseado --- */
#portfolio .portfolio-grid.row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;

  /* El “espacio a los lados” que querías (antes lo pusiste en .row global).
     Hazlo aquí, solo para portfolio: */
  /* padding-inline: clamp(12px, 6vw, 10rem); */
  margin-left: 0;
  /* anula márgenes negativos de .row global, si aplica */
  margin-right: 0;
  /* anula márgenes negativos de .row global, si aplica */
}

/* Responsivo para portfolio */
@media (max-width: 1024px) {
  #portfolio .portfolio-grid.row {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  #portfolio .portfolio-grid.row {
    grid-template-columns: 1fr;
  }
}

/* Asegura que las columnas (.portfolio) ocupen su celda completa en grid */
#portfolio .portfolio-grid.row>.portfolio {
  width: 100% !important;
  max-width: none !important;
}

/* ====== Portfolio: normalizar cuerpo de cada card como Row 3 ====== */
#portfolio .portfolio .pt-4 {
  /* centramos todo el bloque de texto/botón */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-inline: auto;
}

/* título: ancho cómodo y centrado */
#portfolio .portfolio .pt-4 h4 {
  max-width: 42rem;
  /* ~672px, ajusta si quieres */
  margin: 0 auto 12px;
}

/* párrafo: ignorar max-w-[250px] de utilidades y usar uno mayor */
#portfolio .portfolio .pt-4 p {
  max-width: 17rem !important;
  /* anula max-w-[250px] del HTML */
  margin: 0 auto -10px !important;
  text-align: justify;
  /* lo estabas usando así */
}

/* botón centrado siempre */
#portfolio .portfolio .pt-4 .card-cta {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* Igualar la altura de los títulos (3 líneas) */
#portfolio .portfolio .pt-4 h4 {
  line-height: 1.22;
  /* debe coincidir con tu h4 */
  min-height: calc(1.22em * 3);
  /* reserva espacio de 3 líneas */
  display: flex;
  /* centra verticalmente el texto dentro */
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* En móvil, deja que fluya sin altura fija */
@media (max-width: 640px) {
  #portfolio .portfolio .pt-4 h4 {
    min-height: 0;
  }
}

#portfolio .title-line {
  display: block;
}

/* (opcional) si quieres evitar que el salto <br> de Row 2 cause
   separación extra por line-height, ya lo tienes a 1.22; no hace falta más */
/* Solo el h4 del primer card */
#portfolio .portfolio-grid>.portfolio:first-child h4 a {
  font-size: 24px !important;
  /* ↑ sobreescribe text-[1.5rem] */
  line-height: 1.22;
}

@media (min-width:1024px) {
  #portfolio .portfolio-grid>.portfolio:first-child h4 a {
    font-size: 26px !important;
  }
}



/* Botón */
.card-cta {
  display: flex;
  justify-content: center;
}

.cta-wsp {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  /* espacio entre icono y texto */
  padding: 12px 22px;
  /* controla la ALTURA del botón */
  border-radius: 9999px;
  background: #E20512;
  color: #fff;
  box-shadow: 0 10px 24px rgba(226, 5, 18, .25);
  transition: background-color .2s ease, color .2s ease, gap .2s ease;
  text-decoration: none;
  font-weight: 700;
}

/* Icono */
.cta-wsp__icon {
  width: 22px;
  /* tamaño del icono */
  height: 22px;
  flex: 0 0 22px;
  /* reserva ancho fijo para el icono */
  transition:
    opacity .2s ease,
    transform .2s ease,
    width .2s ease,
    margin .2s ease;
}

/* Hover: invierte colores, oculta icono y deja que el texto ocupe su hueco */
.cta-wsp:hover {
  background: #fff;
  color: #E20512;
  gap: 0;
  /* cerramos el hueco entre icono y texto */
}

.cta-wsp:hover .cta-wsp__icon {
  opacity: 0;
  transform: scale(.5);
  width: 0;
  /* “elimina” el icono sin cambiar la ALTURA */
  margin: 0;
}


/* Botón (asegura altura constante con padding) */
#portfolio .cta-wsp {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  /* espacio inicial entre icono y texto */
  padding: 12px 22px;
  /* controla ALTURA del botón */
  border-radius: 9999px;
  background: #E20512;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
  /* texto en una sola línea */
  transition:
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease,
    transform .2s ease,
    gap .2s ease;
}

/* Icono: ancho fijo para reservar hueco; así el texto no mueve la altura */
#portfolio .cta-wsp__icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  /* ← reserva exactamente 20px */
  object-fit: contain;
  transition:
    opacity .2s ease,
    transform .2s ease,
    width .2s ease,
    margin .2s ease,
    flex-basis .2s ease;
}

/* Hover: invierte colores, oculta icono y deja que el texto ocupe su espacio */
#portfolio .cta-wsp:hover,
#portfolio .cta-wsp:focus-visible {
  background: #fff;
  color: #E20512;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(226, 5, 18, .30);
  gap: 0;
  /* cerramos el hueco entre icono y texto */
  outline: none;


}

/* El icono “desaparece” y su ancho pasa a 0, el texto ocupa ese lugar.
   La ALTURA del botón NO cambia porque depende del padding. */
#portfolio .cta-wsp:hover .cta-wsp__icon,
#portfolio .cta-wsp:focus-visible .cta-wsp__icon {
  opacity: 0;
  transform: scale(.6);
  width: 0;
  flex-basis: 0;
  /* libera el ancho reservado */
  margin: 0;
}

/* Opcional: un poco más compacto en móvil */
@media (max-width: 480px) {
  #portfolio .cta-wsp {
    padding: 12px 18px;
    font-size: 13px;
  }
}


/* Contenedor del botón (centro) */
.card-cta {
  display: flex;
  justify-content: center;
}

/* Botón con espacio reservado a la izquierda para el icono */
#portfolio .cta-wsp {
  position: relative;
  /* para posicionar el icono dentro */
  display: inline-flex;
  align-items: center;
  padding: 12px 22px;
  /* controla ALTURA y aire lateral */
  padding-left: calc(22px + 20px + 10px);
  /* ← reserva: padding + icono(20) + gap(10) */
  border-radius: 9999px;
  background: #E20512;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
  transition:
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease,
    transform .2s ease;
  box-shadow: 0 10px 24px rgba(226, 5, 18, .25);
}

/* Icono posicionado absoluto sobre el “hueco” reservado */
#portfolio .cta-wsp__icon {
  position: absolute;
  left: 22px;
  /* coincide con el padding-left base */
  width: 20px;
  height: 20px;
  object-fit: contain;
  transition: opacity .2s ease, transform .2s ease;
}

/* Hover: invierte colores y “elimina” el icono sin cambiar el ancho */
#portfolio .cta-wsp:hover,
#portfolio .cta-wsp:focus-visible {
  background: #fff;
  color: #E20512;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(226, 5, 18, .30);
  outline: none;
  justify-content: center;
  /* centra el texto cuando el icono desaparece */
}

/* Oculta el icono, pero el ancho del botón NO cambia porque el espacio
   está reservado por el padding-left */
#portfolio .cta-wsp:hover .cta-wsp__icon,
#portfolio .cta-wsp:focus-visible .cta-wsp__icon {
  opacity: 0;
  transform: scale(.6);
}

/* Móvil un pelín más compacto (opcional) */
@media (max-width: 480px) {
  #portfolio .cta-wsp {
    padding: 12px 18px;
    padding-left: calc(18px + 20px + 8px);
    font-size: 13px;
  }

  #portfolio .cta-wsp__icon {
    left: 18px;
  }
}

/* === Botón más alto y listo para crecer el texto en hover === */
#portfolio .cta-wsp {
  /* altura cómoda y estable */
  min-height: 56px;
  /* ↑ altura base del botón */
  padding: 12px 24px;
  /* aire lateral; la altura la garantiza min-height */
  padding-left: calc(24px + 20px + 10px);
  /* reserva para el icono (24 pad + 20 icon + 10 gap) */

  font-size: 16px;
  /* tamaño base del texto */
  line-height: 1;
  /* evita que el line-height expanda más la altura */
  transition:
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease,
    transform .2s ease,
    font-size .2s ease;
  /* ← anima el cambio de font-size */
}

/* Ícono centrado verticalmente, no afecta el layout */
#portfolio .cta-wsp__icon {
  position: absolute;
  left: 24px;
  /* coincide con el padding-left base */
  top: 50%;
  /* centra vertical */
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  object-fit: contain;
  transition: opacity .2s ease, transform .2s ease;
}

/* Hover: invierte colores, oculta icono y CRECE el texto */
#portfolio .cta-wsp:hover,
#portfolio .cta-wsp:focus-visible {
  background: #fff;
  color: #E20512;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(255, 0, 17, 0.3);
  outline: none;
  display: flex;
  /* Asegura el uso de Flexbox */
  align-items: center;
  /* Centra verticalmente */
  justify-content: center;
  /* Centra horizontalmente */
  font-size: 16px;
  /* ↑ crece el texto en hover */
  padding: 16px 39px;
  /* aire lateral; la altura la garantiza min-height */

}

/* Oculta el icono sin cambiar el ancho del botón */
#portfolio .cta-wsp:hover .cta-wsp__icon,
#portfolio .cta-wsp:focus-visible .cta-wsp__icon {
  opacity: 0;
  transform: translateY(-50%) scale(.6);
  display: none;
  visibility: hidden;

}

/* ——— Responsive ——— */
@media (max-width: 480px) {
  #portfolio .cta-wsp {
    min-height: 52px;
    /* un poquito más compacto en móvil */
    padding: 12px 18px;
    padding-left: calc(18px + 20px + 8px);
    font-size: 15px;
    /* base móvil */
  }

  #portfolio .cta-wsp:hover,
  #portfolio .cta-wsp:focus-visible {
    font-size: 17px;
    /* hover móvil */
  }

  #portfolio .cta-wsp__icon {
    left: 18px;
  }
}






/* ====== fin de Portfolio: normalizar cuerpo de cada card como Row 3 ====== */
/* Fin del portfolio section */


/* Pricing section */

/* Fondo solo para la sección de precios */
#pricing {
  background-color: #f7f7fa;
}

/* (Opcional) si quieres un poco más de aire dentro de la franja */
#pricing .container {
  padding-top: 2rem;
  /* ajusta si necesitas */
  padding-bottom: 2rem;
}


/* Texto Precios u promociones*/
/* ===== Pricing: Títulos y párrafo (solo sección #pricing) ===== */
#pricing .pricing-heading {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 45px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  /* (tipografía en negro) */
  margin: 0 0 12px 0;
}

#pricing .pricing-lead {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  font-size: 16px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  /* texto en negro */
}

/* Responsive: título un poco más compacto en móvil */
@media (max-width: 640px) {
  #pricing .pricing-heading {
    font-size: 32px;
  }
}




/* Colores a usar en pricing */
/* ===== Pricing: Paquete 1 — chip, moneda y cantidad ===== */
#pricing .pricing-title {
  background-color: #FD4651;
  /* fondo del h6 */
  color: #FFFFFF;
  /* texto del h6 */
}

/* Contenedor del precio: mantenemos layout actual */
#pricing .pricing-price {
  position: relative;
  padding-left: 1rem;
  /* ya existía (pl-4), lo respetamos */
  line-height: 1.22;
}

/* Moneda "S/" */
#pricing .pricing-price .price-currency {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  font-size: 20.66px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
}

/* Cantidad (60) */
#pricing .pricing-price .price-amount {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  /* Semibold */
  font-style: normal;
  font-size: px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
}







/* ===== Pricing: botón "Compra Ahora" ===== */
#pricing .pricing-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 7px;

  background: #FD4651;
  /* rojo del botón */
  color: #FFFFFF;
  /* texto blanco */
  text-decoration: none;
  cursor: pointer;

  /* Tipografía */
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 16px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  font-variant: small-caps;
  /* small-caps solicitado */

  /* Suavidad al interactuar (opcional) */
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;

  width: 200px;
  /* antes 160px */
  height: 44px;
  /* antes 35px */
  box-shadow: none;
  /* sin sombra */
  border: 2px solid transparent;
  /* prepara el borde para el hover */
  text-transform: uppercase;
  display: inline;

}

#pricing .pricing-cta:hover,
#pricing .pricing-cta:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(253, 70, 81, .35);
  outline: none;
}


/* Botón más grande, sin sombra */


/* Hover/focus: invierte colores (fondo blanco, texto rojo) */
#pricing .pricing-cta:hover,
#pricing .pricing-cta:focus-visible {
  background: #FFFFFF;
  color: #FD4651;
  border-color: #FD4651;
  /* muestra el borde rojo */
  transform: none;
  /* opcional: sin movimiento */
}

/* Lista del pricing con icono de imagen y tipografía solicitada */
#pricing .price-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

#pricing .price-list li {
  display: flex;
  align-items: flex-start;
  /* alinea texto con el icono */
  gap: 12px;
  margin-bottom: 12px;
  /* era mb-3 */
  text-align: left;
  /* conserva alineación izquierda */
}

#pricing .price-check {
  width: 25px;
  height: 25px;
  object-fit: contain;
  flex: 0 0 18px;
  /* evita que se deforme */
  margin-top: 2px;
  /* microajuste vertical */
}

#pricing .price-text {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  font-size: 18px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  color: #595959;
}


/* === Pricing: SOLO Paquete 2 === */
#pricing .row>.col-12:nth-of-type(2) .pricing-title {
  background: #E20512;
  /* fondo rojo */
  color: #FFFFFF;
  /* texto blanco */
}

/* Botón "¡comprar ahora!" del Paquete 2 */
#pricing .row>.col-12:nth-of-type(2) .pricing-cta {
  background: #E20512;
  /* fondo rojo */
  color: #FFFFFF;
  /* texto blanco */
  border: 1px solid #E20512;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}

/* Hover/focus: invierte colores (opcional, queda lindo y consistente) */
#pricing .row>.col-12:nth-of-type(2) .pricing-cta:hover,
#pricing .row>.col-12:nth-of-type(2) .pricing-cta:focus-visible {
  background: #FFFFFF;
  color: #E20512;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(226, 5, 18, .20);
  outline: none;
}

/* === Pricing: hacer las tarjetas más angostas === */
/* Centra la fila y agrega separación visible entre tarjetas */
#pricing .row {
  justify-content: center;
  /* gap: 28px; */
  /* separación horizontal entre cards */
}

/* Fuerza a cada columna a comportarse como “bloque angosto” */
#pricing .row>[class*="col-"] {
  flex: 0 0 auto;
  /* evita que se estiren a todo el ancho */
}

/* Limita el ancho del contenedor interior de cada card y céntralo */
#pricing .row>[class*="col-"]>div {
  max-width: 300px;
  /* ← ajusta este valor si las quieres más/menos angostas */
  margin-inline: auto;
  width: 100%;
}

/* === Pricing: misma medida para “Paquete” y “¡COMPRAR AHORA!” === */
#pricing .pricing-title,
#pricing .pricing-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  /* ancho común */
  height: 44px;
  /* alto común */
  padding: 0;
  /* que no varíe por padding */
  border-radius: 7px;
  /* el radio que pediste */
  line-height: 1;
  /* texto bien centrado verticalmente */
}

/* Mantén el comportamiento de hover SIN cambiar tamaño */
#pricing .pricing-cta:hover,
#pricing .pricing-cta:focus-visible {
  /* tus colores/hover actuales; no alteran width/height */
  background: #fff;
  color: #E20512;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(226, 5, 18, .20);
  outline: none;
}


/* ===== Pricing: 3 columnas iguales + mismas alturas ===== */

/* 3 columnas (1/3 c/u) con separación uniforme */
#pricing .row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  justify-items: stretch;
  /* cada celda llena su columna */
  align-items: stretch;
  /* iguala la altura de las celdas */
}

/* Asegura que los “col-*” llenen su celda sin límites previos */
#pricing .row>[class*="col-"] {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* La tarjeta interior ocupa TODA la altura de su celda */
#pricing .row>[class*="col-"]>div {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /* reparte bloques de arriba/abajo */
  max-width: none !important;
  /* anula ajustes de anchura anteriores */
}

/* El bloque de la lista puede crecer para equilibrar las alturas */
#pricing .row>[class*="col-"]>div>div:last-child {
  /* Este <div> envuelve el <ul> de beneficios */
  flex: 1 1 auto;
  /* permite que tome el espacio vertical */
  display: flex;
}

#pricing .row>[class*="col-"]>div>div:last-child>ul {
  margin-top: auto;
  /* empuja la lista al fondo si sobra espacio */
}

/* Mantener títulos/CTA con la misma medida (si ya lo tenías) */
#pricing .pricing-title,
#pricing .pricing-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  height: 44px;
  padding: 0;
  border-radius: 10px;
  line-height: 1;
}

/* ===== Responsivo ===== */
@media (max-width: 1024px) {
  #pricing .row {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  #pricing .row {
    grid-template-columns: 1fr;
  }
}

/* ===== PRICING: ancho visual más angosto + mismas alturas ===== */

/* 3 columnas iguales */
#pricing .row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
  justify-items: center;
  /* centra el contenido de cada celda */
}

/* Hace que cada tarjeta ocupe menos ancho visual (pero sigue 1/3 por columna) */
#pricing .row>[class*="col-"]>div {
  width: clamp(260px, 88%, 360px);
  /* ← reduce anchura percibida */
  margin: 0 auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Bloque de cabecera (h6 + precio) con altura mínima para alinear */
#pricing .row>[class*="col-"]>div>div:first-child {
  min-height: 180px;
  /* ajusta si necesitas más/menos */
  display: grid;
  place-items: center;
}

/* Botón: quitar sombra y compactar separación con la lista */
#pricing .row>[class*="col-"]>div .pricing-cta {
  box-shadow: none !important;
}

#pricing .row>[class*="col-"]>div>.pt-8.pb-10 {
  padding-top: 14px;
  /* antes 32px */
  padding-bottom: 10px;
  /* antes 40px */
  margin-bottom: 0;
}

/* Contenedor de la lista ocupa el resto para igualar alturas */
#pricing .row>[class*="col-"]>div>div:last-child {
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;
  /* que arranque pegado al botón */
}

/* Lista: menos separación entre elementos y sin márgenes extra */
#pricing .row>[class*="col-"]>div>div:last-child>ul {
  width: 100%;
  margin: 8px 0 0;
  /* pegadito al botón */
  padding: 0;
  list-style: none;
}

#pricing .row>[class*="col-"]>div>div:last-child>ul li {
  margin-bottom: 10px;
  /* antes 12–16px */
}

/* Responsivo */
@media (max-width: 1024px) {
  #pricing .row {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  #pricing .row {
    grid-template-columns: 1fr;
  }

  #pricing .row>[class*="col-"]>div {
    width: min(94%, 420px);
  }
}

/* ===== PRICING: menos separación entre tarjetas ===== */
#pricing .row {
  gap: 16px;
  /* antes: 28px */
}

/* Opcional: ensancha un pelín cada card para rellenar el nuevo gap */
#pricing .row>[class*="col-"]>div {
  width: clamp(260px, 94%, 360px);
  /* antes: 88% */
}

/* En pantallas medianas puedes dejar un gap intermedio */
@media (max-width: 1024px) {
  #pricing .row {
    gap: 18px;
  }
}

@media (max-width: 640px) {
  #pricing .row {
    gap: 14px;
  }

  /* columna única, un poco más compacto */
}

/* ===== PRICING: súper juntas ===== */
#pricing .row {
  gap: 10px;
  /* más cerca (puedes probar 8px o 6px) */
}

#pricing .row>[class*="col-"]>div {
  width: clamp(260px, 97%, 360px);
  /* ensancha cada card para rellenar el gap */
}

/* Ajuste por breakpoint (opcional) */
@media (max-width: 1024px) {
  #pricing .row {
    gap: 12px;
  }
}

@media (max-width: 640px) {
  #pricing .row {
    gap: 10px;
  }

  /* columna única, también más compacto */
}

/* ===== Pricing: 3 columnas muy juntas y fila más angosta ===== */
#pricing .container {
  /* opcional: reduce un poco el padding lateral solo en este bloque */
  padding-inline: clamp(8px, 2vw, 16px);
}

#pricing .row {
  display: grid;
  /* grilla solo aquí */
  grid-template-columns: repeat(3, minmax(290px, 1fr));
  column-gap: 26px;
  /* separación mínima horizontal */
  row-gap: 28px;
  /* vertical (ajústalo si quieres) */

  /* === La clave para verlas MÁS CERCA: limitar la anchura del conjunto === */
  max-width: 1120px;
  /* 3 cards + gaps ≈ bloque compacto */
  margin-inline: auto;
  /* centrado del bloque */
  padding-inline: 0;
  /* sin relleno extra */
}

/* Elimina gutters del framework SOLO en esta fila */
#pricing .row>[class*="col-"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* La tarjeta ocupa toda su celda */
#pricing .row>[class*="col-"]>div {
  width: 100%;
}

/* Responsivo: 2 columnas y 1 columna, manteniendo poco gap */
@media (max-width: 1024px) {
  #pricing .row {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    max-width: 760px;
    /* 2 cards juntas */
    column-gap: 10px;
  }
}

@media (max-width: 640px) {
  #pricing .row {
    grid-template-columns: 1fr;
    max-width: 520px;
    /* columna única centrada */
    column-gap: 0;
  }
}

/* Sube 12px la tarjeta del medio (Precio 2) */
#pricing .row>[class*="col-"]:nth-child(2) {
  transform: translateY(-12px);
}

/* En pantallas chicas no lo subas para evitar saltos visuales */
@media (max-width: 1024px) {
  #pricing .row>[class*="col-"]:nth-child(2) {
    transform: none;
  }
}

/* Pricing: sombra y bordes más redondeados en cada tarjeta */
#pricing .row>[class*="col-"]>div {
  border-radius: 32px;
  /* más redondeado */
  box-shadow: 0px 4px 4px 0px #00000040 !important;
  /* sombra pedida */
}

/* (Opcional) mantener misma sombra también en hover */
#pricing .row>[class*="col-"]>div:hover {
  box-shadow: 0px 4px 4px 0px #00000040 !important;
}


/* CTA inferior */
#pricing .pricing-footer-cta {
  margin-top: 28px;
  display: flex;
  justify-content: center;
}

/* Botón */
#pricing .pricing-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  min-height: 56px;
  /* altura estable */
  border-radius: 9999px;
  background: #fff;
  /* base: blanco */
  color: #E20512;
  /* texto rojo */
  border: 2px solid #E20512;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(226, 5, 18, .18);

  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-size: 18px;
  /* un poco más grande */
  line-height: 1.22;
  letter-spacing: 0;
  text-transform: uppercase;
  /* TODO EN MAYÚSCULAS */
  font-variant: small-caps;
  /* por si lo necesitas */

  transition: background-color .2s ease, color .2s ease,
    box-shadow .2s ease, transform .2s ease;
}

/* Icono desde el HTML */
#pricing .pricing-more__icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  object-fit: contain;
  transition: filter .2s ease, transform .2s ease, opacity .2s ease;
}

/* Hover: invertir colores y poner el icono en blanco */
#pricing .pricing-more:hover,
#pricing .pricing-more:focus-visible {
  background: #E20512;
  /* rojo */
  color: #fff;
  /* texto blanco */
  box-shadow: 0 18px 36px rgba(226, 5, 18, .25);
  transform: translateY(-1px);
  outline: none;
}

/* Truco para volver blanco el PNG del icono */
#pricing .pricing-more:hover .pricing-more__icon,
#pricing .pricing-more:focus-visible .pricing-more__icon {
  filter: brightness(0) invert(1);
  /* blanco */
}

/* Móvil un poco más compacto */
@media (max-width:480px) {
  #pricing .pricing-more {
    min-height: 52px;
    padding: 12px 22px;
    font-size: 16px;
  }
}

/* Más espacio antes del CTA inferior del pricing */
#pricing .pricing-footer-cta {
  margin-top: 70px;
  /* antes: 28px */
}

/* En pantallas grandes, aún más aire */
@media (min-width: 1024px) {
  #pricing .pricing-footer-cta {
    margin-top: 80px;
  }
}

/* (Opcional) un poco más de espacio al final de la sección */
#pricing.section-area {
  padding-bottom: 40px;
  /* sube/baja si lo necesitas */
}


/* ===== OVERRIDE MÓVIL: cards de pricing a ~350px ===== */
@media (max-width: 640px) {

  /* 1 sola columna, centrada */
  #pricing .row {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 12px;
    /* compacto */
  }

  /* Cada tarjeta: ancho visual reducido y centrado */
  #pricing .row>[class*="col-"]>div {
    width: min(94%, 350px) !important;
    /* ← tope 350px en móvil */
    height: min(94%, 700px) !important;
    /* ← tope 350px en móvil */

    max-width: 350px !important;
    margin-inline: auto !important;
  }

  /* (Opcional) un pelín menos de padding lateral en la sección */
  #pricing .container {
    padding-inline: 12px;
  }
}

/* Fin del pricing section */




/* Inicio del Team section */

/*Texto Inicial*/
/* ===== Docentes: tipografías ===== */

#team .teachers-title {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 40px;
  /* 40px */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  margin: 0 0 12px 0;
}

#team .teachers-lead {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 400;
  /* Medium */
  font-style: normal;
  font-size: 15px;
  /* 15px */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  margin: 0 auto;
  /* ya traes el max-width en el HTML */
}

/* Opcional: ajuste en móvil */
@media (max-width: 640px) {
  #team .teachers-title {
    font-size: 32px;
  }
}

/* ===== Docentes: tipografías (hasta aca OK)===== */


/* ===== Team: card y tipografías (scope #team) ===== */

/* Card con sombra pedida */
#team .teacher-card {
  padding: 48px 20px 40px;
  border-radius: 40px;
  background: #fff;
  box-shadow: 0px 4px 4px 0px #00000040;
  transition: transform .2s ease, box-shadow .2s ease;
}

#team .teacher-card:hover {
  transform: translateY(-2px);
}

/* Nombre como botón/link */
#team .teacher-name-btn {
  display: inline-block;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: normal;
  font-size: 18px;
  /* 15px */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  text-transform: capitalize;
  color: #E20512;
  background: #ffffff;
  /*padding: 10px 16px;*/
  border-radius: 999px;
  text-decoration: none;
  /* margin: 6px 0 10px 0;*/
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}


/* Línea “Sistemas administrativos…” */
#team .teacher-role {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* Italic + Bold */
  font-style: italic;
  font-size: 11px;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  margin: 4px auto 10px;
}

/* Descripción adicional */
#team .teacher-desc {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  /* SemiBold */
  font-style: italic;
  font-size: 13px;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
  color: #595959;
  max-width: 360px;
  margin: 0 auto 16px;
}

/* Solo LinkedIn (imagen local) */
#team .teacher-social {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

#team .teacher-linkedin-icon {
  width: 34px;
  height: 34px;
  display: block;
  transition: filter .2s ease, transform .2s ease;
}

/* filtro aproximado al rojo #E20512 */
#team .teacher-social a:hover .teacher-linkedin-icon,
#team .teacher-social a:focus-visible .teacher-linkedin-icon {
  filter: invert(15%) sepia(92%) saturate(7478%) hue-rotate(352deg) brightness(93%) contrast(105%);
  transform: translateY(-1px);
  outline: none;
}

/* Ajuste en móviles */
@media (max-width: 640px) {
  #team .teacher-card {
    padding: 40px 18px 36px;
  }

  #team .teacher-name-btn {
    font-size: 14px;
    padding: 9px 14px;
  }

  #team .teacher-desc {
    max-width: 90%;
  }
}


/* Botón/ico LinkedIn */
#team .li-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 9999px;
  text-decoration: none;
}

#team .li-icon i {
  font-size: 28px;
  line-height: 1;
  color: #9aa1a7;
  /* gris base */
  transition: none;
  /* sin animación */
}

/* Hover/Focus: rojo inmediato */
#team .li-icon:hover i,
#team .li-icon:focus-visible i {
  color: #E20512;
}

/* Accesibilidad visual en teclado (opcional) */
#team .li-icon:focus-visible {
  outline: 2px solid #E20512;
  outline-offset: 3px;
}

/* LinkedIn circular badge (como la imagen: gris con "in" blanco) */
#team .li-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  /* diámetro del círculo */
  height: 48px;
  border-radius: 9999px;
  /* círculo perfecto */
  background: #BDBDBD;
  /* gris del círculo */
  color: #ffffff;
  /* "in" en blanco */
  text-decoration: none;
  line-height: 1;
}

/* tamaño del ícono dentro del círculo */
#team .li-badge i {
  font-size: 24px;
}

/* (opcional) Hover inmediato a rojo, sin transición */
#team .li-badge:hover,
#team .li-badge:focus-visible {
  background: #E20512;
  /* rojo */
  color: #ffffff;
  outline: none;
}


/* Tamaño por defecto (puedes ajustarlo aquí) */
#team .li-badge {
  --li-size: 36px;
  /* diámetro del círculo */
  --li-icon: 18px;
  /* tamaño del icono */

  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--li-size);
  height: var(--li-size);
  border-radius: 9999px;
  background: #BDBDBD;
  color: #fff;
  text-decoration: none;
  line-height: 1;
}

#team .li-badge i {
  font-size: var(--li-icon);
}

#team .li-badge:hover,
#team .li-badge:focus-visible {
  background: #E20512;
  color: #fff;
  outline: none;
}


/* ===== TEAM: rejilla bonita, cartas iguales ===== */
#team .row {
  /* Reemplazamos cualquier .row heredado SOLO aquí */
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  /* centradas */
  gap: 22px;
  /* separación entre cards */
  max-width: 1100px;
  /* ancho de la fila */
  margin: 0 auto;
  padding-inline: 8px;
}

/* Cada “col” de team ocupa exactamente 300px */
#team .row>[class*="col-"] {
  flex: 0 0 300px;
  /* base fija 300px */
  max-width: 300px;
  display: flex;
  /* para igualar alturas con el figure */
}

/* La card ocupa toda la altura y se ve limpia */
#team .row>[class*="col-"]>figure {
  width: 100%;
  min-height: 480px;
  /* ALTURA común de todas (ajústala si quieres) */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  border-radius: 18px;
  box-shadow: 0 4px 4px #00000040;
  background: #fff;
  /* asegúrate de que no herede otro fondo */
  margin: 0;
  /* resetea márgenes de <figure> */
}

/* Imagen circular */
#team .row>[class*="col-"]>figure .h-\[120px\].w-\[120px\] {
  /* ya la traes en 120x120; centramos y damos aire */
  margin-bottom: 16px;
}

/* Tipos (por si no los pusiste aún) */
#team .teacher-name {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.22;
  text-transform: capitalize;
  color: #E20512;
  /* rojo */
  text-decoration: none;
  background: transparent;
  /* “botón” sin fondo */
  padding: 6px 10px;
  border-radius: 999px;
  /* por si quieres darle pill sin fondo */
}

#team .teacher-role {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  font-style: italic;
  font-size: 10px;
  line-height: 1.22;
  color: #000;
  margin: 2px 0 2px 0;
  text-align: center;
}

#team .teacher-bio {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  font-style: italic;
  font-size: 10px;
  line-height: 1.22;
  color: #595959;
  max-width: 260px;
  /* para que no se haga muy ancha la línea */
  text-align: center;
}

/* LinkedIn circular (gris → rojo en hover, sin transición) */
#team .socials {
  margin-top: auto;
  /* empuja el icono al fondo para igualar alturas */
  display: flex;
  justify-content: center;
  gap: 10px;
}

#team .socials a {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  color: #B3B3B3;
  /* gris */
  background: transparent;
  text-decoration: none;
}

#team .socials a:hover {
  color: #E20512;
}

/* rojo inmediato */
#team .socials a i {
  font-size: 22px;
}

/* ===== Responsive ===== */
@media (max-width: 960px) {
  #team .row {
    max-width: 900px;
    gap: 20px;
  }
}

@media (max-width: 680px) {
  #team .row {
    max-width: 620px;
    gap: 18px;
  }
}

@media (max-width: 360px) {

  /* En pantallas ultra pequeñas deja que la card se adapte al ancho */
  #team .row>[class*="col-"] {
    flex: 1 1 100%;
    max-width: 100%;
  }

  #team .row>[class*="col-"]>figure {
    min-height: 460px;
    /* un pelín más compacto si hace falta */
  }
}

#team .row>[class*="col-"]>figure {
  min-height: 200px;
  /* ← esto es lo que la hace alta */
}

/* === TEAM: fondo de la sección === */
#team {
  background: #f3f6f8;
}

/* Cols del team como contenedores flex para igualar alturas */
#team .row>[class*="col-"] {
  display: flex;
  justify-content: center;
  /* centra la card si limitamos ancho */
}

/* Card: misma altura para todas y layout vertical */
#team .row>[class*="col-"]>figure {
  width: 100%;
  max-width: 300px;
  /* ancho deseado por card */
  min-height: 200px;
  /* ← tu altura nueva */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  border-radius: 16px;
  /* mantiene bordes bonitos */
  /* si quieres sombra aquí, descomenta:
  box-shadow:0px 4px 4px 0px #00000040;
  */
}

/* Avatar un poco más compacto para ayudar a la altura */
#team .row>[class*="col-"]>figure .h-\[120px\].w-\[120px\] {
  width: 100px;
  height: 100px;
  margin-bottom: 8px;
}

/* Contenido: más junto y preparado para empujar el social al fondo */
#team figure figcaption {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  /* separaciones más cortas entre textos */
  width: 100%;
  flex: 1;
  /* ocupa el alto restante */
}

/* Título (h4) y subtítulo (p) más juntos */
#team figure h4 {
  margin: 0 0 4px 0;
}

#team figure p {
  margin: 0 0 6px 0;
}

/* El bloque de íconos sociales al fondo SIEMPRE */
#team figure figcaption>.flex.items-center.justify-center.gap-5 {
  margin-top: auto;
  /* empuja hacia el fondo de la card */
  padding-top: 8px;
}

/* Responsive: en pantallas chicas deja que la altura fluya más natural */
@media (max-width: 640px) {
  #team .row>[class*="col-"]>figure {
    min-height: auto;
    /* permite crecer por contenido */
  }
}

/* === TEAM: layout, compactado y alturas iguales === */
#team {
  background: #f3f6f8;
  /* ya lo tenías, lo dejamos aquí por si faltaba */
}

/* Las columnas del team se comportan como contenedores para centrar la card */
#team .row>[class*="col-"] {
  display: flex;
  justify-content: center;
}

/* Card (figure): ancho fijo, altura mínima igual para todas, layout en columna */
#team .row>[class*="col-"]>figure {
  width: 100%;
  max-width: 300px;
  /* ← ancho deseado */
  min-height: 240px;
  /* ← ajusta si tu "row 3" es más alto (ej. 260px) */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;

  /* Compactar padding para acercar el contenido */
  padding: 16px 18px !important;
  /* override a pt-12 / pb-10 del HTML */
  row-gap: 8px;

  /* sombra opcional (si la necesitas constante aquí) */
  /* box-shadow:0px 4px 4px 0px #00000040; */
}

/* Avatar más compacto y con menos separación */
#team .row>[class*="col-"]>figure .h-\[120px\].w-\[120px\] {
  width: 100px;
  height: 100px;
  margin-bottom: 6px;
}

/* Figcaption ocupa el alto restante para poder anclar el social abajo */
#team figure figcaption {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
  /* ← llena el alto libre */
  gap: 1px;
  /* ← textos más juntitos */
  margin-top: 2px;
}

/* Título y “cargo/resumen” más pegados */
#team figure h4 {
  margin: 0;
  /* sin margen extra */
  line-height: 1.22;
}

#team figure p {
  margin: 0;
  /* sin margen extra */
  line-height: 1.22;
}

/* === Alturas consistentes entre títulos y descripciones === */
/* Reserva altura para hasta 2 líneas de nombre: */
#team figure h4 {
  min-height: calc(1.22em * 2);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Reserva altura para hasta 2 líneas de cargo corto: */
#team figure p {
  min-height: calc(1.22em * 2);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* El bloque de ícono social SIEMPRE al fondo */
#team figure figcaption>.flex.items-center.justify-center.gap-5 {
  margin-top: auto;
  /* pega abajo */
  padding-top: 6px;
}

/* Responsive: permite crecer si el contenido necesita más alto en móvil */
@media (max-width:640px) {
  #team .row>[class*="col-"]>figure {
    min-height: auto;
  }
}



/* --- TEAM: igualar alturas y empujar LinkedIn al fondo --- */

/* Las columnas del team estiran su contenido a la misma altura */
#team .row {
  align-items: stretch;
}

/* Cada columna actúa como contenedor flex vertical */
#team .row>[class*="col-"] {
  display: flex;
}

/* La card (figure) ocupa toda la altura disponible y apila vertical */
#team .row>[class*="col-"]>figure {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* El figcaption también es columna y se estira */
#team figure figcaption {
  display: flex;
  flex-direction: column;
  flex: 1;
  /* rellena el espacio por debajo de la foto */
}

/* El contenedor del LinkedIn (el último div dentro de figcaption) va al fondo */
#team figure figcaption>div:last-child {
  margin-top: auto;
  /* empuja hacia abajo */
  padding-top: 1px;
  /* un pelín de aire sobre el icono */
}

/* Si quieres un “colchón” inferior constante dentro de la card */
#team .row>[class*="col-"]>figure {
  padding-bottom: 18px;
  /* ajusta si lo ves muy pegado */
}



/* Fin del Team section */







/* testimonials section */

/* Fondo del section (opcional, si lo quieres blanco) */
#testimonials {
  background: #ffffff;
}

/* Solo el encabezado del testimonials */
#testimonials .testimonials-head h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 40px;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
  text-transform: capitalize;
  color: #000000;
}

#testimonials .testimonials-head p {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  font-size: 15px;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
  color: #000000;
}

#testimonials .testimonials-head p span {
  font-weight: 700;
  /* Bold */
  font-size: 15px;
  color: #E20512;
}


/*Texto slides*/
/* ===== Testimonios: aplicar a TODOS los slides (sin cambiar font-size) ===== */

/* Primer párrafo dentro de la tarjeta (el testimonio) */
#testimonials .swiper-slide>div>p {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  line-height: 1.22;
  letter-spacing: 0;
  color: #5D5D5D;
  font-size: 12px;
}

/* Nombre del alumno */
#testimonials .swiper-slide figcaption h3 {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* Bold */
  font-style: normal;
  line-height: 1.22;
  letter-spacing: 0;
  color: #E20512;
}

/* Cargo debajo del nombre */
#testimonials .swiper-slide figcaption p {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 500;
  /* Medium */
  font-style: normal;
  line-height: 1.22;
  letter-spacing: 0;
  color: #595959;
}

/* === TESTIMONIALS: cards iguales, más juntos, sombra y borde redondeado === */

/* Centrar y limitar ancho del carrusel */
#testimonials .testimonial-carousel {
  max-width: 1200px;
  margin-inline: auto;
}

/* Juntar más los slides (usa gap del flex de Swiper) */
#testimonials .swiper-wrapper {
  gap: 14px;
  /* <- ajusta si los quieres aún más juntos */
}

/* Igualar el ancho de cada slide (desktop) */
#testimonials .swiper-slide {
  width: 360px !important;
  /* todos iguales */
}

/* La tarjeta interna del slide */
#testimonials .swiper-slide>div {
  border-radius: 32px !important;
  /* “border de 32px” = borde redondeado */
  box-shadow: 0px 4px 4px 0px #00000040 !important;
  background: #ffffff;
  /* para que la sombra se note */
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px 28px;
  /* un poco más de aire */
}

/* Texto del testimonio y el figure bien alineados */
#testimonials .swiper-slide>div>p {
  margin-bottom: 18px;
  /* separa del figure */
}

#testimonials figure {
  display: flex;
  align-items: center;
  gap: 14px;
}

#testimonials figure .h\[50px\],
#testimonials figure .w\[50px\] {
  height: 50px !important;
  width: 50px !important;
}

/* Opcional: un contorno muy sutil como en el mock */
#testimonials .swiper-slide>div {
  border: 1px solid rgba(0, 0, 0, 0.06);
}

/* Responsivo: reduce el ancho en pantallas medianas/pequeñas */
@media (max-width: 1024px) {
  #testimonials .swiper-slide {
    width: 320px !important;
  }
}

@media (max-width: 640px) {
  #testimonials .swiper-wrapper {
    gap: 10px;
  }

  #testimonials .swiper-slide {
    width: 280px !important;
  }

  #testimonials .swiper-slide>div {
    padding: 20px;
  }
}

/* === Ajustes finos: mismo tamaño, alineación perfecta, sin saltos === */

#testimonials .testimonial-carousel {
  --testi-card-w: 343px;
  /* ancho fijo de cada slide (desktop) */
  --testi-card-h: 180px;
  /* ALTURA UNIFORME de cada card (ajústala si deseas) */
  max-width: 1200px;
  margin-inline: auto;
}

#testimonials .swiper-wrapper {
  gap: 14px;
  /* slides más juntos */
  align-items: stretch;
  /* estira los slides a la misma altura */
}

#testimonials .swiper-slide {
  width: var(--testi-card-w) !important;
  display: flex;
  /* permite estirar la tarjeta interna */
}

#testimonials .swiper-slide>div {
  border-radius: 32px !important;
  box-shadow: 0px 4px 4px 0px #00000040 !important;
  border: 1px solid rgba(0, 0, 0, 0.06);
  background: #fff;

  /* === Alto uniforme y contenido ordenado === */
  height: var(--testi-card-h);
  /* todas iguales */
  display: flex;
  flex-direction: column;
  padding: 20px 24px;
}

/* Texto del testimonio arriba y figure abajo */
#testimonials .swiper-slide>div>p {
  margin-bottom: 16px;
}

#testimonials .swiper-slide>div {
  /* empuja el figure al fondo si el texto es corto */
}

#testimonials .swiper-slide>div figure {
  margin-top: auto;
  /* ancla el figure abajo */
  display: flex;
  align-items: center;
  gap: 14px;
}

/* Avatar consistente */
#testimonials figure>div {
  height: 50px !important;
  width: 50px !important;
  overflow: hidden;
}

#testimonials figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 9999px;
}

/* Evita “brincos” por sombras al borde del carrusel */
#testimonials .swiper {
  overflow: visible;
  /* deja respirar la sombra en los lados */
}

/* Responsivo */
@media (max-width: 1200px) {
  #testimonials .testimonial-carousel {
    --testi-card-w: 340px;
    --testi-card-h: 200px;
  }
}

@media (max-width: 1024px) {
  #testimonials .testimonial-carousel {
    --testi-card-w: 320px;
    --testi-card-h: 200px;
  }
}

@media (max-width: 640px) {
  #testimonials .swiper-wrapper {
    gap: 10px;
  }

  #testimonials .testimonial-carousel {
    --testi-card-w: 280px;
    --testi-card-h: 200px;
  }

  #testimonials .swiper-slide>div {
    padding: 18px;
  }
}


/* Mantén tu gap; Swiper ya no añade espacio (spaceBetween:0) */
#testimonials .swiper-wrapper {
  gap: 25px;
  /* lo que ya usas para separar cards */
  align-items: stretch;
}

/* Evita que se vea el cuarto slide por los lados */
#testimonials .swiper {
  overflow: hidden;
  /* antes visible => se asomaba el 4º */
}

/* Compactar un poco texto/figure SIN tocar height ni width del slide */
#testimonials .swiper-slide>div {
  display: grid;
  grid-template-rows: 1fr auto;
  /* texto arriba, figure abajo */
  row-gap: 8px;
  /* menos separación */
  /* tus demás estilos permanecen (border-radius, sombra, etc.) */
}

#testimonials .swiper-slide>div>p {
  margin: 0;
  line-height: 1.35;
}

#testimonials .swiper-slide figure {
  margin: 0;
  gap: 12px;
  align-items: center;
}


/* === Nav del carrusel (testimonials) === */
#testimonials .swiper-button-prev,
#testimonials .swiper-button-next {
  position: static !important;
  /* que no queden absolutos */
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0px 4px 4px 0px #00000040;
  /* tu sombra */
  display: grid;
  place-items: center;
  cursor: pointer;
  user-select: none;
  transition: background .2s ease, box-shadow .2s ease, transform .15s ease;
  z-index: 2;
}

/* Oculta los íconos por defecto de Swiper */
#testimonials .swiper-button-prev::after,
#testimonials .swiper-button-next::after {
  content: none !important;
}

/* Iconos (lineicons) */
#testimonials .swiper-button-prev i,
#testimonials .swiper-button-next i {
  font-size: 20px;
  color: #B2B2B2;
  /* color base del ícono */
  transition: color .2s ease;
  line-height: 1;
}

/* Hover: fondo rojo y icono blanco */
#testimonials .swiper-button-prev:hover,
#testimonials .swiper-button-next:hover {
  background: #E20512;
  transform: translateY(-1px);
  box-shadow: 0px 6px 10px 0px #00000040;
}

#testimonials .swiper-button-prev:hover i,
#testimonials .swiper-button-next:hover i {
  color: #ffffff;
}

/* Estado deshabilitado */
#testimonials .swiper-button-disabled {
  background: #F3F3F3 !important;
  box-shadow: none !important;
  cursor: default !important;
  transform: none !important;
  opacity: .8;
}

#testimonials .swiper-button-disabled i {
  color: #CFCFCF !important;
}

/* Alineación del contenedor de botones (tu wrapper) */
#testimonials .mt-\[60px\].flex.items-center.justify-center.gap-1 {
  gap: 12px;
  /* separa un poco más como en el mock */
}

/* Botones más largos */
#testimonials .swiper-button-prev,
#testimonials .swiper-button-next {
  width: 64px;
  /* antes 46px */
  height: 48px;
  /* antes 46px */
  border-radius: 16px;
  /* un pelín más redondo */
}

/* Icono un poco más “grande” */
#testimonials .swiper-button-prev i,
#testimonials .swiper-button-next i {
  font-size: 22px;
  /* antes 20px */
  /* Truco para que se vea un pelín más “grueso” en icon-font */
  text-shadow: 0 0 0.6px currentColor, 0 0 0.6px currentColor;
}

/* ===================== */
/*  R E S P O N S I V E  */
/* ===================== */

/* <= 1280px: ajusta ligeramente el ancho de las cards */
@media (max-width: 1280px) {
  #testimonials .swiper-slide {
    width: 340px !important;
  }

  #testimonials .swiper-wrapper {
    gap: 20px;
  }
}

/* <= 1024px (tablet): 2 visibles cómodas */
@media (max-width: 1024px) {
  #testimonials .testimonials-head h2 {
    font-size: 34px;
  }

  #testimonials .testimonials-head p {
    font-size: 14px;
  }

  #testimonials .testimonial-carousel {
    max-width: 100%;
    padding-inline: 16px;
  }

  #testimonials .swiper-wrapper {
    gap: 16px;
  }

  #testimonials .swiper-slide {
    width: 320px !important;
  }

  #testimonials .swiper-slide>div {
    padding: 18px 20px;
    row-gap: 8px;
  }

  #testimonials figure>div {
    width: 48px !important;
    height: 48px !important;
  }

  /* Botones un poco más compactos */
  #testimonials .swiper-button-prev,
  #testimonials .swiper-button-next {
    width: 58px;
    height: 46px;
    border-radius: 14px;
  }

  #testimonials .swiper-button-prev i,
  #testimonials .swiper-button-next i {
    font-size: 20px;
  }
}

/* <= 768px (phablet): 1–2 visibles según viewport */
@media (max-width: 768px) {
  #testimonials .testimonials-head h2 {
    font-size: 30px;
  }

  #testimonials .swiper-wrapper {
    gap: 12px;
  }

  #testimonials .swiper-slide {
    width: 280px !important;
  }

  #testimonials .swiper-slide>div {
    padding: 18px;
    row-gap: 8px;
  }

  #testimonials figure {
    gap: 10px;
  }

  #testimonials figure>div {
    width: 46px !important;
    height: 46px !important;
  }

  /* Menos espacio arriba de los botones */
  #testimonials .mt-\[60px\] {
    margin-top: 34px !important;
  }
}

/* <= 560px (móvil): 1 visible, todo más compacto */
@media (max-width: 560px) {
  #testimonials .testimonials-head h2 {
    font-size: 28px;
  }

  #testimonials .testimonials-head p {
    font-size: 13.5px;
  }

  #testimonials .swiper-slide {
    width: 260px !important;
  }

  #testimonials .swiper-slide>div {
    padding: 16px;
    row-gap: 6px;
  }

  #testimonials .swiper-button-prev,
  #testimonials .swiper-button-next {
    width: 54px;
    height: 44px;
    border-radius: 12px;
  }
}

/* <= 420px (móvil chico) */
@media (max-width: 420px) {
  #testimonials .testimonials-head h2 {
    font-size: 24px;
  }

  #testimonials .swiper-wrapper {
    gap: 10px;
  }

  #testimonials .swiper-slide {
    width: 240px !important;
  }

  #testimonials figure>div {
    width: 42px !important;
    height: 42px !important;
  }
}

/* <= 360px (muy chico) */
@media (max-width: 360px) {
  #testimonials .testimonials-head p {
    font-size: 13px;
  }

  #testimonials .swiper-slide {
    width: 228px !important;
  }
}

/* MÓVIL: 1 slide por vista, ancho completo, sin gap ni “peek” */
@media (max-width: 640px) {

  /* El carrusel ocupa todo el ancho del contenedor */
  #testimonials .testimonial-carousel {
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 16px;
    /* respiración lateral */
  }

  /* Oculta cualquier asomo del siguiente slide */
  #testimonials .swiper {
    overflow: hidden !important;
  }

  /* Un solo slide visible: ocupa 100% del carrusel */
  #testimonials .swiper-wrapper {
    gap: 0 !important;
  }

  #testimonials .swiper-slide {
    width: 100% !important;
  }

  /* Tarjeta más compacta en móvil */
  #testimonials .swiper-slide>div {
    padding: 16px !important;
    row-gap: 6px !important;
    min-height: 170px;
    /* ajusta si quieres menos/mas alto */
  }

  /* Botones un poquito más chicos para móvil */
  #testimonials .swiper-button-prev,
  #testimonials .swiper-button-next {
    width: 54px;
    height: 44px;
    border-radius: 12px;
  }
}



/* ===== TESTIMONIALS @1200px exacto: card de 343px ===== */
@media (min-width: 1190px) and (max-width: 1210px) {

  /* Mantén el carrusel centrado y dentro de 1200px */
  #testimonials .testimonial-carousel {
    max-width: 1200px !important;
    --testi-card-w: 343px;
    /* ancho fijo solicitado */
    --testi-card-h: 200px;
    /* puedes ajustar si lo deseas */
    margin-inline: auto;
  }

  /* 3 cards visibles cómodas + gaps centrados (sin “peek” del 4º) */
  #testimonials .swiper-wrapper {
    gap: 24px !important;
    /* 2 gaps de 24 = 48px */
    align-items: stretch;
  }

  /* Usa la variable como ancho del slide */
  #testimonials .swiper-slide {
    width: var(--testi-card-w) !important;
    /* 3 * 343 = 1029px */
  }

  /* Tarjeta interna consistente */
  #testimonials .swiper-slide>div {
    height: var(--testi-card-h);
    border-radius: 32px !important;
    box-shadow: 0px 4px 4px 0px #00000040 !important;
    border: 1px solid rgba(0, 0, 0, .06);
    display: grid;
    grid-template-rows: 1fr auto;
    row-gap: 8px;
    padding: 20px 24px;
  }

  /* Evita asomo lateral del 4º slide a esta anchura */
  #testimonials .swiper {
    overflow: hidden !important;
  }
}



/* ============================
   TESTIMONIALS — Responsive fix
   Compactar cards en tablet/móvil
   ============================ */

/* <= 1024px (tablets): altura automática, sin empujar el figure al fondo */
@media (max-width: 1024px) {

  /* La tarjeta deja de forzarse a una altura fija */
  #testimonials .swiper-slide>div {
    height: auto !important;
    /* antes: var(--testi-card-h) */
    min-height: 140px;
    /* lo justo para contenido corto */
    padding-block: 16px;
    /* un pelín más compacto */
  }

  /* Elimina el "salto" grande entre texto y perfil */
  #testimonials .swiper-slide>div figure {
    margin-top: 0 !important;
    /* antes: auto (empujaba abajo y creaba vacío) */
  }

  /* Ajuste fino del texto */
  #testimonials .swiper-slide>div>p {
    margin-bottom: 10px;
    /* menos separación con el figure */
    line-height: 1.32;
  }
}

/* <= 640px (móvil): 1 card por vista, sin huecos extras */
@media (max-width: 640px) {
  #testimonials .swiper-slide {
    width: 100% !important;
  }

  /* Quita cualquier mínimo de altura heredado */
  #testimonials .swiper-slide>div {
    min-height: 0 !important;
    /* override de min-height:170px que pusiste para mobile */
    padding: 14px 16px;
    /* aún más compacto en móvil */
  }

  #testimonials .swiper-slide>div>p {
    margin-bottom: 8px;
    line-height: 1.3;
  }
}

















/* Contacto Inicio*/


/* Centrar verticalmente las dos columnas de la sección contact */
#contact .contact-row {
  align-items: center;
  /* el .row ya es flex en tu grid */
}

/* Tarjetas de la izquierda */
#contact .contact-card {
  border-radius: 16px;
  box-shadow: 0px 4px 4px 0px #00000040;
  background: #fff;
  /* asegura contraste en modo claro */

}

/* Títulos en rojo corporativo */
#contact .contact-title {
  color: #E20512;
  font-weight: 700;

}

/* Badge rojo con el icono (imagen en HTML) */
#contact .icon-badge {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #E20512;
  overflow: hidden;
  /* por si el PNG es más grande */
}

#contact .icon-badge img {
  width: 26px;
  height: 26px;
  /* tamaño del pictograma */
  object-fit: contain;
  display: block;
}

/* Ajustes responsive para que quede igual de limpio en móvil */
@media (max-width: 768px) {
  #contact .contact-row {
    align-items: stretch;
  }

  #contact .icon-badge {
    border-radius: 10px;
  }

  #contact .icon-badge img {
    width: 24px;
    height: 24px;
  }

  #contact .contact-title {
    font-size: 1.125rem;
  }

  /* ~18px */
}

/* Párrafos dentro de las tarjetas de contacto (columna izquierda) */
#contact .contact-card p {
  color: #000000;
  border: 1px solid #FFFFFF17;
  line-height: 1;
  /* más compacto */
}

/* tODO OK aca*/






/* ===== Contact Form (columna derecha) ===== */
#contact .contact-form-card,
#contact .contact-form,
#contact .contact-form * {
  font-family: "Montserrat", sans-serif;
}

/* Badge “Contáctanos” */
#contact .cf-badge {
  display: inline-block;
  padding: 6px 14px;
  color: #E20512;
  font-weight: 700;
  font-size: 17.5px;
  line-height: 1;
  margin-bottom: 10px;
}

/* Título principal */
#contact .cf-title {
  font-weight: 700;
}

/* Inputs / textarea */
#contact .cf-input {
  width: 100%;
  padding: 12px 20px;
  font-size: 16px;
  line-height: 1.3;
  color: #000;
  /* texto negro */
  background: #fff;
  border: 1px solid #FFFFFF;
  /* borde solicitado */
  border-radius: 12px;
  box-shadow: 0 6px 6px rgba(0, 0, 0, 0.12);
  /* similar al mock */
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

#contact .cf-input:focus {
  border-color: #E20512;
  box-shadow: 0 8px 10px rgba(0, 0, 0, 0.18);
}

/* Placeholder con weight 500 */
#contact .cf-input::placeholder {
  color: #5A5A5A;
  font-weight: 500;
}

#contact .cf-textarea {
  resize: vertical;
}

/* Checkbox custom */
#contact .cf-check {
  display: flex;
  align-items: center;
  gap: 12px;
  user-select: none;
}

#contact .cf-check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#contact .cf-checkbox {
  width: 22px;
  height: 22px;
  border: 1px solid #FFFFFF;
  /* borde blanco */
  border-radius: 6px;
  background: #fff;
  display: inline-block;
  position: relative;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
  flex: 0 0 22px;
}

#contact .cf-check input:checked+.cf-checkbox {
  background: #E20512;
  border-color: #E20512;
}

#contact .cf-check input:checked+.cf-checkbox::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 12px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

#contact .cf-check-label {
  color: #000;
  font-size: 15px;
}

/* Botón */
#contact .cf-btn {
  display: inline-block;
  padding: 12px 24px;
  border-radius: 10px;
  background: #E20512;
  /* rojo base */
  color: #fff;
  font-weight: 600;
  font-size: 16px;
  border: 1px solid #FFFFFF;
  /* borde solicitado */
  transition: all .2s ease;
}

#contact .cf-btn:hover,
#contact .cf-btn:focus {
  background: #fff;
  /* invertido */
  color: #E20512;
  border-color: #E20512;
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.18);
}

/* Responsive fino */
@media (max-width: 640px) {
  #contact .cf-input {
    font-size: 15px;
    padding: 12px 16px;
  }

  #contact .cf-btn {
    width: 100%;
  }
}

/* Color de texto por defecto en toda la tarjeta (negro) */
#contact .contact-form-card {
  color: #000000;
}

/* “Contáctanos” mantiene fondo rojo y texto blanco */
#contact .form-kicker {
  background: #E20512;
  color: #ffffff;
  font-weight: 700;
}

/* h2 y párrafo del encabezado en negro */
#contact .form-title {
  font-weight: 700;
  color: #000000;
}

#contact .form-sub {
  color: #000000;
}

/* Inputs / Textarea: texto negro (ya lo tienes), placeholders weight 500 */
#contact .cf-input,
#contact .cf-textarea {
  color: #000000;
}

#contact .cf-input::placeholder,
#contact .cf-textarea::placeholder {
  font-weight: 500;
}

/* Checkbox centrado horizontalmente */
#contact .cf-check {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: left;
  /* el texto sigue alineado a la izquierda pero centrado en bloque */
}

/* Texto del checkbox en negro */
#contact .cf-check-label {
  color: #000000;
}

/* Links dentro del texto del checkbox */
#contact .cf-link {
  color: #E20512;
  font-weight: 600;
  text-decoration: underline;
}

#contact .cf-link:hover {
  text-decoration: none;
}

/* Si el checkbox se ve demasiado pegado, puedes dar un respiro en móvil */
@media (max-width: 640px) {
  #contact .cf-check {
    padding-inline: 8px;
  }
}

/* ===== Checkbox: clickable y centrado ===== */
#contact .cf-check {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* centrado como en tu mock */
  gap: 12px;
}

#contact .cf-check input {
  position: absolute;
  left: 0;
  /* se alinea con el inicio del label */
  width: 22px;
  height: 22px;
  opacity: 0;
  /* invisible pero clickeable */
  margin: 0;
  cursor: pointer;
}

#contact .cf-box {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 6px;
  background: #ffffff;
  border: 1px solid #FFFFFF;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
  position: relative;
  pointer-events: none;
  /* el click lo recibe el input */
}

/* foco y estado checked */
#contact .cf-check input:focus+.cf-box {
  box-shadow: 0 0 0 3px rgba(226, 5, 18, .15);
}

#contact .cf-check input:checked+.cf-box {
  background: #E20512;
  border-color: #E20512;
}

#contact .cf-check input:checked+.cf-box::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 6px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: translate(5px, 6px) rotate(45deg);
}

/* Texto del checkbox (negro) y links en rojo */
#contact .cf-check-label {
  color: #000;
  font-weight: 600;

}

#contact .cf-link {
  color: #000;
  text-decoration: none;
  font-weight: 600;



}

#contact .cf-link:hover {
  color: #E20512;
  font-weight: 600;
  text-decoration: underline;
}

/* ===== Placeholders en negro (#000) con weight 500 ===== */
#contact .cf-input::placeholder,
#contact .cf-textarea::placeholder {
  color: #000000;
  opacity: 1;
  /* asegura negro en Safari/Firefox */
  font-weight: 500;
}

/* (Compatibilidad Firefox) */
#contact .cf-input::-moz-placeholder,
#contact .cf-textarea::-moz-placeholder {
  color: #000000;
  opacity: 1;
  font-weight: 500;
}

/* FIX: dibuja el check ✓ en la misma cajita (no chevron) */
#contact .cf-check input:checked+.cf-box {
  background: #E20512;
  border-color: #E20512;
}

/* reemplaza el pseudo-elemento anterior */
#contact .cf-check input:checked+.cf-box::after {
  content: "";
  position: absolute;
  left: 7px;
  /* ajusta 6–8px si fuese necesario */
  top: 3px;
  /* ajusta 2–5px según gusto */
  width: 6px;
  height: 12px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg);
  border-radius: 1px;
  /* esquinas suaves del trazo */
}

/* Borde MUY redondeado en la tarjeta del formulario (derecha) */
#contact .contact-form-card {
  border-radius: 48px !important;
  /* > 32px (ajusta a 40/56 si quieres) */
  overflow: hidden;
  /* evita que algo se salga de las esquinas */
}

/* (Opcional) graduar por tamaño de pantalla */
@media (max-width: 1024px) {
  #contact .contact-form-card {
    border-radius: 44px !important;
  }
}

@media (max-width: 640px) {
  #contact .contact-form-card {
    border-radius: 36px !important;
  }
}

/* Email con look de texto, rojo y subrayado en hover */
#contact .contact-email {
  display: inline-block;
  color: #000000;
  text-decoration: none;
}


/* Título: “Listo para comenzar” */
#contact .cf-title {
  color: #000000;
  border: 1px solid #FFFFFF;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  /* “Bold” se logra con font-weight */
  font-style: normal;
  font-size: 40px;
  line-height: 1;
  /* 100% */
  letter-spacing: 0;
  text-align: center;
  /* (opcional) un poco de aire para que el borde no pegue al texto */
  /* padding: 6px 10px; border-radius: 8px; */
}

/* P del encabezado: tipografía + borde blanco, texto negro */
#contact .contact-form-card .text-center p {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 400;
  /* Medium */
  font-style: normal;
  font-size: 17px;
  line-height: 1;
  /* 100% */
  letter-spacing: 0;
  text-align: center;

  color: #000000;
  /* texto negro */
  border: 1px solid #FFFFFF;

  display: inline-block;
  /* para que el borde abrace el texto */
  /* opcional: padding/border-radius para mejor look */
  /* padding: 6px 10px; border-radius: 8px; */
}


/* Footer */


/* ===== Footer ESAC ===== */
#esac-footer {
  background: #E20512;
  color: #fff;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Columna izquierda */
#esac-footer .footer-logo {
  height: 60px;
  /* ajusta si lo quieres más grande */
  width: auto;
}

#esac-footer .footer-desc {
  max-width: 340px;
  line-height: 1.35;
  margin-bottom: 18px;
}

#esac-footer .footer-social-img {
  height: 34px;
  /* alto de la tira de iconos (una sola imagen) */
  width: auto;
}

/* Columnas de enlaces */
#esac-footer .footer-col {
  margin-top: 8px;
}

#esac-footer .footer-title {
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 18px;
  color: #fff;

}

#esac-footer .footer-title.upper {
  text-transform: uppercase;
  letter-spacing: .4px;
}

#esac-footer .footer-list {
  padding-left: 0px;
  margin: 0;
}

#esac-footer .footer-list li {
  margin-bottom: 8px;
}

#esac-footer .footer-list a {
  color: #fff;
  text-decoration: none;
}

#esac-footer .footer-list a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Horario */
#esac-footer .footer-small {
  margin: 0 0 6px 0;
  font-size: 13px;
  opacity: .95;
}

/* Bottom bar */
#esac-footer .footer-bottom-sep {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, .25);
}

#esac-footer .footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}

#esac-footer .footer-links {
  font-size: 14px;
  margin: 0;
}

#esac-footer .footer-links a {
  color: #fff;
  text-decoration: none;
}

#esac-footer .footer-links a:hover {
  text-decoration: underline;
}

#esac-footer .footer-copy {
  font-size: 14px;
  margin: 0;
  color: #fff;
}

#esac-footer .footer-copy .p .strong {
  font-size: 14px;
  margin: 0;
  color: #fff;
}


/* Layout responsivo */
@media (min-width: 992px) {
  #esac-footer .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}

/* Footer: usar Montserrat en todos los elementos */
/* Montserrat solo en elementos de texto del footer */
#esac-footer h1,
#esac-footer h2,
#esac-footer h3,
#esac-footer h4,
#esac-footer h5,
#esac-footer h6,
#esac-footer p,
#esac-footer a,
#esac-footer li,
#esac-footer small,
#esac-footer strong,
#esac-footer em,
#esac-footer span,
#esac-footer address {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
}


/* Excepción: permitir que Lineicons use su propia fuente */
#esac-footer i.lni,
#esac-footer .lni {
  font-family: "LineIcons" !important;
  /* nombre del font de Lineicons */
  font-style: normal;
  font-weight: normal;
}


/* Permitir que Lineicons use su propia fuente */
#esac-footer i.lni,
#esac-footer .lni {
  font-family: "LineIcons" !important;
  font-style: normal;
  font-weight: normal;
}

/*  RESPONSIVE  */

/* Footer */

/* ===== Footer ESAC ===== */
#esac-footer {
  background: #E20512;
  color: #fff;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Columna izquierda */
#esac-footer .footer-logo {
  height: 60px;
  /* ajusta si lo quieres más grande */
  width: auto;
}

#esac-footer .footer-desc {
  max-width: 340px;
  line-height: 1.35;
  margin-bottom: 18px;
}

#esac-footer .footer-social-img {
  height: 34px;
  /* alto de la tira de iconos (una sola imagen) */
  width: auto;
}

/* Columnas de enlaces */
#esac-footer .footer-col {
  margin-top: 8px;
}

#esac-footer .footer-title {
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 18px;
  color: #fff;
}

#esac-footer .footer-title.upper {
  text-transform: uppercase;
  letter-spacing: .4px;
}

#esac-footer .footer-list {
  padding-left: 0px;
  margin: 0;
}

#esac-footer .footer-list li {
  margin-bottom: 8px;
}

#esac-footer .footer-list a {
  color: #fff;
  text-decoration: none;
}

#esac-footer .footer-list a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Horario */
#esac-footer .footer-small {
  margin: 0 0 6px 0;
  font-size: 13px;
  opacity: .95;
}

/* Bottom bar */
#esac-footer .footer-bottom-sep {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, .25);
}

#esac-footer .footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}

#esac-footer .footer-links {
  font-size: 14px;
  margin: 0;
}

#esac-footer .footer-links a {
  color: #fff;
  text-decoration: none;
}

#esac-footer .footer-links a:hover {
  text-decoration: underline;
}

#esac-footer .footer-copy {
  font-size: 14px;
  margin: 0;
  color: #fff;
}

#esac-footer .footer-copy .p .strong {
  font-size: 14px;
  margin: 0;
  color: #fff;
}

/* Layout responsivo */

/* En pantallas pequeñas (móviles y tablets en modo vertical) */
@media (max-width: 991px) {
  #esac-footer {
    padding: 20px;
  }

  #esac-footer .footer-bottom {
    flex-direction: column;
    gap: 10px;
  }

  #esac-footer .footer-col {
    width: 100%;
    text-align: center;
    margin-top: 15px;
  }

  #esac-footer .footer-title {
    font-size: 16px;
  }

  #esac-footer .footer-list li {
    margin-bottom: 12px;
  }

  #esac-footer .footer-small {
    font-size: 12px;
  }

  #esac-footer .footer-copy {
    font-size: 12px;
  }

  /* Ajuste de las redes sociales */
  #esac-footer .footer-social-img {
    height: 28px;
  }

  /* Eliminar la separación inferior en dispositivos más pequeños */
  #esac-footer .footer-bottom-sep {
    display: none;
  }
}

/* En pantallas de tabletas y dispositivos con tamaño entre 600px y 991px */
@media (max-width: 991px) and (min-width: 601px) {
  #esac-footer .footer-col {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #esac-footer .footer-logo {
    height: 50px;
  }

  #esac-footer .footer-desc {
    max-width: 300px;
  }

  #esac-footer .footer-social-img {
    height: 30px;
  }

  #esac-footer .footer-title {
    font-size: 18px;
  }
}

/* En pantallas grandes (más de 992px) */
@media (min-width: 992px) {
  #esac-footer .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }

  #esac-footer .footer-col {
    width: auto;
    text-align: left;
  }

  #esac-footer .footer-title {
    font-size: 20px;
  }
}

/* Footer: usar Montserrat en todos los elementos */
#esac-footer,
#esac-footer * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
}


/* Forzar Empresa y Categorías a la izquierda en <992px */
@media (max-width: 991px) {

  /* Alinea contenido de esas 2 columnas */
  #esac-footer .row> :nth-child(2) .footer-col,
  #esac-footer .row> :nth-child(3) .footer-col {
    text-align: left !important;
    align-items: flex-start;
    /* por si el contenedor usa flex */
  }

  /* Asegura que listas/links también queden a la izquierda */
  #esac-footer .row> :nth-child(2) .footer-list,
  #esac-footer .row> :nth-child(3) .footer-list {
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
  }

  /* Evita centrado heredado en la propia columna */
  #esac-footer .row> :nth-child(2),
  #esac-footer .row> :nth-child(3) {
    text-align: left !important;
    display: block;
  }
}



/* ===== Redes sociales (reemplazo de pags.png) ===== */
#esac-footer .footer-social {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 34px;
  /* mismo alto visual que la imagen original en desktop */
}

#esac-footer .footer-social .social-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 34px;
  /* igual que el alto original */
  height: 34px;
  color: #fff;
  /* iconos blancos sobre fondo rojo */
  text-decoration: none;
  opacity: .95;
  transition: transform .15s ease, opacity .15s ease;
}

#esac-footer .footer-social .social-link i {
  font-size: 18px;
  /* tamaño del glifo dentro del botón */
  line-height: 1;
}

#esac-footer .footer-social .social-link:hover {
  opacity: 1;
  transform: translateY(-1px);
}

/* Responsive: que ocupen lo que ocupaba la imagen en móvil */
@media (max-width: 991px) {
  #esac-footer .footer-social {
    min-height: 28px;
  }

  #esac-footer .footer-social .social-link {
    width: 28px;
    height: 28px;
  }

  #esac-footer .footer-social .social-link i {
    font-size: 16px;
  }
}


/* Asegura que Lineicons renderice sus glifos (tu regla de Montserrat no los tape) */
#esac-footer i.lni,
#esac-footer .lni {
  font-family: "LineIcons" !important;
  font-style: normal;
  font-weight: normal;
}

/* Contenedor */
#esac-footer .footer-social {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 34px;
  /* mismo alto que tu antiga imagen */
}

/* Botones: círculo blanco con ícono rojo */
#esac-footer .btn-social {
  width: 34px;
  height: 34px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #fff;
  /* círculo blanco */
  color: #E20512;
  /* ícono rojo ESAC */
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

#esac-footer .btn-social i {
  font-size: 16px;
  line-height: 1;
}

/* Hover/focus */
#esac-footer .btn-social:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

#esac-footer .btn-social:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Responsive (<992px) */
@media (max-width: 991px) {
  #esac-footer .footer-social {
    min-height: 28px;
    gap: 10px;
  }

  #esac-footer .btn-social {
    width: 28px;
    height: 28px;
  }

  #esac-footer .btn-social i {
    font-size: 14px;
  }
}

/* Asegura que Lineicons se vea (tu regla de Montserrat no lo tape) */
#esac-footer i.lni,
#esac-footer .lni {
  font-family: "LineIcons" !important;
  font-style: normal;
  font-weight: normal;
}

/* Contenedor y tamaño base usando variable (34px desktop, 28px mobile) */
#esac-footer .footer-social {
  --s: 34px;
  /* tamaño del círculo */
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: var(--s);
}

/* Botón: círculo blanco, ícono rojo */
#esac-footer .btn-social {
  position: relative;
  width: var(--s);
  height: var(--s);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #fff;
  /* círculo blanco */
  color: #E20512;
  /* ícono rojo ESAC */
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

#esac-footer .btn-social i {
  font-size: 16px;
  /* tamaño genérico del glifo */
  line-height: 1;
  position: relative;
  z-index: 1;
}

#esac-footer .btn-social:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

/* ——— Ajustes por marca para que se parezca al arte (pags.png) ——— */

/* Facebook: glifo un poco más grande y levemente a la derecha */
#esac-footer .btn-social.is-fb i {
  font-size: 20px;
  transform: translateX(0.5px);
}

/* LinkedIn: un toque más grande */
#esac-footer .btn-social.is-li i {
  font-size: 18px;
}

/* TikTok: similar a LinkedIn */
#esac-footer .btn-social.is-tt i {
  font-size: 18px;
}

/* Instagram: caja redondeada roja alrededor del ícono (como el arte) */
#esac-footer .btn-social.is-ig::before {
  content: "";
  position: absolute;
  inset: 0;
  width: calc(var(--s) * 0.62);
  height: calc(var(--s) * 0.62);
  border: 2px solid #E20512;
  border-radius: 8px;
  /* borde redondeado de IG */
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
}

#esac-footer .btn-social.is-ig i {
  font-size: 16px;
}

/* YouTube: dibujamos el “rectángulo rojo” con triángulo blanco */
#esac-footer .btn-social.is-yt i {
  opacity: 0;
}

/* ocultamos el glifo del font */
#esac-footer .btn-social.is-yt::before {
  content: "";
  position: absolute;
  width: calc(var(--s) * 0.68);
  height: calc(var(--s) * 0.45);
  background: #E20512;
  border-radius: 6px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

#esac-footer .btn-social.is-yt::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-30%, -50%);
  /* centra óptico */
  border-left: calc(var(--s) * 0.16) solid #fff;
  /* triángulo */
  border-top: calc(var(--s) * 0.10) solid transparent;
  border-bottom: calc(var(--s) * 0.10) solid transparent;
}

/* Responsive (<992px): igual que la imagen reducida */
@media (max-width: 991px) {
  #esac-footer .footer-social {
    --s: 28px;
    gap: 10px;
  }

  #esac-footer .btn-social i {
    font-size: 14px;
  }

  #esac-footer .btn-social.is-fb i {
    font-size: 18px;
  }

  #esac-footer .btn-social.is-li i,
  #esac-footer .btn-social.is-tt i {
    font-size: 16px;
  }
}

















/* =======================
   CANAL WHATSAPP — CONSOLIDADO
   ======================= */

/* ---------- CONTROLES (ajusta aquí) ---------- */
#canal-whatsapp.cw {
  /* Fondo / franja */
  --bar-h: 200px;

  /* Bloque título (imágenes) + botón */
  --title-x: 430px;
  --title-y: calc(var(--bar-h, 200px) + 64px);
  /* ↑ como tenías al final */
  --title-w: 680px;
  /* ↑ final */

  /* ÚNETE A (unete.png) */
  --line1-w: 65%;
  /* ↑ final */
  --line1-x: 0px;
  --line1-y: 0px;
  --line1-rot: 0deg;
  --line1-scale: 1.10;
  /* ↑ final */
  --line1-shadow: none;
  --line1-gap-bottom: 0px;

  /* NUESTRO CANAL DE (nuestro.png) */
  --line2-w: 110%;
  /* ↑ final */
  --line2-x: 0px;
  --line2-y: 0px;
  --line2-rot: 0deg;
  --line2-scale: 1.10;
  /* ↑ final */
  --line2-shadow: none;

  /* Botón */
  --btn-w: 222px;
  --btn-h: 52px;
  --btn-fs: 20px;
  --btn-gap: 28px;
  --btn-shift-x: 0px;
  --btn-shift-y: 0px;

  /* Features (franja) */
  --feats-left: 425px;
  --feats-bottom: 0px;
  --feats-dx: 0px;
  --feats-dy: 0px;
  --feats-width: min(780px, 55vw);
  --feats-gap-x: 56px;
  --feats-gap-y: 18px;
  --feat-fs: clamp(14px, 1.25vw, 20px);
  --pin-dot: 0.45em;
  --pin-line-h: 1em;
  --feat-pad-left: 1.2em;

  /* Chica */
  --girl-right: 350px;
  --girl-bottom: 0px;
  --girl-w: 430px;
  --girl-scale: 1;
  --foot-tweak: 0px;
  --girl-x: 0px;
  --girl-y: 0px;
}

/* ---------- CONTENEDOR ---------- */
#canal-whatsapp.cw {
  width: 100%;
  height: 600px;
  /* desktop */
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-sizing: border-box;
  padding: 0;
  background: linear-gradient(90deg, #05A139 51.04%, #234343 94.91%);
}

/* Franja inferior */
#canal-whatsapp.cw::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--bar-h);
  background: #004C2599;
  z-index: 0;
}

/* Contenedor interno */
#canal-whatsapp .cw-inner {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}

/* ---------- BLOQUE IZQUIERDO (título-imágenes + botón) ---------- */
#canal-whatsapp .cw-left {
  position: absolute;
  left: var(--title-x);
  bottom: var(--title-y);
  width: var(--title-w);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Título = 2 imágenes */
#canal-whatsapp .cw-title-imgs {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 7px;
}

#canal-whatsapp .cw-line {
  display: block;
  height: auto;
  max-width: 100%;
}

/* ÚNETE A */
#canal-whatsapp .cw-line-1 {
  width: var(--line1-w);
  filter: var(--line1-shadow);
  transform: translate(var(--line1-x), var(--line1-y)) rotate(var(--line1-rot)) scale(var(--line1-scale));
  margin: 0 0 var(--line1-gap-bottom) 0;
}

/* NUESTRO CANAL DE */
#canal-whatsapp .cw-line-2 {
  width: var(--line2-w);
  filter: var(--line2-shadow);
  transform: translate(var(--line2-x), var(--line2-y)) rotate(var(--line2-rot)) scale(var(--line2-scale));
}

/* ---------- BOTÓN WHATSAPP ---------- */
#canal-whatsapp .cw-btn {
  width: var(--btn-w);
  height: var(--btn-h);
  margin-top: var(--btn-gap);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: #234343;
  color: #fff;
  font-size: var(--btn-fs);
  font-weight: 700;
  line-height: 1;
  border: 3px solid #FFFFFF;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .20);
  padding: 0;
  position: relative;
  overflow: hidden;
  transition: background .25s ease, color .25s ease, opacity .2s ease;
  transform: translate(var(--btn-shift-x), var(--btn-shift-y));
}

#canal-whatsapp .cw-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
}

#canal-whatsapp .cw-ico-img {
  width: 1em;
  height: 1em;
  display: block;
}

#canal-whatsapp .cw-btn-text {
  color: inherit;
  font-weight: 700;
}

/* Hover → transparente y texto “ÚNETE” centrado */
#canal-whatsapp .cw-btn::after {
  content: "ÚNETE";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: var(--btn-fs);
  opacity: 0;
  transition: opacity .2s ease;
  pointer-events: none;
}

#canal-whatsapp .cw-btn:hover {
  background: transparent;
}

#canal-whatsapp .cw-btn:hover .cw-ico,
#canal-whatsapp .cw-btn:hover .cw-btn-text {
  opacity: 0;
  visibility: hidden;
}

#canal-whatsapp .cw-btn:hover::after {
  opacity: 1;
}

#canal-whatsapp .cw-btn:focus-visible {
  outline: 2px dashed #fff;
  outline-offset: 3px;
}

/* ---------- FEATURES en la franja ---------- */
#canal-whatsapp .cw-feats {
  position: absolute;
  left: var(--feats-left);
  bottom: var(--feats-bottom);
  height: var(--bar-h);
  width: var(--feats-width);
  transform: translate(var(--feats-dx), var(--feats-dy));
  z-index: 1;

  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  align-content: center;
  gap: var(--feats-gap-y) var(--feats-gap-x);
  color: #fff;
}

#canal-whatsapp .cw-feat {
  position: relative;
  padding-left: var(--feat-pad-left);
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight: 800;
  font-size: var(--feat-fs);
  line-height: 1.25;
  text-align: left;
}

#canal-whatsapp .cw-feat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: var(--pin-dot);
  height: var(--pin-dot);
  background: #fff;
  border-radius: 999px;
}

#canal-whatsapp .cw-feat::after {
  content: "";
  position: absolute;
  left: calc(var(--pin-dot)/2 - 1px);
  top: calc(var(--pin-dot) + 0.20em);
  width: 2px;
  height: var(--pin-line-h);
  background: #fff;
  border-radius: 2px;
  opacity: .95;
}

/* ---------- CHICA (derecha) ---------- */
#canal-whatsapp .cw-right {
  position: absolute;
  right: var(--girl-right);
  bottom: var(--girl-bottom);
  z-index: 2;
  pointer-events: none;
}

#canal-whatsapp .cw-girl {
  width: var(--girl-w);
  height: auto;
  display: block;
  transform: translate(var(--girl-x), var(--girl-y)) translateY(var(--foot-tweak)) scale(var(--girl-scale));
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .25));
}


/* Hover global del botón: verde sólido en todas las vistas */
#canal-whatsapp .cw-btn:hover {
  background: #05A139;
  /* antes: transparent */
}

/* (opcional) si quieres asegurarte de que el texto del hover siga en blanco */
#canal-whatsapp .cw-btn:hover::after {
  color: #FFFFFF;
}

/* =========================
   RESPONSIVE — CANAL WHATSAPP
   ========================= */

/* =========================
   RESPONSIVE — CANAL WHATSAPP (FUSIONADO)
   Ranges sin solapes + controles por elemento
   ========================= */

/* =========================
   RESPONSIVE — CANAL WHATSAPP (FUSIONADO)
   Ranges sin solapes + controles por elemento
   ========================= */

/* ---------- 📱 Móviles muy pequeños (≤360px) ---------- */
@media (max-width:360px) {
  #canal-whatsapp.cw {
    /* Layout */
    height: 360px;
    /* antes 340px */
    --bar-h: 150px;
    /* antes 140px */

    /* Título + imágenes */
    --title-x: clamp(10px, 4vw, 18px);
    --title-w: min(92vw, 480px);
    --title-y: calc(var(--bar-h) + 10px);
    --line1-w: 88%;
    --line2-w: 96%;
    --line1-scale: 1;
    --line2-scale: 1;

    /* Botón */
    --btn-gap: 10px;

    /* Features (2×2) */
    --feats-left: clamp(10px, 4vw, 18px);
    --feats-width: min(92vw, 480px);
    --feats-bottom: 0px;
    --feats-dx: 0px;
    --feats-dy: 0px;
  }

  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
    gap: var(--feats-gap-y, 16px) var(--feats-gap-x, 20px);
  }
}

/* ---------- 📱 Móviles (361–640px) ---------- */
@media (min-width:361px) and (max-width:640px) {
  #canal-whatsapp.cw {
    /* Layout */
    height: 620px;
    /* antes 710px */
    --bar-h: 160px;
    /* antes 150px */

    /* Título + imágenes */
    --title-x: clamp(12px, 5vw, 24px);
    --title-w: min(92vw, 520px);
    --title-y: calc(var(--bar-h) + 12px);
    --line1-w: 90%;
    --line2-w: 98%;
    --line1-scale: 1;
    --line2-scale: 1;

    /* Botón */
    --btn-gap: 12px;

    /* Features (2×2) */
    --feats-left: clamp(12px, 5vw, 24px);
    --feats-width: min(92vw, 520px);
    --feats-bottom: 0px;
    --feats-dx: 0px;
    --feats-dy: 0px;

    /* Chica (si se muestra por el bloque global) */
    --girl-w: 325px;
    --girl-scale: 1;
    --foot-tweak: -2px;
    --girl-x: 0px;
    --girl-y: 0px;
  }

  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
    gap: var(--feats-gap-y, 18px) var(--feats-gap-x, 24px);
  }
}

/* ---------- 📟 Small Tablet (641–820px) ---------- */
@media (min-width:641px) and (max-width:820px) {
  #canal-whatsapp.cw {
    /* Layout */
    height: 400px;
    /* antes 360px */
    --bar-h: 180px;

    /* Título + imágenes */
    --title-x: clamp(16px, 6vw, 32px);
    --title-w: min(92vw, 640px);
    --title-y: calc(var(--bar-h) + 18px);
    --line1-w: 76%;
    --line2-w: 108%;
    --line1-scale: 1;
    --line2-scale: 1;

    /* Botón */
    --btn-gap: 16px;

    /* Features (2×2) */
    --feats-left: clamp(56px, 6vw, 32px);
    --feats-width: min(92vw, 640px);
    --feats-bottom: 0px;
    --feats-dx: 0px;
    --feats-dy: 0px;
    --feats-gap-x: 24px;
    --feat-fs: clamp(20px, 2vw, 18px);

    /* Chica (si se muestra por el bloque global) */
    --girl-w: 360px;
    --girl-scale: 1;
    --foot-tweak: -1px;
  }

  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

/* ---------- 💻 Tablet grande / Laptop angosta (821–1024px) ---------- */
@media (min-width:821px) and (max-width:1024px) {
  #canal-whatsapp.cw {
    /* Layout */
    height: 400px;
    /* antes 360px */
    --bar-h: 190px;

    /* Título + imágenes */
    --title-x: clamp(24px, 7vw, 48px);
    --title-w: min(92vw, 700px);
    --title-y: calc(var(--bar-h) + 20px);
    --line1-w: 78%;
    --line2-w: 110%;
    --line1-scale: 1;
    --line2-scale: 1;

    /* Botón */
    --btn-gap: 16px;

    /* Features (2×2) */
    --feats-left: clamp(144px, 7vw, 48px);
    --feats-width: min(92vw, 700px);
    --feats-bottom: 0px;
    --feats-dx: 0px;
    --feats-dy: 0px;
    --feats-gap-x: 14px;
    --feat-fs: clamp(24px, 1.8vw, 18px);

    /* Chica (si se muestra por el bloque global) */
    --girl-w: 380px;
    --girl-scale: 1.02;
    --foot-tweak: 0px;
  }

  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}

/* ——— Ajuste fino: pantallas MUY altas en ≤1024px (ej. 950×1280 portrait) ——— */
@media (max-width:1024px) and (min-height:1100px) {
  #canal-whatsapp.cw {
    height: 520px;
    --bar-h: 200px;
    --title-y: calc(var(--bar-h) + 24px);
    --btn-gap: 18px;
  }
}

/* ---------- 🖥️ Laptops medianas (1025–1366px) ---------- */
@media (min-width:1025px) and (max-width:1366px) {
  #canal-whatsapp.cw {
    /* Layout */
    height: 580px;
    /* antes 560px */
    --bar-h: 200px;

    /* Título + imágenes */
    --title-x: clamp(40px, 10vw, 360px);
    --title-w: min(56vw, 760px);
    --title-y: calc(var(--bar-h) + 28px);
    --line1-w: 72%;
    --line2-w: 108%;
    --line1-scale: 1.05;
    --line2-scale: 1.05;

    /* Botón */
    --btn-gap: 20px;

    /* Features (2×2) */
    --feats-left: clamp(40px, 10vw, 360px);
    --feats-width: min(56vw, 760px);
    --feat-fs: clamp(14px, 1.5vw, 20px);
  }

  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

/* =========================================================
   CHICA AL FONDO (solo responsive ≤1024px)
   Capas: título/botón (3) > chica (2) > feats (1) > franja (0)
   ========================================================= */
@media (max-width:1024px) {

  /* Capas */
  #canal-whatsapp .cw-left {
    z-index: 3;
  }

  #canal-whatsapp .cw-right {
    z-index: 2;
  }

  #canal-whatsapp .cw-feats {
    z-index: 1;
  }

  #canal-whatsapp.cw::before {
    z-index: 0;
  }

  /* Mostrar y centrar la chica, pies justo encima de la franja */
  #canal-whatsapp .cw-right {
    display: flex !important;
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--bar-h);
    justify-content: center;
    align-items: flex-end;
    pointer-events: none;
  }

  #canal-whatsapp .cw-girl {
    width: var(--girl-w);
    height: auto;
    transform: translateY(var(--foot-tweak)) scale(var(--girl-scale));
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .25));
  }

  /* Menos aire entre imágenes del título en ≤640px (un solo lugar) */
  @media (max-width:640px) {
    #canal-whatsapp .cw-title-imgs {
      gap: 4px;
    }
  }
}

/* ---------- 🖥️ Laptops grandes (1367–1439px) ---------- */
/* Aquí mantenemos exactamente el bloque original 1025–1439,
   pero acotado a 1367–1439 para






/* =========================================================
   DESKTOP GRANDE (tu laptop 1920×1080 y superiores)
   Texto+botón IZQUIERDA | Chica DERECHA | Features DEBAJO
   ========================================================= */
@media (min-width:1440px) {
  #canal-whatsapp.cw {
    /* Altura y franja inferior */
    height: 620px;
    /* se ve cómodo en 1080p */
    --bar-h: 200px;

    /* Bloque izquierdo (título-imágenes + botón) */
    --title-x: clamp(340px, 12vw, 360px);
    /* --title-x: clamp(140px, 12vw, 360px); */
    /* margen izq. agradable en 1920 */
    --title-w: min(720px, 48vw);
    /* ancho del bloque de título */
    --title-y: calc(var(--bar-h) + 40px);
    /* separación respecto a la franja */

    /* Tamaños del título (dos imágenes) */
    --line1-w: 70%;
    --line2-w: 108%;
    --line1-scale: 1.04;
    --line2-scale: 1.04;

    /* Botón cómodo y centrado dentro del bloque */
    --btn-w: 320px;
    --btn-h: 52px;
    --btn-fs: 20px;
    --btn-gap: 22px;

    /* Features: mismas coordenadas que el bloque izquierdo, debajo del texto */
    --feats-left: var(--title-x);
    --feats-width: var(--title-w);
    --feats-bottom: 0px;
    /* en la franja inferior */
    --feats-dx: 0px;
    --feats-dy: 0px;
    --feats-gap-x: 48px;
    --feats-gap-y: 18px;
    --feat-fs: clamp(16px, 1vw, 22px);

    /* Chica a la derecha, grande pero sin tapar */
    --girl-right: clamp(160px, 12vw, 280px);
    --girl-bottom: 0px;
    --girl-w: clamp(520px, 27vw, 640px);
    --girl-scale: 1;
    --girl-x: 0px;
    --girl-y: 0px;
  }

  /* Grid de features (dos columnas amplias, alineadas con el título) */
  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    align-content: center;
  }

  /* Alineación visual del título (imágenes centradas dentro del bloque) */
  #canal-whatsapp .cw-title-imgs {
    align-items: center;
  }

  #canal-whatsapp .cw-line {
    margin: 0 auto;
  }

  /* Botón consistente y centrado */
  #canal-whatsapp .cw-btn {
    margin-left: auto;
    margin-right: auto;
    padding-inline: 18px;
    white-space: nowrap;
  }

  #canal-whatsapp .cw-btn:hover {
    background: #05A139;
  }

  #canal-whatsapp .cw-btn:hover .cw-ico,
  #canal-whatsapp .cw-btn:hover .cw-btn-text {
    opacity: 0;
    visibility: hidden;
  }

  #canal-whatsapp .cw-btn::after {
    letter-spacing: .2px;
  }
}

/* =========================================================
   1) Laptop 1920×1080 (≥1440px): chica más pequeña y más a la derecha
   ========================================================= */
@media (min-width:1440px) {
  #canal-whatsapp.cw {
    /* chica más pequeña */
    --girl-w: clamp(360px, 24vw, 430px);
    /* antes ~520–640px */
    /* más a la derecha (menor distancia al borde derecho) */
    --girl-right: clamp(400px, 8vw, 180px);
    /*--girl-right: clamp(80px, 8vw, 180px); */
    /* antes ~160–280px */
  }
}

/* =========================================================
   2) Móviles: más alto sin afectar contenido
   (no tocamos --bar-h, ni --title-x/--title-y, ni escalas)
   ========================================================= */

/* ≤360px */
@media (max-width:360px) {
  #canal-whatsapp.cw {
    height: 420px;
    /* antes 360px: +60px de respiro */
    /* --bar-h se mantiene igual para no mover el contenido */
  }
}

/* 361–640px */
@media (min-width:361px) and (max-width:640px) {
  #canal-whatsapp.cw {
    height: 620px;
    /* antes 600/620px: +60–80px de respiro */
    /* no tocamos variables de posición para no alterar el layout */
  }
}


/* =========================================================
   TABLET PORTRAIT (iPad Mini / 768×1024) — mostrar bien a la chica
   ========================================================= */

/* bloque general 641–820px (portrait tablets) */
@media (min-width:641px) and (max-width:820px) {
  #canal-whatsapp.cw {
    /* +altura para que entre la chica completa */
    height: 560px;
    /* antes 400–440px */
    --bar-h: 190px;
    /* franja un poco más alta para equilibrio visual */

    /* Bloque izquierdo (texto + imágenes + botón) */
    --title-x: clamp(24px, 6.5vw, 56px);
    --title-w: min(90vw, 660px);
    --title-y: calc(var(--bar-h) + 20px);

    /* Título (imágenes) ligeramente más grandes pero contenidas */
    --line1-w: 84%;
    --line2-w: 110%;
    --line1-scale: 1;
    --line2-scale: 1;

    /* Botón cómodo */
    --btn-w: min(46vw, 360px);
    --btn-h: 52px;
    --btn-fs: 19px;
    --btn-gap: 18px;

    /* Features alineadas bajo el bloque izquierdo */
    --feats-left: var(--title-x);
    --feats-width: var(--title-w);
    --feats-gap-x: 24px;
    --feats-gap-y: 18px;
    --feat-fs: clamp(16px, 1.9vw, 20px);

    /* CHICA visible, centrada sobre la franja */
    --girl-w: 460px;
    /* más grande para que se note */
    --girl-scale: 1;
    --foot-tweak: -4px;
    /* apoya levemente sobre la franja sin cortar */
  }

  /* grid de features en dos columnas sólidas */
  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(200px, 1fr));
  }
}

/* micro-tuning exacto para iPad 768×1024 */
@media (width:768px) and (min-height:1000px) {
  #canal-whatsapp.cw {
    height: 870px;
    /* un pelín más que el bloque general */
    --bar-h: 200px;
    /* franja igual a desktop para mantener proporción */
    --title-y: calc(var(--bar-h) + 22px);
    --girl-w: 480px;
    /* un toque más grande en iPad */
    --foot-tweak: -0px;
    /* pies apenas tocando la franja */
  }
}


/* =========================================================
   MÓVILES MUY ANGOSTOS — MÁS ALTO EL SECTOR (zona verde)
   No altera posiciones; solo da más altura y muestra más de la chica
   ========================================================= */

/* Regla general ≤360px */
@media (max-width:360px) {
  #canal-whatsapp.cw {
    height: 620px;
    /* ↑ más alto (antes 360–420px) */
    /* mantenemos la franja para no desalinear features */
    --bar-h: 150px;

    /* sin cambiar layout, solo pequeños “breathing spaces” */
    --btn-gap: 14px;
  }

  /* grid cómodo en dos columnas */
  #canal-whatsapp .cw-feats {
    grid-template-columns: repeat(2, minmax(128px, 1fr));
    gap: 16px 18px;
  }
}

/* Target preciso: Galaxy S8+ 360×740 (portrait) */
@media (width:360px) and (min-height:700px) {
  #canal-whatsapp.cw {
    height: 640px;
    /* aún más alto en este modelo */
    --bar-h: 150px;
    /* dejamos la franja igual */
    --title-y: calc(var(--bar-h) + 16px);

    /* muestra más de la cara sin aplastar nada */
    --girl-w: 420px;
    /* un poco mayor que tu base móvil */
    --foot-tweak: 0px;
    /* sube la imagen (negativo = hacia arriba) */
  }
}














/*Docente*/

/*--------------------------------------------------------------
# Docente (Hero estilo ESAC) — CSS consolidado
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Docente (Hero estilo ESAC) — CSS consolidado
--------------------------------------------------------------*/
.docente-hero {
  /* Diales (puedes cambiarlos inline en el <section>) */
  --imgX: 125px;
  --imgY: 86px;
  --textGroupX: -120px;
  /* + derecha | - izquierda */
  --textGroupY: -20px;
  /* + abajo   | - arriba   */

  position: relative;
  width: 100%;
  height: 400px;
  /* alto fijo */
  padding: 0;
  background: linear-gradient(90deg, #830102 5.69%, #E90104 94.91%);
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

.docente-hero>.container {
  max-width: 1200px;
  height: 100%;
}

.docente-hero .hero-inner {
  height: 100%;
  position: relative;
  display: grid;
  grid-template-columns: 42% 58%;
  /* img | texto */
  align-items: center;
}

/* Imagen izquierda */
.hero-figure {
  margin: 0;
  display: flex;
  align-items: flex-end;
  /* “pisa” el suelo */
  justify-content: flex-start;
  min-height: 260px;
}

.hero-img {
  width: min(420px, 34vw);
  max-width: 100%;
  height: auto;
  transform: translate(var(--imgX), var(--imgY));
  /* mover X/Y */
  user-select: none;
  pointer-events: none;
}

/* Textos (bloque completo) */
.hero-text {
  color: #fff;
  max-width: 560px;
  margin-left: auto;
  margin-right: 6%;
  text-align: center;
  position: relative;
  left: var(--textGroupX);
  top: var(--textGroupY);
  /* mueve TODO el bloque (title+subtitle+botón) */
}

/* ocultar label DOCENTE y su línea */
.hero-text .label,
.hero-text .label::after {
  display: none !important;
}

/* Título */
.hero-title {
  margin: 0 0 8px 0;
  /* menos aire con subtítulo */
  color: #FFFFFF;
  font-weight: 800;
  font-size: 32px;
  /* solicitado */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
}

.hero-title .ghost {
  display: none !important;
}

.hero-title .title-line {
  display: block;
}

/* fuerza salto de línea */
.hero-title .highlight {
  display: block;
  margin-top: 8px;
  /* espacio del renglón amarillo */
  line-height: 1.22;
  font-size: 1em;
  /* = 32px */
  font-weight: 900;
  font-style: italic;
  text-transform: uppercase;
  color: #FFCC00;
}

/* Subtítulo */
.docente-hero .subtitle {
  max-width: 520px;
  margin: 0 auto 16px auto;
  font-size: 18px;
  /* solicitado */
  line-height: 1.35;
  color: #FFFFFF;
  opacity: .92;
}

.subtitle .sub-line {
  display: block;
}

/* Botón CTA — tamaño estable + hover invertido */
.btn-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* texto centrado */
  height: 50px;
  padding: 0 28px;
  padding-left: 56px;
  /* reserva espacio fijo para el icono */
  box-sizing: border-box;
  /* borde no cambia tamaño total */
  margin: 10px auto 0;
  /* centrado bajo el subtítulo */
  background: #FFFFFF;
  color: #C00000;
  border: 1px solid transparent;
  /* base transparente para evitar “salto” */
  border-radius: 999px;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: .2px;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .18);
  transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}

.btn-cta .btn-icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  transition: opacity .2s ease;
}

.btn-cta .btn-icon img {
  width: 100%;
  height: 100%;
  display: block;
}

/* Hover: fondo #E20512 + borde blanco 1px + oculta icono (sin cambiar tamaño) */
.btn-cta:hover,
.btn-cta:focus-visible {
  background: #E20512;
  color: #FFFFFF;
  border-color: #FFFFFF;
  transform: translateY(-1px);
}

.btn-cta:hover .btn-icon,
.btn-cta:focus-visible .btn-icon {
  opacity: 0;
  /* no usamos display:none -> tamaño estable */
}

.btn-cta:active {
  transform: translateY(0);
}



/* ===================== Responsive consolidado ===================== */

/* Altura controlable en desktop (hereda 400px si no defines) */
.docente-hero {
  height: var(--heroH, 400px);
}

/* ---------- Tablet (≤1100px) ---------- */
@media (max-width: 1100px) {
  .docente-hero {
    height: var(--heroH-md, var(--heroH, 400px));
    padding-top: var(--padTop-md, 32px);
    /* solo top */
    padding-bottom: 0;
    /* sin bottom */
  }

  .docente-hero .hero-inner {
    grid-template-columns: .9fr 1.1fr;
  }

  .hero-text {
    margin-right: 3%;
  }

  /* Tamaño/posición de la imagen en tablet (diales) */
  .hero-img {
    width: clamp(var(--imgMin-md, 300px), var(--imgVW-md, 48vw), var(--imgMax-md, 520px));
    transform: translate(var(--imgX-md, 0px), var(--imgY-md, 0px)) scale(var(--imgScale-md, 1));
  }
}

/* ---------- Móvil (≤991px) ---------- */
@media (max-width: 991px) {
  .docente-hero {
    height: var(--heroH-sm, auto);
    /* define px si la quieres fija */
    padding-top: var(--padTop-sm, 40px);
    /* solo top */
    padding-bottom: 0;
    /* sin bottom */
  }

  /* Stacking: texto arriba, imagen debajo */
  .docente-hero .hero-inner {
    grid-template-columns: 1fr;
  }

  .hero-text {
    order: 1;
    margin: 0 auto;
    left: var(--textGroupX-sm, 0px);
    /* mover bloque de textos */
    top: var(--textGroupY-sm, 0px);
  }

  .hero-figure {
    order: 2;
    justify-content: center;
    min-height: 0;
    height: var(--imgHalf-sm, 330px);
    /* ← muestra solo la “mitad” superior */
    overflow: hidden;
    /* recorta lo que queda abajo */
  }

  /* Tamaño/posición de la imagen en móvil (diales) */
  .hero-img {
    width: clamp(var(--imgMin-sm, 300px), var(--imgVW-sm, 82vw), var(--imgMax-sm, 560px));
    transform: translate(var(--imgX-sm, 0px), var(--imgY-sm, 0px)) scale(var(--imgScale-sm, 1));
    align-self: flex-start;
    /* ancla arriba para el recorte */
  }
}

/* ---------- Extra-pequeño (≤420px) ---------- */
@media (max-width: 420px) {
  .btn-cta {
    height: 42px;
    padding: 0 14px;
    font-size: 16px;
  }

  .btn-cta .btn-icon {
    width: 24px;
    height: 24px;
    left: 12px;
  }

  .hero-img {
    width: clamp(var(--imgMin-xs, 240px), var(--imgVW-xs, 80vw), var(--imgMax-xs, 520px));
    transform: translate(var(--imgX-xs, 0px), var(--imgY-xs, 0px)) scale(var(--imgScale-xs, 1));
  }
}

/* ===== Botón limpio en responsive ===== */
@media (max-width: 991px) {
  .btn-cta {
    font-size: 16px;
    /* achica un poco en móvil */
    height: 46px;
    padding: 0 18px;
    /* padding simétrico */
    padding-left: 18px;
    /* ya no reservamos espacio para icono */
    white-space: normal;
    /* permite dos líneas si fuese necesario */
    justify-content: center;
    /* texto centrado */
  }

  .btn-cta .btn-icon {
    display: none !important;
    /* oculta el icono en móvil */
  }
}

/* pantallas pequeñas (iPhone SE / 360px) */
@media (max-width: 420px) {
  .btn-cta {
    font-size: 15px;
    height: 44px;
    padding: 0 14px;
  }
}

@media (max-width: 360px) {
  .btn-cta {
    font-size: 14px;
    height: 42px;
    padding: 0 12px;
  }
}


/* ===== Botón responsive con icono visible y alineado ===== */
@media (max-width: 991px) {
  .btn-cta {
    width: min(90vw, 340px);
    /* ancho cómodo en móvil */
    height: 46px;
    font-size: 16px;
    /* baja un poco para que quepa */
    padding: 0 16px;
    /* padding simétrico */
    padding-left: 16px;
    /* ya no reservamos espacio extra */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* centra todo */
    gap: 10px;
    /* espacio entre icono y texto */
    white-space: nowrap;
    /* una sola línea */
  }

  /* El icono deja de ser absolute y va en línea con el texto */
  .btn-cta .btn-icon {
    position: static;
    transform: none;
    width: 22px;
    height: 22px;
    margin: 0;
    opacity: 1;
    /* asegúrate de que se vea */
  }

  /* En móvil NO ocultamos el icono en hover/focus */
  .btn-cta:hover .btn-icon,
  .btn-cta:focus-visible .btn-icon {
    opacity: 1;
  }
}

/* Extra pequeño (≈ iPhone SE) */
@media (max-width: 360px) {
  .btn-cta {
    width: 92vw;
    font-size: 15px;
    /* un pelín más chico si hace falta */
    height: 44px;
    padding: 0 14px;
    gap: 8px;
  }

  .btn-cta .btn-icon {
    width: 20px;
    height: 20px;
  }
}

/* ===== Botón responsive con icono visible y alineado (≤991px) ===== */
@media (max-width: 991px) {
  .btn-cta {
    width: min(90vw, 340px);
    height: 46px;
    font-size: 16px;
    padding: 0 16px;
    /* sin reservar espacio extra a la izquierda */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* centra icono + texto en conjunto */
    gap: 10px;
    /* separación entre icono y texto */
    white-space: nowrap;
  }

  /* Asegura que el icono NO esté absolute en mobile y nunca se esconda */
  .btn-cta .btn-icon {
    position: static !important;
    transform: none !important;
    width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    opacity: 1 !important;
    margin: 0 !important;
    flex: 0 0 auto;
  }

  .btn-cta .btn-icon img {
    display: block;
    width: 100%;
    height: 100%;
  }

  /* Incluso en hover/focus el icono sigue visible en mobile */
  .btn-cta:hover .btn-icon,
  .btn-cta:focus-visible .btn-icon {
    opacity: 1 !important;
    display: inline-flex !important;
    width: 22px !important;
    height: 22px !important;
  }
}

/* Extra pequeño (≈360px) */
@media (max-width: 360px) {
  .btn-cta {
    width: 92vw;
    font-size: 15px;
    height: 44px;
    padding: 0 14px;
    gap: 8px;
  }

  .btn-cta .btn-icon {
    width: 20px !important;
    height: 20px !important;
  }
}

/* ===== Desktop (≥992px): centra el texto en hover sin cambiar tamaño ===== */
@media (min-width: 992px) {

  /* Cambiamos el layout del botón a grid (icono + label) */
  .btn-cta {
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: auto 1fr;
    /* col 1: icono (auto), col 2: texto (1fr) */
    align-items: center;
    justify-items: center;
    /* centra el texto dentro de su 1fr */
    padding: 0 28px;
    /* padding simétrico */
    width: 400px;
  }

  /* El icono forma parte del flujo (no absolute) */
  .btn-cta .btn-icon {
    position: static;
    transform: none;
    width: 30px;
    height: 30px;
    margin: 0;
  }

  /* Hover: ocultamos visualmente el icono, PERO conservando su ancho
     -> el texto queda realmente centrado y el botón no cambia de tamaño */
  .btn-cta:hover .btn-icon,
  .btn-cta:focus-visible .btn-icon {
    visibility: hidden;
    /* no usar display:none */
    opacity: 0;
  }
}












/* Diplomados Meta (colapsable, sin JS) */

/* Scope diplomados-meta */
#diplomados-meta,
#diplomados-meta * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Color para todo lo que esté dentro de <span> en este bloque */
#diplomados-meta span {
  color: #FFCC00;
  /* amarillo */
}

/* Opcional: un poco de responsividad del título si lo necesitas */
#diplomados-meta h2 {
  font-weight: 800;
  font-size: clamp(22px, 4.2vw, 42px);
}

/* Mantienes tus reglas: fuente Montserrat, spans amarillos y h2 responsive */
#diplomados-meta,
#diplomados-meta * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

#diplomados-meta span {
  color: #FFCC00;
}

#diplomados-meta h2 {
  font-weight: 800;
  font-size: clamp(22px, 4.2vw, 42px);
}

/* ====== Colapsable ====== */
.diplomados-meta__details {
  --diplomados-meta-accent: #B11212;
  --diplomados-meta-maxh-closed: 0px;
  --diplomados-meta-maxh-open: 2000px;
}

/* quitar marcador nativo */
.diplomados-meta__summary::-webkit-details-marker {
  display: none;
}

/* el icono debe ser blanco aunque los span sean amarillos */
#diplomados-meta .diplomados-meta__chev {
  color: #fff;
}

/* animación del colapso */
.diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-closed);
  opacity: 0;
  transition: max-height .35s ease, opacity .35s ease;
}

/* panel full-bleed y color requerido */
.diplomados-meta__panel {
  width: 100vw;
  /* ocupa todo el viewport */
  margin-left: calc(50% - 50vw);
  /* rompe el container */
  margin-right: calc(50% - 50vw);
  background: #f3f6f8;
  color: #1e1f24;
}

/* al abrir, expandir y rotar chevron */
.diplomados-meta__details[open] .diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-open);
  opacity: 1;
}

.diplomados-meta__details[open] .diplomados-meta__chev svg {
  transform: rotate(180deg);
}

/* mantener lo tuyo: Montserrat, spans amarillos, h2 responsivo */
#diplomados-meta,
#diplomados-meta * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

#diplomados-meta span {
  color: #FFCC00;
}

#diplomados-meta h2 {
  font-weight: 800;
  font-size: clamp(22px, 4.2vw, 42px);
}

/* quitar padding-bottom del section */
#diplomados-meta.section-area {
  padding-bottom: 0;
}

/* ====== colapsable ====== */
.diplomados-meta__details {
  --diplomados-meta-accent: #B11212;
  --diplomados-meta-maxh-closed: 0px;
  --diplomados-meta-maxh-open: 2000px;
}

.diplomados-meta__summary::-webkit-details-marker {
  display: none;
}

/* fila centrada: texto + icono a su derecha, ambos centrados como bloque */
.diplomados-meta__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

/* icono grande y blanco */
.diplomados-meta__chev {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.diplomados-meta__chev-svg {
  width: 56px;
  height: 56px;
  transition: transform .3s ease;
}

/* animación del colapso */
.diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-closed);
  opacity: 0;
  transition: max-height .35s ease, opacity .35s ease;
}

/* panel full-bleed con color #f3f6f8 */
.diplomados-meta__panel {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #f3f6f8;
  color: #1e1f24;
}

/* estado abierto */
.diplomados-meta__details[open] .diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-open);
  opacity: 1;
}

.diplomados-meta__details[open] .diplomados-meta__chev-svg {
  transform: rotate(180deg);
}

/* Mantienes lo tuyo (Montserrat + spans amarillos + h2) */
#diplomados-meta,
#diplomados-meta * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

#diplomados-meta span {
  color: #FFCC00;
}

#diplomados-meta h2 {
  font-weight: 800;
  font-size: clamp(22px, 4.2vw, 42px);
}

/* ====== Colapsable ====== */
.diplomados-meta__details {
  --diplomados-meta-accent: #B11212;
  --diplomados-meta-maxh-closed: 0px;
  --diplomados-meta-maxh-open: 2000px;
}

.diplomados-meta__summary::-webkit-details-marker {
  display: none;
}

/* Fila centrada (texto + icono) */
.diplomados-meta__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-bottom: 18px;
  /* padding-bottom fijo en el header */
  padding-top: 18px;
}


/* Icono: blanco y grande; NO afectado por spans amarillos */
.diplomados-meta__chev {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.diplomados-meta__chev-svg {
  width: 56px;
  height: 56px;
  transition: transform .3s ease;
}

/* Animación de colapso (el panel no tiene margin-top, así no “empuja” el padding) */
.diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-closed);
  opacity: 0;
  transition: max-height .35s ease, opacity .35s ease;
}

/* Panel full-bleed con color #f3f6f8 */
.diplomados-meta__panel {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #f3f6f8;
  color: #1e1f24;
}

/* Estado abierto */
.diplomados-meta__details[open] .diplomados-meta__collapse {
  max-height: var(--diplomados-meta-maxh-open);
  opacity: 1;
}

.diplomados-meta__details[open] .diplomados-meta__chev-svg {
  transform: rotate(180deg);
}

.section-area-diplomados-meta {
  position: relative;
}


/* Contenedor rojo (renombrado) */
.diplomados-meta__des_rojo {
  background: #E20613;
  color: #ffffff;
}

/* Estructura interna centrada */
.diplomados-meta__cta-inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
  padding: clamp(16px, 3vw, 28px);
}

/* Títulos */
.diplomados-meta__cta-inner h1 {
  font-weight: 800;
  font-size: clamp(24px, 4.5vw, 40px);
  line-height: 1.15;
  margin-bottom: 8px;
}

.diplomados-meta__cta-inner h2 {
  font-weight: 600;
  font-size: clamp(18px, 3.6vw, 28px);
  line-height: 1.25;
  opacity: .95;
  margin-bottom: 18px;
}

/* Botón: <a> con imagen + texto */
.diplomados-meta__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 9999px;
  background: #ffffff;
  color: #E20613;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}

.diplomados-meta__cta-btn:hover,
.diplomados-meta__cta-btn:focus {
  transform: translateY(-1px);
}

.diplomados-meta__cta-btn-ico {
  width: 24px;
  height: 24px;
  display: inline-block;
}

.diplomados-meta__cta-btn-text {
  display: inline-block;
  font-size: clamp(14px, 2.8vw, 16px);
  line-height: 1;
}


/* Ocultar por completo el marcador del <summary> */
#diplomados-meta .diplomados-meta__summary {
  list-style: none !important;
  -webkit-appearance: none;
  appearance: none;
}

#diplomados-meta .diplomados-meta__summary::-webkit-details-marker {
  display: none !important;
}

#diplomados-meta .diplomados-meta__summary::marker {
  content: "" !important;
  display: none !important;
  font-size: 0 !important;
  /* por si algún UA reserva espacio */
}


/* Apartado 1*/

/* Contenedor interno centrado con “aire” a los lados dentro del div gris */
#diplomados-meta .diplomados-meta__content {
  max-width: 1100px;
  /* evita pegarse a los bordes */
  margin: 0 auto;
  /* centra el bloque */
  padding-inline: clamp(16px, 4vw, 32px);
  /* respiro lateral */
}

/* Bloques (título + lista), uno debajo del otro */
#diplomados-meta .diplomados-meta__list-block {
  padding: 18px 0;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
}

#diplomados-meta .diplomados-meta__list-block:last-child {
  border-bottom: 0;
}

/* Títulos de apartado */
#diplomados-meta .diplomados-meta__list-title {
  margin: 0 0 10px 0;
  font-weight: 800;
  font-size: clamp(22px, 3.6vw, 36px);
  line-height: 1.2;
  color: var(--diplomados-meta-accent, #B11212);
}

/* Lista con bullets y buen espaciado */
#diplomados-meta .diplomados-meta__list {
  list-style: disc;
  padding-left: 1.25rem;
  /* sangría para viñetas */
  margin: 0;
  display: grid;
  row-gap: .5rem;
  color: #1e1f24;
}

/* Color de la viñeta (tipo la referencia verde) */
#diplomados-meta .diplomados-meta__list li::marker {
  color: #16A34A;
}


/* Asegura fondo del panel en #f3f6f8 */
#diplomados-meta .diplomados-meta__panel {
  background: #f3f6f8;
}

/* Contenedor interno centrado con “aire” lateral */
#diplomados-meta .diplomados-meta__content {
  max-width: 1100px;
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, 32px);
}

/* Título + listas: bloques apilados */
#diplomados-meta .diplomados-meta__list-block {
  padding: 18px 0;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
}

#diplomados-meta .diplomados-meta__list-block:last-child {
  border-bottom: 0;
}

#diplomados-meta .diplomados-meta__list-title {
  margin: 0 0 22px 0;
  font-weight: 800;
  font-size: clamp(22px, 3.6vw, 36px);
  line-height: 1.2;
  color: var(--diplomados-meta-accent, #B11212);
  margin-left: 20px;
}

/* 3 columnas responsivas */
#diplomados-meta .diplomados-meta__columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 2.5vw, 24px);
}

/* Listas dentro de cada columna */
#diplomados-meta .diplomados-meta__list {
  list-style: disc;
  padding-left: 1.25rem;
  /* sangría para bullets */
  margin: 0;
  display: flex;
  flex-direction: column;
  row-gap: .5rem;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Colores de texto con clase */
#diplomados-meta .list--black {
  color: #000000;
}

#diplomados-meta .list--green {
  color: #009933;
}

/* Bullets del mismo color del texto */
#diplomados-meta .diplomados-meta__list li::marker {
  color: currentColor;
}

/* Pequeña ayuda en pantallas chicas: pasa a 1 o 2 columnas */
@media (max-width: 1023px) {
  #diplomados-meta .diplomados-meta__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 639px) {
  #diplomados-meta .diplomados-meta__columns {
    grid-template-columns: 1fr;
  }
}

/* Fondo gris claro en TODO el bloque de contenido del colapsable */
#diplomados-meta .diplomados-meta__panel,
#diplomados-meta .diplomados-meta__content {
  background: #f3f6f8;
}

/* (Opcional) los bloques internos mantienen fondo transparente,
   así no “parchean” el gris del contenedor */
#diplomados-meta .diplomados-meta__list-block {
  background: transparent;
}


/* Wrapper full-bleed (rompe el .container y pinta TODO el ancho) */
#diplomados-meta .diplomados-meta__full {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #f3f6f8;
  /* container en gris */
}

/* El div del panel también en gris por si hay padding/espaciados internos */
#diplomados-meta .diplomados-meta__panel {
  background: #f3f6f8;
  /* div interno en gris */
}

/* Contenido centrado con “aire” lateral dentro del gris */
#diplomados-meta .diplomados-meta__content {
  max-width: 1100px;
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, 32px);
  background: transparent;
  /* deja ver el gris de atrás */
}

/* Tipografía de los ítems de lista dentro del bloque de diplomados */
#diplomados-meta .dm-list li,
#diplomados-meta .diplomados-meta__list li {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  /* “Bold” en CSS es font-weight */
  font-style: normal;
  /* no itálica */
  font-size: 17px;
  /* tamaño pedido */
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  /* 0% */
  text-align: justify;
  /* justificado */
}

/* (opcional) asegura que el marcador no herede el color del texto */
#diplomados-meta .dm-list--black li::marker {
  color: #000000;
}

#diplomados-meta .dm-list--green li::marker {
  color: #009933;
}




/* Separación vertical entre los ítems de las listas */
#diplomados-meta .dm-list li+li,
#diplomados-meta .diplomados-meta__list li+li {
  margin-top: clamp(1.46px, 0.9vw, 40px);
  /* resp. ~6–14px */
}

/* (opcional) asegúrate de tener buen sangrado del bullet */
#diplomados-meta .dm-list,
#diplomados-meta .diplomados-meta__list {
  list-style: disc;
  padding-left: 1.2rem;
}

/* Títulos de los apartados dentro de #diplomados-meta */
#diplomados-meta .diplomados-meta__list-title {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-size: 48px;
  /* tamaño exacto pedido */
  line-height: 1.15;
  margin: 0 0 16px;
  padding-left: 20px;
}

/* Colores específicos por apartado */
#gestion-title {
  color: #E20512 !important;
}

/* ÁREA DE GESTIÓN */
#info-title {
  color: #009933 !important;
}

/* ÁREA DE INFORMÁTICA */



/* Width de la los ítems de las listas */
/* Parte 1*/
.max-w-\[334px\] {
  max-width: 325px;
}

.max-w-\[358px\] {
  max-width: 358px;
}

.max-w-\[372px\] {
  max-width: 372px;
}




/* rectangulo rojo abajo + boton*/

/* Tipografía base del bloque rojo (por si acaso) */
#diplomados-meta .diplomados-meta__des_rojo,
#diplomados-meta .diplomados-meta__des_rojo * {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #fff;
}

/* h1: ExtraBold 31.43px, 122%, UPPERCASE */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1 {
  font-weight: 800;
  /* ExtraBold */
  font-style: normal;
  font-size: 31.43px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-transform: uppercase;
  margin: 0;
  color: #fff !important;
  /* por si hay .text-white / otras reglas */
}

/* span dentro del h1: segunda línea grande (Black 900 + italic 81.24px) */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1>span {
  display: block;
  /* fuerza salto de línea */
  font-weight: 900;
  /* Black */
  font-style: italic;
  /* Italic */
  font-size: 81.24px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-transform: uppercase;
  color: #fff !important;
  /* sobrescribe tu regla global #diplomados-meta span { color: #FFCC00 } */
}

/* Responsivo opcional para evitar desbordes en móviles */
@media (max-width: 640px) {
  #diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1 {
    font-size: clamp(18px, 4.6vw, 28px);
  }

  #diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1>span {
    font-size: clamp(36px, 10vw, 56px);
    line-height: 1.15;
  }
}

/*Botn*/
/* === CTA rojo con borde blanco, contenido blanco y centrado === */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn {
  background: #E20512;
  border: 3px solid #FFFFFF;
  width: 260px;
  height: 80px;
  display: inline-flex;
  flex-wrap: wrap;
  /* 2 líneas: 1) Haz click  2) icono + Aquí */
  box-sizing: border-box;
  padding: 12px 18px;
  justify-content: center;
  /* centra horizontalmente cada línea */
  align-items: center;
  /* centra verticalmente en su línea */
  align-content: center;
  /* centra verticalmente el bloque de 2 líneas */
  text-align: center;
  gap: 0 8px;
  /* sin gap vertical, 8px horizontal */
}

/* Fuerza texto/icono en blanco + tipografía Montserrat dentro del botón */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn * {
  color: #FFFFFF !important;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Hover/focus sutil */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:hover,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:focus {
  transform: translateY(-1px);
  filter: brightness(0.96);
}

/* 1ª línea: “Haz click” (ocupa toda la fila) */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-text:first-of-type {
  flex: 0 0 100%;
  display: block;
  font-weight: 900;
  /* Black */
  font-style: normal;
  font-size: 20px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 2px;
  /* separación con la 2ª línea */
}

/* 2ª línea: icono + “Aquí” en la MISMA fila, centrados */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-ico,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-text:last-of-type {
  flex-basis: auto !important;
  /* evita que rompan línea */
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
}

/* Tipografía para “Aquí” */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-text:last-of-type {
  font-weight: 900;
  /* Black */
  font-style: normal;
  font-size: 36px;
  line-height: 1.22;
  /* 122% */
  letter-spacing: 0;
  text-align: center;
}

/* Tamaño del icono */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-ico {
  width: 35px;
  height: 35px;
}




/* Menos separación entre las dos líneas del H1 */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1 {
  line-height: 0.9;
  /* antes 1.22 */
}

/* El <span> grande del H1 también más “apretado” */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1>span {
  line-height: 1.05;
  /* antes 1.22 */
}

/* Más aire entre el H1 y el botón */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1 {
  margin-bottom: clamp(18px, 3.5vw, 28px);
}

#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn {
  margin-top: 0;
  /* por si algo lo empujaba */
}

/* Ajuste fino en móviles muy estrechos */
@media (max-width: 480px) {
  #diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1 {
    line-height: 1.06;
    margin-bottom: clamp(14px, 5vw, 22px);
  }

  #diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-inner h1>span {
    line-height: 1.04;
  }
}





/* Hover: fondo blanco y contenido rojo */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn {
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn-ico {
  transition: filter .2s ease;
}

#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:hover,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:focus {
  background: #FFFFFF;
  /* el borde lo dejo blanco como pediste; si lo quieres rojo, cambia a border-color:#E20512; */
  border-color: #FFFFFF;
  color: #E20512 !important;
}

#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:hover *,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:focus * {
  color: #E20512 !important;
}

/* La imagen (PNG blanco) se “tiñe” a rojo con filter en hover */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:hover .diplomados-meta__cta-btn-ico,
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:focus .diplomados-meta__cta-btn-ico {
  /* aproxima al #E20512 partiendo de un icono blanco */
  filter: brightness(0) invert(1);
}

/* En hover: el icono blanco se “tiñe” a #E20512 */
#diplomados-meta .diplomados-meta__des_rojo .diplomados-meta__cta-btn:hover .diplomados-meta__cta-btn-ico {
  filter: brightness(0) saturate(100%) invert(13%) sepia(93%) saturate(5253%) hue-rotate(352deg) brightness(90%) contrast(110%);
}


/*Responsive*/


/* Evita desbordes horizontales solo en este bloque */
#diplomados-meta {
  overflow-x: clip;
}

/* Los títulos de sección pueden partir palabras largas y nunca desbordar */
#diplomados-meta .diplomados-meta__list-title {
  overflow-wrap: anywhere;
  /* permite saltos dentro de palabras */
  word-break: break-word;
  /* fallback amplio */
  hyphens: auto;
  /* si el navegador soporta guiones */
}

/* Tamaño responsivo de los H3 de sección (sin perder 48px en desktop) */
#diplomados-meta #gestion-title,
#diplomados-meta #info-title {
  font-size: clamp(24px, 6vw, 48px) !important;
  line-height: 1.15;
}

/* Asegura full-bleed sin “bailes” por el ancho del scrollbar */
@supports (width: 100dvw) {
  #diplomados-meta .diplomados-meta__panel {
    width: 100dvw;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
  }
}

/* Un poco más de aire lateral en móviles para que nada quede “tapado” */
@media (max-width: 640px) {
  #diplomados-meta .diplomados-meta__content {
    padding-inline: clamp(18px, 5.5vw, 28px);
  }
}












/* BOOTON WHATSAPP SCROLL */

/* ============================
   FAB WhatsApp (flotante)
   ============================ */
:root {
  --wsp-size: 64px;
  /* desktop */
  --wsp-right: 20px;
  --wsp-bottom: 24px;
  /* no choca con tu botón "scroll-top" que está más arriba (117px) */
  --wsp-shadow: 0 10px 20px rgba(0, 0, 0, .18), 0 6px 6px rgba(0, 0, 0, .12);
}

.wsp-fab {
  position: fixed;
  right: var(--wsp-right);
  bottom: var(--wsp-bottom);
  z-index: 60;
  /* por encima del layout, por debajo de modales si los hubiera */
  width: var(--wsp-size);
  height: var(--wsp-size);
  display: grid;
  place-items: center;
  border-radius: 999px;
  box-shadow: var(--wsp-shadow);
  text-decoration: none;
  outline: none;
  /* Si tu PNG ya es el círculo verde, no necesitamos background. 
     Si no cargara la imagen, este color sirve de fallback: */
  background: transparent;
  transition: transform .2s ease, box-shadow .2s ease;
}

.wsp-fab__icon {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* respeta el PNG redondo */
  border-radius: inherit;
  display: block;
}

/* Hover/Focus: pequeña elevación */
.wsp-fab:hover,
.wsp-fab:focus-visible {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 14px 28px rgba(0, 0, 0, .22), 0 10px 10px rgba(0, 0, 0, .16);
}

/* Efecto pulso suave para llamar la atención */
.wsp-fab::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  animation: wsp-pulse 2.2s ease-out infinite;
  pointer-events: none;
}

@keyframes wsp-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, .45);
  }

  70% {
    box-shadow: 0 0 0 18px rgba(37, 211, 102, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

/* Respeta accesibilidad para quien reduce animaciones */
@media (prefers-reduced-motion: reduce) {
  .wsp-fab {
    transition: none;
  }

  .wsp-fab::after {
    animation: none;
  }
}

/* ---------- Responsive ---------- */
/* Tablets y móviles grandes */
@media (max-width: 1024px) {
  :root {
    --wsp-size: 130px;
    --wsp-right: 16px;
    --wsp-bottom: 18px;
  }
}

/* Móviles pequeños */
@media (max-width: 400px) {
  :root {
    --wsp-size: 120px;
    --wsp-right: 12px;
    --wsp-bottom: 12px;
  }
}