:root {
  --ink: #17202a;
  --muted: #667482;
  --line: #d9e0e7;
  --soft: #f5f7f9;
  --panel: #ffffff;
  --graphite: #111922;
  --graphite-2: #1d2731;
  --brand: #78c8dd;
  --brand-dark: #44687a;
  --brand-soft: #dff4f8;
  --steel: #8795a4;
  --white: #fff;
  --radius: 8px;
}
.category-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; margin-bottom: 1.2rem; border-radius: 3px; }
.structure-map { max-width: 1100px; display: grid; gap: .7rem; }
.structure-fixed { padding: 1rem; background: #e4edf1; border-left: 3px solid #78949f; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; }
.structure-zone { padding: .8rem 1rem; border-left: 2px solid var(--brand); background: #edf6f8; }
.structure-zone-heading { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; align-items: center; }
.structure-zone h2 { font-size: .9rem; margin: 0; }
.structure-empty { margin: .65rem 0 0; font-size: .8rem; color: var(--muted); }
.structure-record { margin-top: .65rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.structure-record > div:first-child { display: grid; gap: .3rem; }
.structure-record small,.structure-record span { color: var(--muted); font-size: .75rem; }
.structure-record.is-draft { border-style: dashed; background: #f6f7f8; }
.structure-actions,.structure-actions form { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.structure-actions select { width: 220px; max-width: 100%; }
.module-split-reverse > img { grid-column: 1; grid-row: 1; }
.module-split-reverse > div { grid-column: 2; grid-row: 1; }
.module-mini-split-reverse { transform: scaleX(-1); }
.module-mini-split-reverse { grid-template-columns: 1fr .74fr; grid-template-rows: repeat(3, 1fr); }
.module-mini-split-reverse i,.module-mini-split-reverse b,.module-mini-split-reverse em { grid-column: 1; }
.module-mini-split-reverse::after { content: ""; grid-column: 2; grid-row: 1 / 4; background: #a8bbc8; border-radius: 4px; }
@media (max-width: 991px) {
 .module-split-reverse > img,.module-split-reverse > div { grid-column: auto; grid-row: auto; }
 .module-split-reverse > img { order: -1; }
}
.home-format-guide { margin-bottom: 1.5rem; }
.home-format-guide h2 { font-size: 1.15rem; margin-bottom: 1rem; }
.home-format-card { cursor: default; }
.home-format-card.is-current { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-soft); }
.home-format-card:hover { transform: none; }
.admin-sidebar { align-self: start; position: sticky; top: 0; max-height: 100vh; overflow-y: auto; min-height: 100vh; }
.admin-sidebar nav { display: flex; flex-direction: column; gap: 4px; }
.admin-sidebar nav a { display: block; font-size: .85rem; padding: .48rem .7rem; }
.admin-nav-group { padding-top: .9rem; margin-top: .4rem; border-top: 1px solid #ffffff18; }
.admin-nav-group h2 { font-size: .7rem; font-weight: 700; color: #78c8dd; padding: 0 .7rem; margin: 0 0 .45rem; text-transform: uppercase; }
.admin-sidebar a[aria-current="page"] { color: #b8eff9; background: #78c8dd20; box-shadow: inset 3px 0 #78c8dd; }
.admin-signout { margin-top: .8rem; }
.admin-main { min-width: 0; }
.admin-stat-link { display: block; color: var(--ink); transition: border-color .15s, background .15s; }
.admin-stat-link small { display: block; margin-top: .5rem; color: var(--brand-dark); }
.admin-stat-link:hover { border-color: var(--brand); background: #f1fbfd; color: var(--ink); }
.dashboard-workspace { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 2rem; margin-top: 2rem; align-items: start; }
.dashboard-section { margin-bottom: 2rem; }
.dashboard-section h2,.dashboard-inbox h2 { font-size: 1.15rem; font-weight: 600; margin: 0 0 1rem; }
.dashboard-shortcuts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.dashboard-shortcut { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; padding: .9rem; background: #fff; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); font-size: .88rem; }
.dashboard-shortcut img { width: 100%; height: 86px; object-fit: cover; border-radius: 3px; }
.dashboard-shortcut:hover { border-color: var(--brand); background: #f1fbfd; }
.dashboard-shortcut span:first-of-type { flex: 1; overflow-wrap: anywhere; }
.dashboard-inbox { border-top: 3px solid var(--brand); padding-top: 1rem; }
.dashboard-inbox-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; }
.dashboard-inbox-heading a { font-size: .8rem; }
.dashboard-message { display: grid; gap: .35rem; padding: 1rem 0; border-bottom: 1px solid var(--line); color: var(--ink); overflow-wrap: anywhere; }
.dashboard-message small,.dashboard-message span,.dashboard-message p,.dashboard-empty p { color: var(--muted); font-size: .85rem; }
.dashboard-message p { margin: 0; }
.dashboard-empty { padding: 1.5rem 0; }
.admin-body a:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
@media(max-width:1100px) { .dashboard-workspace { grid-template-columns: 1fr; } }
@media(max-width:991px) { .admin-sidebar { position: static; max-height: none; min-height: auto; } .admin-sidebar nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; } }
@media(max-width:575px) { .dashboard-shortcuts { grid-template-columns: repeat(2,minmax(0,1fr)); } .admin-sidebar nav { grid-template-columns: 1fr; } }
.course-list-image { width: 240px; aspect-ratio: 16 / 9; object-fit: cover; flex-shrink: 0; }
.item-card:has(.course-list-image) > div { flex: 1; }
@media (max-width: 991px) { .course-list-image { width: 100%; max-width: 480px; } }
* { box-sizing: border-box; }
html { overflow-x: hidden; overscroll-behavior-x: none; }
@supports (overflow: clip) {
  html { overflow-x: clip; }
}
body:not(.admin-body):not(.admin-login-body) { width: 100%; min-width: 0; overflow-x: hidden; }
@supports (overflow: clip) {
  body:not(.admin-body):not(.admin-login-body) { overflow-x: clip; }
}
.site-footer, .content-body, .page-module, .contact-panel { overflow-wrap: anywhere; }
.site-footer img, .content-body img, .content-body video, .content-body iframe { max-width: 100%; }
.content-body img, .content-body video { height: auto; }
.module-split > *, .item-card > *, .contact-soft-inner > * { min-width: 0; }
.content-body pre { max-width: 100%; overflow-x: auto; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--background, #fff); font-family: var(--font-body, "Montserrat"), "Segoe UI", Arial, Helvetica, sans-serif; letter-spacing: -.015em; }
a { color: var(--brand-dark); text-decoration: none; }
a:hover { color: #1f5368; }
.site-header { background: var(--header-background-alpha, var(--graphite)); border-bottom: 1px solid rgba(255,255,255,var(--header-border-alpha,.12)); box-shadow: 0 10px 30px rgba(0,0,0,var(--header-shadow-alpha,.18)); }
.navbar { min-height: 72px; }
.navbar-brand { display: inline-flex; align-items: center; padding: 0; }
.brand-logo { display: block; width: min(188px, 48vw); height: auto; object-fit: contain; }
.nav-link { color: rgba(255,255,255,.78); font-size: .84rem; font-weight: 600; letter-spacing: -.025em; }
.nav-link.active, .nav-link:hover { color: var(--brand); }
.navbar-toggler { border-color: rgba(255,255,255,.28); }
.navbar-toggler-icon { filter: invert(1) grayscale(1); }
.btn { border-radius: 2px; font-weight: 600; letter-spacing: -.02em; }
.btn-accent { color: #081018; background: var(--brand); border-color: var(--brand); padding-inline: 1.55rem; }
.btn-accent:hover { color: #081018; background: #9ce2ef; border-color: #9ce2ef; }
.btn-darkline { color: var(--ink); background: transparent; border: 1px solid #263441; padding: .82rem 1.15rem; }
.btn-darkline:hover { color: var(--white); background: var(--graphite); border-color: var(--graphite); }
.home-slider, .carousel, .carousel-inner, .carousel-item { min-height: clamp(560px, 74vh, 820px); }
.carousel-item { position: relative; color: var(--white); }
.slide-bg { position: absolute; inset: 0; background-position: center; background-size: cover; }
.slide-bg::after { content: ""; position: absolute; inset: auto 0 0; height: 32%; background: linear-gradient(0deg, rgba(8,16,24,.76), transparent); }
.slide-content { position: relative; z-index: 2; display: flex; min-height: clamp(560px, 74vh, 820px); max-width: 1180px; flex-direction: column; justify-content: center; align-items: flex-start; padding-top: 5rem; padding-bottom: 6rem; }
.slide-content h1, .page-hero h1 { max-width: 720px; margin: 0 0 1.1rem; font-size: clamp(2.05rem, 3.45vw, 3.55rem); line-height: 1.14; font-weight: 500; letter-spacing: -.045em; }
.slide-content h1 { text-wrap: balance; }
.lead { max-width: 650px; color: rgba(255,255,255,.84); font-size: clamp(1rem, 1.28vw, 1.14rem); font-weight: 300; line-height: 1.75; letter-spacing: -.025em; }
.carousel-indicators { right: auto; bottom: 2.1rem; left: calc((100vw - min(1140px, calc(100vw - 24px))) / 2); justify-content: flex-start; margin: 0; }
.carousel-indicators [data-bs-target] { width: 42px; height: 3px; border: 0; background-color: rgba(255,255,255,.68); }
.carousel-indicators .active { background-color: var(--brand); }
.carousel-control-prev, .carousel-control-next { width: 5%; }
.eyebrow { margin: 0 0 .9rem; color: var(--brand); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.section { padding: clamp(4.5rem, 8vw, 7.25rem) 0; }
.spacious-section { background: #fff; }
.section-intro { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.section-intro h2, .showcase-copy h2, .training-copy h2, .trust-section h2, .contact-soft h2 { margin: 0; font-size: clamp(1.8rem, 2.8vw, 3rem); line-height: 1.16; font-weight: 500; letter-spacing: -.04em; text-wrap: balance; }
.section-copy { color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.area-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.area-tile { display: flex; min-height: 225px; flex-direction: column; justify-content: flex-end; padding: 1.5rem; border-right: 1px solid var(--line); color: var(--ink); transition: background .2s ease, color .2s ease; }
.area-tile:last-child { border-right: 0; }
.area-tile span { color: var(--brand-dark); font-size: .72rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.area-tile strong { display: block; margin: .65rem 0 .5rem; font-size: 1.35rem; font-weight: 500; letter-spacing: -.04em; }
.area-tile small { color: var(--muted); font-size: .94rem; line-height: 1.45; letter-spacing: -.025em; }
.area-tile:hover { color: var(--white); background: var(--graphite); }
.area-tile:hover span, .area-tile:hover small { color: rgba(255,255,255,.78); }
.split-showcase { padding: 0; background: var(--soft); }
.showcase-image { min-height: 560px; background-position: center; background-size: cover; }
.showcase-copy { display: flex; min-height: 560px; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 6.5rem); background: #f8fafc; }
.showcase-copy p { max-width: 660px; color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.content-body { max-width: 720px; color: #2d3742; font-size: 1.02rem; line-height: 1.75; }
.training-band { min-height: 520px; display: flex; align-items: center; background-position: center; background-size: cover; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.training-copy { max-width: 560px; padding: clamp(4rem, 8vw, 7rem) 0; }
.training-copy p { color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.trust-section { padding: clamp(4rem, 7vw, 6rem) 0; color: var(--white); background: linear-gradient(115deg, rgba(17,25,34,.96), rgba(40,55,68,.92)), url('../img/hero-arquicad-premium.png.webp') center/cover; }
.trust-section p { color: rgba(255,255,255,.76); font-size: 1.08rem; line-height: 1.7; }
.trust-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.14); }
.trust-points span { min-height: 128px; display: grid; place-items: center; padding: 1rem; background: rgba(17,25,34,.62); color: rgba(255,255,255,.9); text-align: center; font-weight: 700; }
.contact-soft { background: #fff; }
.contact-soft-inner { display: flex; gap: 2rem; align-items: center; justify-content: space-between; padding: clamp(2rem, 5vw, 4rem) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contact-soft p { margin-bottom: 0; color: var(--muted); }
.page-hero { padding: clamp(4rem, 7vw, 6.5rem) 0; color: var(--white); background: linear-gradient(115deg, #111922, #2a3a49); }
.page-hero p:not(.eyebrow) { max-width: 800px; color: rgba(255,255,255,.82); font-size: 1.2rem; }
.feature-card, .item-card, .side-panel, .contact-panel { height: 100%; padding: 1.35rem; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.feature-card span, .item-kicker { display: block; margin-bottom: .6rem; color: var(--brand-dark); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.feature-card h2, .feature-card h3, .item-card h2, .side-panel h2, .contact-panel h2 { margin: 0 0 .75rem; font-size: 1.25rem; font-weight: 700; }
.feature-card p, .item-card p, .contact-panel p, .side-panel p { color: var(--muted); }
.list-grid, .cards-grid { display: grid; gap: 1rem; }
.list-item { display: block; padding: 1rem 1.15rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.list-item:hover { border-color: var(--brand); box-shadow: 0 14px 28px rgba(61,82,101,.1); }
.list-item strong, .list-item span { display: block; }
.list-item span { color: var(--muted); }
.cta-band { display: flex; gap: 2rem; align-items: center; justify-content: space-between; padding: clamp(1.5rem, 5vw, 3rem); color: var(--white); background: linear-gradient(110deg, #111922, #304556); border-radius: var(--radius); }
.item-card { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; }
.side-panel { position: sticky; top: 92px; }
.contact-form label { margin-bottom: .35rem; font-weight: 800; }
.hp-field { position: absolute; left: -9999px; }
.site-footer { padding: 4rem 0 2rem; color: rgba(255,255,255,.78); background: #101820; }
.site-footer h2, .site-footer h3 { color: var(--white); font-weight: 700; }
.site-footer h3 { font-size: 1rem; }
.site-footer ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.site-footer a { color: rgba(255,255,255,.82); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); }
.admin-login-body { display: grid; min-height: 100vh; place-items: center; padding: 1rem; background: var(--soft); }
.login-card, .install-card { width: min(100%, 460px); padding: 2rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.login-card h1, .install-card h1 { margin-bottom: 1.5rem; font-weight: 800; }
.admin-body { background: var(--soft); }
.admin-shell { display: grid; min-height: 100vh; grid-template-columns: 250px 1fr; }
.admin-sidebar { padding: 1.25rem; color: var(--white); background: #101820; }
.admin-brand { display: block; margin-bottom: 1.5rem; color: var(--white); font-weight: 800; }
.admin-sidebar nav { display: grid; gap: .35rem; }
.admin-sidebar a { padding: .65rem .75rem; color: rgba(255,255,255,.82); border-radius: 6px; }
.admin-sidebar a:hover { color: var(--white); background: rgba(255,255,255,.09); }
.admin-main { padding: clamp(1rem, 3vw, 2rem); }
.admin-top { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.admin-top h1 { margin: 0; font-weight: 800; }
.admin-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
.admin-card, .admin-form, .table-responsive { padding: 1rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.admin-card span, .admin-card strong { display: block; }
.admin-card strong { margin-top: .35rem; font-size: 2rem; }
@media (max-width: 991px) {
  .area-row, .trust-points { grid-template-columns: 1fr 1fr; }
  .showcase-image, .showcase-copy { min-height: auto; }
  .showcase-image { aspect-ratio: 16 / 9; }
  .contact-soft-inner, .cta-band, .item-card { align-items: flex-start; flex-direction: column; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: static; }
  .admin-sidebar nav { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
}
@media (max-width: 575px) {
  .home-slider, .carousel, .carousel-inner, .carousel-item, .slide-content { min-height: 590px; }
  .brand-logo { width: 174px; }
  .carousel-control-prev, .carousel-control-next { display: none; }
  .area-row, .trust-points { grid-template-columns: 1fr; }
  .area-tile { min-height: 180px; border-right: 0; border-bottom: 1px solid var(--line); }
}

.premium-hero .btn { width: auto; min-width: 230px; max-width: 100%; }

.area-row-visual { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.55rem); border: 0; }
.area-tile-visual { min-height: auto; padding: 0; border: 1px solid var(--line); background: #fff; overflow: hidden; }
.area-tile-visual figure { position: relative; aspect-ratio: 16 / 9.25; min-height: 0; margin: 0; overflow: hidden; background: #e9eef2; }
.area-tile-visual figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,25,34,.02), rgba(17,25,34,.34)); }
.area-image { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.area-tile-body { padding: 1.45rem; }
.area-icon { position: absolute; left: 1rem; bottom: 1rem; z-index: 2; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.82); background: rgba(11,18,25,.6); backdrop-filter: blur(8px); }
.area-icon svg { width: 24px; height: 24px; fill: none; stroke: #b9f0fb; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.area-icon img { width: 26px; height: 26px; object-fit: contain; }
.area-tile-visual:hover figure::after { background: linear-gradient(180deg, rgba(17,25,34,.08), rgba(17,25,34,.55)); }
.area-tile-visual:hover .area-tile-body { background: var(--graphite); }
@media (max-width: 575px) { .area-tile-visual figure { position: relative; aspect-ratio: 16 / 9.25; min-height: 0; margin: 0; overflow: hidden; background: #e9eef2; } }



/* Refinements 2026-10-14 */
body { letter-spacing: -.025em; }
p, li, input, textarea, select, .form-control, .form-select { letter-spacing: -.02em; }
.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .nav-link.show,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .nav-link:active { color: var(--brand) !important; }
.btn-outline-primary,
.item-card .btn-outline-primary {
  color: #0d202a;
  border-color: var(--brand);
  background: transparent;
  box-shadow: none;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active {
  color: #081018 !important;
  border-color: var(--brand) !important;
  background: var(--brand) !important;
}
.feature-card a {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 38px;
  margin-top: .6rem;
  padding: .55rem .9rem;
  color: #0d202a;
  border: 1px solid var(--brand);
  border-radius: 2px;
  font-weight: 700;
}
.feature-card a:hover { color: #081018; background: var(--brand); }
.area-row-visual {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.2rem, 2.15vw, 1.8rem);
  align-items: stretch;
  border: 0;
}
.area-tile-visual {
  min-height: auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0;
  border: 1px solid var(--line);
  background: #fff;
  overflow: hidden;
}
.area-tile-visual figure {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9.25;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #e9eef2;
}
.area-tile-body { flex: 1; padding: 1.45rem; }
.area-image { width: 100%; height: 100%; display: block; object-fit: cover; }
.page-modules { display: grid; gap: clamp(2rem, 5vw, 4rem); margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.page-module h2 { margin: 0 0 .9rem; font-size: clamp(1.65rem, 2.2vw, 2.4rem); line-height: 1.15; font-weight: 500; letter-spacing: -.045em; }
.page-module p { color: var(--muted); line-height: 1.72; }
.module-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 44%); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.module-split img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid var(--line); }
.module-band { min-height: 360px; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4rem); color: #fff; background-position: center; background-size: cover; }
.module-band p { max-width: 620px; color: rgba(255,255,255,.82); }
.module-text { max-width: 840px; }
@media (max-width: 991px) {
  .area-row-visual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .module-split { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .area-row-visual { grid-template-columns: 1fr; gap: 1rem; }
  .area-tile-visual figure { aspect-ratio: 16 / 10; }
}

/* Admin visual page builder */
.page-hero-image {
  background-position: center;
  background-size: cover;
}
.module-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: .9rem;
}
.module-type-card {
  position: relative;
  display: grid;
  gap: .7rem;
  min-height: 190px;
  padding: 1rem;
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.module-type-card:hover {
  border-color: var(--brand);
  box-shadow: 0 14px 28px rgba(40, 62, 78, .08);
  transform: translateY(-1px);
}
.module-type-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.module-type-card:has(input:checked) {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(120, 200, 221, .22);
}
.module-type-card strong {
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.2;
}
.module-type-card small {
  color: var(--muted);
  line-height: 1.45;
}
.module-mini {
  display: grid;
  gap: .35rem;
  height: 82px;
  padding: .7rem;
  overflow: hidden;
  background: linear-gradient(135deg, #f5f8fa, #e7eef3);
  border: 1px solid #dce5ec;
  border-radius: 6px;
}
.module-mini i,
.module-mini b,
.module-mini em {
  display: block;
  min-height: 9px;
  background: #a8bbc8;
  border-radius: 2px;
}
.module-mini i { width: 34%; background: var(--brand); }
.module-mini b { width: 76%; }
.module-mini em { width: 58%; }
.module-mini-lines { align-content: center; }
.module-mini-split {
  grid-template-columns: 1fr .74fr;
  grid-template-rows: repeat(3, 1fr);
}
.module-mini-split i,
.module-mini-split b,
.module-mini-split em { grid-column: 1; }
.module-mini-split::after {
  content: "";
  grid-column: 2;
  grid-row: 1 / 4;
  background: linear-gradient(135deg, #91a8b8, #c9d6dd);
  border-radius: 4px;
}
.module-mini-band {
  align-content: end;
  background: linear-gradient(135deg, #1a2530, #526979);
}
.module-mini-band i { background: var(--brand); }
.module-mini-band b,
.module-mini-band em { background: rgba(255,255,255,.72); }
.module-mini-cta {
  grid-template-columns: 1fr .48fr;
  align-content: center;
  background: linear-gradient(110deg, #111922, #304556);
}
.module-mini-cta i,
.module-mini-cta b { grid-column: 1; background: rgba(255,255,255,.72); }
.module-mini-cta em {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  height: 24px;
  background: var(--brand);
}
@media (max-width: 575px) {
  .module-type-card { min-height: auto; }
}

/* Admin rich text editor */
.admin-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  padding: .55rem;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
}
.admin-editor-toolbar button {
  min-height: 34px;
  padding: .35rem .65rem;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-weight: 700;
}
.admin-editor-toolbar button:hover { border-color: var(--brand); background: var(--brand-soft); }
.admin-rich-editor {
  min-height: 180px;
  padding: .85rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0 0 6px 6px;
  outline: none;
  line-height: 1.65;
}
.admin-rich-editor:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 .2rem rgba(120, 200, 221, .22);
}
.admin-rich-editor h2 { margin: .4rem 0 .75rem; font-size: 1.45rem; }
.admin-rich-editor p { margin: 0 0 .75rem; }
.admin-rich-source { display: none; }
.logo-band { min-width: 0; padding-block: 1.25rem; }
.logo-band-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.logo-band-heading h2 { margin-bottom: 0; }
.logo-band-controls { display: flex; gap: .4rem; }
.logo-band-controls button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 3px; background: #fff; color: var(--ink); }
.logo-band-controls button:hover { background: var(--brand-soft); border-color: var(--brand); }
.logo-band-track { display: flex; gap: 24px; list-style: none; margin: 0; padding: 1rem 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; max-width: 100%; }
.logo-band-track::-webkit-scrollbar { display: none; }
.logo-band-item { flex: 0 0 calc((100% - 96px) / 5); min-width: 0; height: 124px; scroll-snap-align: start; display: grid; place-items: center; background: #fff; padding: 12px; }
.logo-band-item a { display: grid; place-items: center; width: 100%; height: 100%; }
.logo-band-item img { display: block; width: auto; height: auto; max-width: 100%; max-height: 96px; object-fit: contain; justify-self: center; }
.logo-band a:focus-visible,.logo-band button:focus-visible,.logo-band-track:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.logo-admin h3 { font-size: 1.1rem; }
.logo-admin-row { padding: 1rem 0; margin-bottom: .75rem; border-bottom: 1px solid var(--line); }
.logo-admin-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.logo-admin-fields label { display: grid; gap: .4rem; }
.logo-admin-actions { display: flex; gap: .5rem; margin-top: .75rem; }
@media (max-width: 991px) { .logo-band-item { flex-basis: calc((100% - 48px) / 3); } }
@media (max-width: 575px) { .logo-band-item { flex-basis: calc((100% - 24px) / 2); height: 104px; } .logo-admin-fields { grid-template-columns: 1fr; } }
.content-body-full { width: 100%; max-width: none; }
.content-body-full p { hyphens: auto; }
.editor-align-icon { width: 20px; height: 18px; display: flex; flex-direction: column; justify-content: space-around; }
.editor-align-icon i { display: block; width: 100%; height: 2px; background: currentColor; }
.editor-align-icon:not(.justifyFull) i:nth-child(2) { width: 65%; }
.editor-align-icon.justifyCenter { align-items: center; }
.editor-align-icon.justifyRight { align-items: flex-end; }

@media (max-width: 767.98px) {
  .site-header .container,
  main .container,
  .site-footer .container {
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
  }
  .slide-content {
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
  }
  .carousel-indicators { left: max(20px, env(safe-area-inset-left)); }
  .showcase-copy {
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
  }
}
.footer-logo { width: 220px; max-width: 100%; height: auto; display: block; margin-bottom: 1rem; }
.whatsapp-floating { position: fixed; bottom: max(20px, env(safe-area-inset-bottom)); right: max(20px, env(safe-area-inset-right)); width: 64px; height: 64px; z-index: 1031; transition: transform .15s ease; }
.whatsapp-floating img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 3px 5px #0003); }
.whatsapp-floating:hover { transform: translateY(-3px); }
.whatsapp-floating:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.faq-item { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.faq-item summary { cursor: pointer; font-weight: 600; padding: .5rem 0; line-height: 1.5; }
.faq-item > div { padding: .75rem 0; color: var(--muted); line-height: 1.75; }
.faq-admin h3 { font-size: 1.1rem; }
.faq-admin-row { display: grid; gap: .6rem; padding: .9rem 0; border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.faq-admin-row button { justify-self: start; }
[hidden] { display: none !important; }

@media (max-width: 991.98px) {
  .site-header #mainNav {
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .site-header #mainNav .navbar-nav {
    width: 100%;
    padding: .9rem 1rem 1.25rem;
    text-align: center;
  }
  .site-header #mainNav .nav-item { width: 100%; }
  .site-header #mainNav .nav-item:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
  }
  .site-header #mainNav .nav-link {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    padding: 1rem .5rem;
    font-size: .88rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .site-header #mainNav .nav-item:last-child { padding-top: 1.1rem; }
  .site-header #mainNav .btn-accent {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    width: min(100%, 240px);
    text-transform: uppercase;
    font-size: .82rem;
    letter-spacing: 0;
  }
  .site-header #mainNav a:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
}

/* Identidad configurable del sitio publico. */
body:not(.admin-body):not(.admin-login-body) :is(h1,h2,h3,h4,h5,h6) { font-family: var(--font-heading, "Montserrat"), sans-serif; }
.design-preview h2 { font-size: clamp(1.6rem, 3vw, 2.5rem); }

body:not(.admin-body):not(.admin-login-body) .site-footer { background: var(--footer-background, var(--graphite)); }
body:not(.admin-body):not(.admin-login-body) :is(.spacious-section,.contact-soft,.area-tile-visual,.logo-band-item) { background: var(--panel); }
body:not(.admin-body):not(.admin-login-body) :is(.showcase-copy,.contact-panel,.side-panel) { background: var(--soft); }
body:not(.admin-body):not(.admin-login-body) .content-body { color: var(--ink); }
body:not(.admin-body):not(.admin-login-body) .btn-accent:hover { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; }
body:not(.admin-body):not(.admin-login-body) a:hover { color: var(--brand-dark); }

body:not(.admin-body):not(.admin-login-body) .site-header .nav-link { color: var(--header-text, var(--on-dark, #fff)); }
body:not(.admin-body):not(.admin-login-body) .site-header .nav-link:is(.active,:hover) { color: var(--brand); }
body:not(.admin-body):not(.admin-login-body) .site-footer,
body:not(.admin-body):not(.admin-login-body) .site-footer :is(a,h2,h3) { color: var(--footer-text, var(--on-dark, #fff)); }
body:not(.admin-body):not(.admin-login-body) .btn-accent { color: var(--on-brand, #081018); }
body:not(.admin-body):not(.admin-login-body) .btn-outline-primary { color: var(--brand-dark); border-color: var(--brand-dark); }
body:not(.admin-body):not(.admin-login-body) .btn-outline-primary:hover { color: var(--on-dark, #fff); background: var(--brand-dark); }

/* El fondo usa alfa; el contenido del encabezado conserva su opacidad. */
body.header-overlays-content .site-header { position: fixed; inset: 0 0 auto; width: 100%; z-index: 1020; }
body.header-overlays-content main > .home-slider:first-child .slide-content { padding-top: calc(5rem + var(--site-header-height, 73px)); }
body.header-overlays-content main > .page-hero:first-child { padding-top: calc(clamp(4rem, 7vw, 6.5rem) + var(--site-header-height, 73px)); }
body.header-overlays-content main > .section:first-child { padding-top: calc(clamp(4.5rem, 8vw, 7.25rem) + var(--site-header-height, 73px)); }
.site-header .navbar-toggler { border-color: var(--header-text, #fff); color: var(--header-text, #fff); }
.site-header .navbar-toggler-icon { filter: none; color: var(--header-text, #fff); background-image: linear-gradient(to bottom,currentColor 0 2px,transparent 2px 9px,currentColor 9px 11px,transparent 11px 18px,currentColor 18px 20px); background-size: 22px 20px; background-position: center; background-repeat: no-repeat; }
.header-footer-preview { font-size: .9rem; }
@media (max-width: 575px) { #header-design-preview { gap: .75rem; flex-wrap: wrap; } }


/* Hero: imagen, overlay y contenido en capas independientes. */
.configurable-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--graphite); }
.hero-background,.hero-overlay { position: absolute; inset: 0; pointer-events: none; }
.hero-background { z-index: 0; background-size: cover; background-position: center; }
.hero-overlay { z-index: 1; background: var(--hero-overlay, rgba(17,25,34,.7)); }
.hero-content { position: relative; z-index: 2; }
.slide-content.hero-content { align-items: stretch; }
.configurable-hero .hero-content :is(h1,.hero-preview-title,.hero-summary) { color: var(--hero-text, #fff); }
.hero-content .hero-title-position { width: 100%; max-width: 720px; }
.hero-content .hero-summary { width: 100%; max-width: 800px; }
.hero-content .hero-button-row { width: 100%; max-width: none; }
.hero-content .hero-align-left { text-align: left; margin-left: 0; margin-right: auto; }
.hero-content .hero-align-center { text-align: center; margin-left: auto; margin-right: auto; }
.hero-content .hero-align-right { text-align: right; margin-left: auto; margin-right: 0; }
.hero-content :is(h1,.hero-preview-title,.hero-summary) { overflow-wrap: anywhere; }
.hero-background-animated { animation: hero-drift var(--hero-motion-duration, 30s) ease-in-out infinite alternate; transform-origin: center; }
@keyframes hero-drift { from { transform: scale(1.02) translate3d(-.4%,-.2%,0); } to { transform: scale(1.08) translate3d(.4%,.2%,0); } }
.hero-is-paused .hero-background-animated,.carousel-item:not(.active) .hero-background-animated { animation-play-state: paused; }
.configurable-carousel .carousel-item { transition-duration: var(--hero-transition-duration, 600ms); transition-timing-function: ease-in-out; }
.configurable-carousel.carousel-motion-none .carousel-item { transition: none !important; transform: none !important; }
[data-hero-region] { position: relative; }
.hero-motion-toggle { position: absolute; z-index: 4; right: 1rem; bottom: 1rem; border: 1px solid #ffffff99; border-radius: 4px; background: #0009; color: #fff; padding: .45rem .7rem; font-size: .75rem; }
.hero-motion-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.hero-motion-toggle:disabled { opacity: .85; }
.admin-hero-controls fieldset:disabled { opacity: .6; }
.admin-hero-controls .hero-content .hero-preview-title { font-size: 1.6rem; }
.hero-editor-preview .hero-content { min-height: 175px; }
@media (max-width: 575px) { .hero-motion-toggle { right: .75rem; bottom: .75rem; font-size: .7rem; } .hero-button-row .btn { max-width: 100%; } }
@media (prefers-reduced-motion: reduce) { .hero-background-animated { animation: none !important; transform: none !important; } .configurable-carousel .carousel-item { transition: none !important; } }
