:root {
  --ink: #251b31;
  --muted: #756d7f;
  --plum: #49206f;
  --plum-deep: #35144f;
  --purple: #7943b2;
  --lilac: #f3edfa;
  --rose: #bd3478;
  --gold: #f2c145;
  --line: #e9e3ee;
  --surface: #fffefd;
  --shadow: 0 20px 60px rgba(51, 23, 76, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--surface); font-family: "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.shell { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; clip: rect(0, 0, 0, 0); overflow: hidden; }

.topline { background: #34164e; color: #e8dcf6; font-size: 12px; }
.topline__content { min-height: 35px; display: flex; align-items: center; justify-content: space-between; }
.topline a { color: white; font-weight: 700; }
.site-header { position: sticky; top: 0; z-index: 10; background: rgba(255, 254, 253, 0.93); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(73, 32, 111, 0.08); }
.nav { height: 82px; display: flex; align-items: center; gap: 35px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand img { display: block; width: 152px; height: auto; }
.nav__links { display: flex; align-items: center; gap: 25px; margin-right: auto; }
.nav__links a { color: #5d5367; font-size: 14px; font-weight: 600; padding: 10px 0; border-bottom: 2px solid transparent; }
.nav__links a:hover, .nav__links .is-active { color: var(--plum); border-color: var(--rose); }
.nav__actions { display: flex; align-items: center; gap: 20px; }
.login-link { color: var(--plum); font-size: 13px; font-weight: 700; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 46px; padding: 0 22px; background: var(--plum); color: white; border: 0; border-radius: 9px; font-size: 14px; font-weight: 700; box-shadow: 0 8px 20px rgba(73, 32, 111, 0.18); transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover { background: #5c2b88; box-shadow: 0 12px 26px rgba(73, 32, 111, 0.25); transform: translateY(-2px); }
.button--small { min-height: 39px; padding: 0 15px; font-size: 13px; }
.button--hero { background: linear-gradient(105deg, #642c9e, #a43491); min-height: 52px; padding: 0 25px; }
.button--hero span, .button--white span, .button--full span { font-size: 19px; line-height: 1; }
.menu-toggle { display: none; border: 0; background: transparent; }

.hero { position: relative; overflow: hidden; padding: 88px 0 0; background: radial-gradient(circle at 85% 20%, rgba(189, 52, 120, .10), transparent 42%), radial-gradient(circle at 70% 90%, rgba(121, 67, 178, .12), transparent 45%), linear-gradient(90deg, #fcf9ff 0%, #fffdfb 47%, #f5ecfc 100%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: var(--line); }
.hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .96fr; align-items: center; gap: 70px; min-height: 505px; }
.hero__glow { position: absolute; border-radius: 50%; filter: blur(4px); opacity: .65; }
.hero__glow--one { width: 470px; height: 470px; right: -110px; top: -200px; background: radial-gradient(circle, rgba(199, 92, 168, .22), transparent 67%); }
.hero__glow--two { width: 430px; height: 430px; left: -240px; bottom: -260px; background: radial-gradient(circle, rgba(116, 58, 179, .14), transparent 67%); }
.eyebrow, .section-kicker { color: var(--purple); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 8px; }
.eyebrow__dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 5px rgba(189, 52, 120, .12); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Manrope", sans-serif; }
h1 { margin: 17px 0 18px; max-width: 620px; color: #2b173d; font-size: clamp(39px, 4.35vw, 61px); line-height: 1.07; letter-spacing: -3.2px; }
h1 em { color: var(--rose); font-style: normal; }
.hero__copy > p { max-width: 535px; margin-bottom: 30px; color: var(--muted); font-size: 17px; line-height: 1.68; }
.hero__actions { display: flex; align-items: center; gap: 24px; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--plum); font-size: 14px; font-weight: 800; }
.play-icon { display: grid; place-items: center; width: 27px; height: 27px; padding-left: 2px; color: var(--rose); background: #f9e9f1; border-radius: 50%; font-size: 9px; }
.hero__trust { display: flex; align-items: center; gap: 11px; margin-top: 40px; }
.hero__trust p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.hero__trust strong { color: var(--ink); font-weight: 800; }
.trust-marker { display: grid; place-items: center; width: 32px; height: 32px; color: white; background: linear-gradient(135deg, #6741a0, #bb438f); border-radius: 10px; font-size: 15px; font-weight: 800; box-shadow: 0 7px 16px rgba(98, 54, 143, .22); }
.hero__principles { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 23px; }.hero__principles span { padding: 7px 10px; color: #5d506a; border: 1px solid #e8deed; border-radius: 30px; background: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; }.hero__principles span::before { content: "•"; margin-right: 5px; color: var(--rose); }

.hero__visual { position: relative; height: 420px; min-width: 0; }
.visual-orbit { position: absolute; border: 1px solid rgba(128, 68, 179, .18); border-radius: 50%; }
.visual-orbit--a { width: 405px; height: 405px; top: 4px; left: 20px; }.visual-orbit--b { width: 330px; height: 330px; top: 43px; left: 58px; border-style: dashed; }
.hero-card { position: absolute; z-index: 1; top: 41px; right: 22px; width: min(100%, 405px); padding: 28px; color: white; background: linear-gradient(142deg, #321247 0%, #61248d 57%, #b43b82 150%); border: 1px solid rgba(255,255,255,.28); border-radius: 24px; box-shadow: 0 28px 50px rgba(62, 22, 91, .29); transform: rotate(1.3deg); }
.hero-card::after { content: ""; position: absolute; right: 0; bottom: 0; width: 150px; height: 150px; background: radial-gradient(circle, rgba(255,255,255,.15), transparent 65%); }
.hero-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.hero-card__label { color: #dfc9f3; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.hero-card__top p { margin: 6px 0 0; font-size: 15px; font-weight: 700; }.hero-card__badge { padding: 6px 8px; border: 1px solid rgba(255,255,255,.25); border-radius: 20px; background: rgba(255,255,255,.1); font-size: 10px; font-weight: 800; }
.hero-card__headline { position: relative; z-index: 1; margin: 34px 0 25px; font: 700 31px/1.13 "Manrope", sans-serif; letter-spacing: -1.6px; }.hero-card__headline strong { color: #f7cd61; }.hero-card__details { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.hero-card__details div { display: grid; gap: 5px; }.hero-card__details span { color: #d9c1ed; font-size: 10px; }.hero-card__details strong { font-size: 14px; }.progress { position: relative; z-index: 1; height: 5px; margin: 23px 0 11px; overflow: hidden; background: rgba(255,255,255,.2); border-radius: 20px; }.progress span { display: block; width: 68%; height: 100%; background: #f3c457; border-radius: inherit; }.hero-card__foot { position: relative; z-index: 1; margin: 0; color: #e4d0f2; font-size: 10px; }
.floating-card { position: absolute; z-index: 2; display: flex; align-items: center; gap: 9px; padding: 10px 13px; background: rgba(255,255,255,.92); border: 1px solid rgba(83, 44, 109, .1); border-radius: 12px; box-shadow: 0 12px 30px rgba(50, 24, 73, .13); }.floating-card strong, .floating-card small { display: block; }.floating-card strong { font-size: 11px; }.floating-card small { margin-top: 2px; color: var(--muted); font-size: 9px; }.floating-card--safe { bottom: 2px; left: 4px; }.floating-card--advisor { top: 7px; left: -8px; }.floating-icon, .advisor-avatar { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; color: white; background: #45a568; font-size: 13px; font-weight: 800; }.advisor-avatar { background: linear-gradient(135deg, #dba05b, #974a53); }
.hero__bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: end; gap: 25px; padding: 25px 0 23px; color: var(--muted); font-size: 12px; }.hero__bottom > div:first-child { display: grid; gap: 3px; }.hero__bottom strong { color: var(--ink); font-size: 13px; }.hero__stats { display: flex; gap: 27px; }.hero__stats strong { color: var(--plum); }

.section { padding: 100px 0; }.section-heading { display: flex; justify-content: space-between; gap: 48px; align-items: end; margin-bottom: 39px; }.section-heading h2, .section h2 { margin: 10px 0 0; color: #2e1b40; font-size: clamp(29px, 3vw, 42px); line-height: 1.12; letter-spacing: -2.1px; }.section-heading p { max-width: 360px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.58; }
.products { background: #fff; }.products__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }.products__grid--four { grid-template-columns: repeat(4, 1fr); }.product-card { min-height: 342px; padding: 27px; border: 1px solid var(--line); border-radius: 16px; background: #fffefd; transition: box-shadow .2s, transform .2s; }.product-card:hover { box-shadow: var(--shadow); transform: translateY(-4px); }.product-card--primary { color: white; background: linear-gradient(150deg, #462069, #7438a6); border-color: transparent; }.product-card__icon { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 28px; border-radius: 12px; color: #fff; background: rgba(255,255,255,.2); font-size: 22px; font-weight: 400; }.product-card:not(.product-card--primary) .product-card__icon { color: var(--purple); background: #eee4f7; }.product-card__icon--rose { color: var(--rose) !important; background: #f9e4ee !important; }.product-card__icon--gold { color: #a86a00 !important; background: #fff0cf !important; }.product-card__icon--plum { color: #5b3182 !important; background: #ece4f5 !important; }.product-card__tag { font-size: 11px; font-weight: 800; color: #d8c6ec; text-transform: uppercase; letter-spacing: .07em; }.product-card:not(.product-card--primary) .product-card__tag { color: var(--purple); }.product-card h3 { margin: 8px 0 9px; font-size: 19px; letter-spacing: -.7px; }.product-card p { min-height: 68px; margin-bottom: 19px; color: #d9c9e9; font-size: 13px; line-height: 1.5; }.product-card:not(.product-card--primary) p { color: var(--muted); }.product-card ul { min-height: 51px; margin: 0 0 19px; padding: 0; list-style: none; }.product-card li { position: relative; padding: 0 0 5px 17px; color: #e6d8f1; font-size: 11px; }.product-card li::before { content: "✓"; position: absolute; left: 0; color: #f4ce67; font-weight: 800; }.product-card:not(.product-card--primary) li { color: #5e5569; }.product-card:not(.product-card--primary) li::before { color: var(--purple); }.product-card a { display: inline-flex; gap: 9px; color: white; font-size: 13px; font-weight: 800; }.product-card:not(.product-card--primary) a { color: var(--plum); }.products__note { margin: 21px 0 0; color: var(--muted); font-size: 12px; text-align: center; }

.process { background: #faf8fb; }.process__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 100px; }.process__intro p { max-width: 360px; margin: 17px 0 24px; color: var(--muted); line-height: 1.6; }.text-link--dark { color: var(--plum); }.steps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }.steps li { display: grid; grid-template-columns: 68px 1fr; gap: 19px; padding: 0 0 27px; position: relative; }.steps li:not(:last-child)::before { content: ""; position: absolute; top: 49px; left: 18px; width: 1px; height: calc(100% - 49px); background: #d9cae7; }.steps__number { display: grid; place-items: center; width: 38px; height: 38px; color: var(--purple); background: #eee4f6; border-radius: 50%; font-size: 12px; font-weight: 800; }.steps h3 { margin: 7px 0 5px; font-size: 16px; }.steps p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }

.orientation { padding: 0 0 100px; background: #faf8fb; }.orientation__panel { display: grid; grid-template-columns: 1.1fr .9fr; gap: 50px; align-items: center; padding: 46px 54px; color: white; background: linear-gradient(120deg, #36134f, #63258a 58%, #9a3f92); border-radius: 20px; box-shadow: 0 22px 54px rgba(49, 20, 70, .2); }.orientation__panel h2 { margin: 9px 0 13px; color: white; font-size: clamp(28px, 3vw, 40px); letter-spacing: -1.9px; }.orientation__panel p { max-width: 610px; margin: 0; color: #e5d3ee; font-size: 14px; line-height: 1.65; }.orientation__points { display: grid; gap: 12px; padding: 21px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.09); font-size: 13px; font-weight: 700; }.orientation__points span { display: flex; gap: 9px; align-items: center; }.orientation__points span::first-letter { color: #f3c457; }

.simulator-section { padding: 78px 0; color: white; background: linear-gradient(120deg, #34134d, #552179 54%, #842f86); }.simulator { display: grid; grid-template-columns: .88fr 1.12fr; gap: 76px; align-items: center; }.section-kicker--light { color: #ebd8fa; }.simulator h2 { color: white; }.simulator__copy > p { max-width: 430px; margin: 18px 0 24px; color: #dfc8ed; line-height: 1.6; }.simulator__notice { display: flex; gap: 8px; align-items: flex-start; color: #d9c4e9; font-size: 11px; line-height: 1.45; }.simulator__notice span { display: grid; place-items: center; flex: 0 0 auto; width: 16px; height: 16px; color: #512169; background: #edca63; border-radius: 50%; font-size: 11px; font-weight: 800; }.calculator { padding: 26px; color: var(--ink); background: white; border-radius: 17px; box-shadow: 0 20px 45px rgba(24, 7, 38, .25); }.calculator label { display: block; margin-bottom: 17px; color: #584b62; font-size: 12px; font-weight: 700; }.input-wrap { display: flex; align-items: center; gap: 8px; margin-top: 6px; min-height: 45px; padding: 0 12px; border: 1px solid #e2d9e8; border-radius: 8px; }.input-wrap b { color: var(--purple); }.input-wrap input[type=number] { width: 100%; border: 0; outline: 0; color: var(--ink); font-weight: 700; }.input-wrap input[type=range] { flex: 1; accent-color: var(--purple); }.input-wrap output { min-width: 67px; color: var(--plum); font-size: 12px; text-align: right; }.calculator__result { margin: 20px 0; padding: 16px; background: #f5eef9; border-radius: 9px; }.calculator__result span, .calculator__result strong, .calculator__result small { display: block; }.calculator__result span { color: var(--muted); font-size: 11px; }.calculator__result strong { margin: 4px 0; color: var(--plum); font: 800 27px "Manrope", sans-serif; letter-spacing: -1px; }.calculator__result small { color: #82758e; font-size: 9px; }.button--white { width: 100%; background: var(--plum); }

.values { background: #fff; }.values__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 110px; }.values__grid > div:first-child p { max-width: 410px; margin: 19px 0 0; color: var(--muted); line-height: 1.65; }.value-list { display: grid; gap: 22px; }.value-list > div { display: grid; grid-template-columns: 45px 1fr; gap: 17px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }.value-list > div:last-child { border: 0; }.value-list > div > span { color: var(--rose); font: 800 13px "Manrope", sans-serif; }.value-list h3 { margin: 0 0 5px; font-size: 16px; }.value-list p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.careers { padding: 92px 0; background: linear-gradient(135deg, #fbf8fc, #f4eef9); }.careers__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 90px; align-items: center; }.careers__copy h2 { max-width: 480px; margin: 11px 0 17px; color: #2e1b40; font-size: clamp(29px, 3vw, 42px); line-height: 1.12; letter-spacing: -2.1px; }.careers__copy > p { max-width: 485px; margin-bottom: 28px; color: var(--muted); font-size: 15px; line-height: 1.65; }.careers__panel { padding: 30px; border: 1px solid #e7ddea; border-radius: 18px; background: white; box-shadow: 0 15px 40px rgba(67, 30, 91, .08); }.careers__eyebrow { color: var(--purple); font-size: 12px; font-weight: 800; }.careers__panel ul { display: grid; gap: 0; margin: 20px 0 18px; padding: 0; list-style: none; }.careers__panel li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid #eee8f1; }.careers__panel li > span { display: grid; place-items: center; width: 28px; height: 28px; color: var(--purple); background: #f0e7f7; border-radius: 8px; font-size: 10px; font-weight: 800; }.careers__panel strong, .careers__panel small { display: block; }.careers__panel strong { margin: 1px 0 3px; font-size: 14px; }.careers__panel small, .careers__panel > p { color: var(--muted); font-size: 12px; line-height: 1.5; }.careers__panel > p { margin: 0; padding: 12px 14px; border-radius: 9px; background: #f7f2fa; }
.contact { padding: 0 0 95px; background: #fff; }.contact__panel { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 47px 58px; color: white; background: linear-gradient(105deg, #54227d, #8e368c); border-radius: 18px; overflow: hidden; position: relative; }.contact__panel::after { content: ""; position: absolute; width: 270px; height: 270px; right: -80px; top: -155px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.04), 0 0 0 90px rgba(255,255,255,.03); }.contact__panel > * { z-index: 1; }.contact__panel .section-kicker { color: #ecd8f7; }.contact__panel h2 { margin: 8px 0; color: white; font-size: 32px; letter-spacing: -1.5px; }.contact__panel p { margin: 0; color: #dfcaea; font-size: 14px; }.button--hero { flex-shrink: 0; }
.footer { padding: 58px 0 20px; color: #cbb9d7; background: #281137; }.footer__grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 34px; }.brand--footer { width: fit-content; padding: 7px 10px; background: white; border-radius: 10px; }.brand--footer img { width: 158px; }.footer p { max-width: 240px; margin: 15px 0 0; color: #bdaac9; font-size: 12px; line-height: 1.55; }.footer h3 { margin: 5px 0 15px; color: white; font-size: 13px; }.footer a:not(.brand) { display: block; margin-bottom: 9px; color: #cdbbd8; font-size: 12px; }.footer a:hover { color: white; }.footer__bottom { display: flex; justify-content: space-between; margin-top: 42px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.12); color: #9d88aa; font-size: 10px; }

.contact-dialog { width: min(440px, calc(100% - 30px)); padding: 30px; border: 0; border-radius: 16px; color: var(--ink); box-shadow: 0 24px 80px rgba(19, 7, 29, .35); }.contact-dialog::backdrop { background: rgba(32, 14, 45, .58); backdrop-filter: blur(3px); }.contact-dialog h2 { margin: 9px 0 7px; color: var(--plum); font-size: 25px; letter-spacing: -1.2px; }.contact-dialog > p { color: var(--muted); font-size: 13px; line-height: 1.5; }.dialog-close { position: absolute; top: 12px; right: 13px; width: 28px; height: 28px; border: 0; border-radius: 50%; color: var(--plum); background: #f2ebf7; font-size: 21px; }.contact-dialog form { display: grid; gap: 13px; margin-top: 19px; }.contact-dialog label { display: grid; gap: 6px; color: #554863; font-size: 12px; font-weight: 700; }.contact-dialog input, .contact-dialog select { width: 100%; height: 42px; padding: 0 11px; border: 1px solid #ded4e5; border-radius: 7px; outline-color: var(--purple); background: white; color: var(--ink); font-size: 13px; }.button--full { width: 100%; margin-top: 5px; }.form-success { padding: 12px; color: #23673a !important; background: #e8f8ec; border-radius: 8px; font-weight: 600; }

@media (max-width: 1080px) { .products__grid--four { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 920px) {
  .nav { gap: 20px; }.nav__links { gap: 16px; }.login-link { display: none; }.hero__grid { gap: 25px; }.hero__visual { transform: scale(.92); transform-origin: right center; }.process__grid, .values__grid { gap: 55px; }.orientation__panel { gap: 30px; padding: 38px; }.hero__stats { gap: 15px; }
}
@media (max-width: 730px) {
  .shell { width: min(100% - 34px, 560px); }.topline__content { font-size: 10px; }.topline__content a { display: none; }.nav { height: 66px; justify-content: space-between; }.brand img { width: 128px; }.menu-toggle { display: grid; gap: 4px; padding: 10px; }.menu-toggle span:not(.sr-only) { display: block; width: 20px; height: 2px; background: var(--plum); }.nav__links { display: none; position: absolute; top: 66px; right: 17px; left: 17px; padding: 12px 19px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }.nav__links.is-open { display: grid; gap: 2px; }.nav__links a { padding: 9px 0; }.nav__actions { display: none; }.hero { padding-top: 55px; }.hero__grid { grid-template-columns: 1fr; min-height: 0; }.hero__copy > p { font-size: 15px; }.hero__visual { height: 360px; margin: 10px -10px 0; transform: scale(.87); transform-origin: center top; }.hero-card { right: 4px; }.floating-card--safe { left: 0; }.hero__bottom { display: block; padding: 9px 0 22px; }.hero__stats { flex-wrap: wrap; margin-top: 13px; }.section { padding: 70px 0; }.section-heading, .process__grid, .values__grid, .orientation__panel, .careers__grid { grid-template-columns: 1fr; gap: 27px; }.section-heading { display: grid; }.section-heading p { max-width: 500px; }.products__grid, .products__grid--four { grid-template-columns: 1fr; }.product-card { min-height: 0; }.product-card p, .product-card ul { min-height: auto; }.process__grid, .values__grid { gap: 37px; }.orientation { padding-bottom: 70px; }.orientation__panel { padding: 32px 26px; }.careers { padding: 70px 0; }.careers__panel { padding: 24px; }.simulator-section { padding: 65px 0; }.contact { padding-bottom: 70px; }.contact__panel { display: grid; padding: 32px 26px; }.contact__panel h2 { font-size: 28px; }.footer__grid { grid-template-columns: 1fr 1fr; }.footer__grid > div:first-child { grid-column: 1 / -1; }.footer__bottom { display: grid; gap: 6px; }.contact-dialog { padding: 25px; }
}
@media (max-width: 390px) { h1 { font-size: 37px; letter-spacing: -2.4px; }.hero__actions { align-items: flex-start; flex-direction: column; gap: 14px; }.hero__visual { transform: scale(.77); height: 315px; }.hero__stats { font-size: 11px; }.footer__grid { grid-template-columns: 1fr; }.footer__grid > div:first-child { grid-column: auto; } }

/* ---- 29/09/2026: contacto, privacidad y WhatsApp ---- */
.contact__info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; margin-top: 22px; }
.contact__item { display: flex; gap: 14px; align-items: flex-start; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fffefd; }
.contact__item strong { display: block; margin-bottom: 6px; color: var(--ink); font-size: 14px; }
.contact__item span:not(.contact__icon), .contact__item a { display: block; color: var(--muted); font-size: 13px; line-height: 1.6; }
.contact__item a { color: var(--plum); font-weight: 800; font-size: 15px; }
.contact__item a.contact__call { font-size: 12px; font-weight: 700; color: var(--rose); }
.contact__icon { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; color: var(--purple); background: #eee4f7; border-radius: 11px; font-size: 18px; }
.legal { padding: 0 0 80px; background: #fff; }
.legal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.legal__grid > div { padding: 24px 26px; border-radius: 14px; background: #faf8fb; }
.legal h2 { margin: 0 0 8px; color: #2e1b40; font-size: 17px; letter-spacing: -.4px; }
.legal p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.form-success a { color: inherit; text-decoration: underline; }
/* El "display: grid" del formulario le ganaba al atributo hidden: el
   formulario no se escondia despues de enviar. */
.contact-dialog form[hidden], .form-success[hidden] { display: none; }
.whatsapp-float { position: fixed; right: 20px; bottom: 20px; z-index: 20; display: grid; place-items: center; width: 56px; height: 56px; color: white; background: #25d366; border-radius: 50%; box-shadow: 0 10px 24px rgba(20, 90, 50, .3); transition: transform .2s; }
.whatsapp-float:hover { transform: scale(1.06); }
@media (max-width: 730px) {
  .contact__info, .legal__grid { grid-template-columns: 1fr; }
  .legal { padding-bottom: 60px; }
  /* En celular la tarjetita "Condiciones claras" tapaba "Te escuchamos". */
  .floating-card--safe { display: none; }
  /* Arriba, en celular, va el WhatsApp en vez del horario. */
  .topline__content span { display: none; }
  .topline__content a { display: inline; margin-left: auto; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 52px; height: 52px; }
}

/* ---- 29/09/2026: Libro de Reclamaciones virtual ---- */
.libro-volver { margin-left: auto; color: var(--plum); font-size: 14px; font-weight: 700; }
.libro { padding: 50px 0 80px; background: #faf8fb; }
.libro .shell { width: min(860px, calc(100% - 48px)); }
.libro__intro h1 { margin: 10px 0 12px; font-size: clamp(32px, 4vw, 44px); letter-spacing: -1.8px; }
.libro__aviso { max-width: 700px; margin-bottom: 26px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.libro__alerta { margin-bottom: 20px; padding: 14px 16px; color: #6b4a00; background: #fff4d6; border: 1px solid #f2d68a; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.libro__alerta a { color: inherit; font-weight: 800; text-decoration: underline; }
.hoja { padding: 30px; background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 15px 40px rgba(67, 30, 91, .07); }
.hoja__cabecera { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 16px; border-bottom: 2px solid var(--plum); }
.hoja__cabecera > div:first-child { display: grid; gap: 3px; }
.hoja__cabecera > div:first-child strong { color: var(--plum); font: 800 18px "Manrope", sans-serif; }
.hoja__cabecera > div:first-child span { color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.hoja__numero { display: grid; grid-template-columns: auto auto; gap: 3px 10px; align-content: start; font-size: 13px; }
.hoja__numero span { color: var(--muted); }
.hoja__numero strong { color: var(--ink); }
.hoja__proveedor { display: grid; gap: 2px; margin: 14px 0 6px; color: var(--muted); font-size: 13px; }
.hoja__proveedor strong { color: var(--ink); }
.hoja__bloque { margin: 18px 0 0; padding: 16px 18px 18px; border: 1px solid var(--line); border-radius: 12px; }
.hoja__bloque legend { padding: 0 6px; color: var(--plum); font-size: 13px; font-weight: 800; }
.hoja__bloque--proveedor { background: #faf8fb; }
.hoja__bloque--proveedor p { margin: 0; color: var(--muted); font-size: 13px; }
.hoja__campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hoja__ancho { grid-column: 1 / -1; }
.hoja label:not(.hoja__check) { display: grid; gap: 6px; color: #554863; font-size: 12px; font-weight: 700; }
.hoja input:not([type=checkbox]):not([type=radio]), .hoja select, .hoja textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #ded4e5; border-radius: 7px; outline-color: var(--purple); background: white; color: var(--ink); font: inherit; font-size: 14px; }
.hoja textarea { resize: vertical; }
.hoja small { color: var(--muted); font-weight: 500; }
.hoja__opciones { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-bottom: 12px; }
.hoja__check { display: flex; gap: 9px; align-items: flex-start; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.4; }
.hoja__check input { margin-top: 3px; accent-color: var(--purple); }
.hoja__declaraciones { margin-top: 20px; }
.hoja__declaraciones .hoja__check { font-weight: 500; font-size: 13px; }
.hoja__datos { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.hoja__datos a { color: var(--plum); font-weight: 700; text-decoration: underline; }
.hoja__verificacion { margin-top: 18px; min-height: 65px; }
.legal p + p { margin-top: 10px; }
.hoja__trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hoja__error { margin: 18px 0 0; padding: 12px 14px; color: #8d1f3a; background: #fdecef; border-radius: 8px; font-size: 14px; font-weight: 600; }
.hoja .button--full { margin-top: 20px; }
.hoja .button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.hoja__notas { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.hoja__notas p { margin: 0 0 6px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.hoja__exito { display: grid; gap: 6px; margin-bottom: 22px; padding: 16px 18px; color: #1f5a33; background: #e8f8ec; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.hoja__tabla { width: 100%; margin-top: 12px; border-collapse: collapse; font-size: 13px; }
.hoja__tabla th, .hoja__tabla td { padding: 8px 10px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.hoja__tabla th { width: 34%; color: #554863; background: #faf8fb; font-weight: 700; }
.hoja__tabla td.hoja__titulo { color: var(--plum); background: #f3edfa; font-weight: 800; }
.hoja__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 24px; }
.footer--libro { padding: 0 0 20px; }
.footer--libro .footer__bottom { margin-top: 0; }
.footer--libro a { color: #cdbbd8; }
.libro-boton { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 14px; color: var(--plum); background: white; border: 1px solid #e1d5ea; border-radius: 10px; font-size: 13px; font-weight: 800; }
.libro-boton svg { flex: 0 0 auto; }
@media (max-width: 730px) {
  .libro { padding-top: 34px; }
  .libro .shell { width: calc(100% - 28px); }
  .hoja { padding: 20px 16px; }
  .hoja__cabecera { display: grid; }
  .hoja__campos { grid-template-columns: 1fr; }
  .hoja__tabla th { width: 40%; }
}
@media print {
  .site-header, .footer, .libro__intro, .libro__alerta, .no-imprimir, .whatsapp-float { display: none !important; }
  .libro { padding: 0; background: white; }
  .hoja { border: 0; box-shadow: none; padding: 0; }
  .hoja__exito { background: none; padding: 0; color: #000; }
}
/* El "display: grid" de las etiquetas le ganaba al atributo hidden. */
.hoja [hidden], .libro [hidden] { display: none !important; }
