/* Portada, servicios, fondos, contacto y otras secciones. */
.hero {
  min-height:580px;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background:#102748;
  color:#fff
}
.hero::before {
  content:"";
  position:absolute;
  inset:-6%;
  background:url('../imagenes/industria.png') center/cover;
  pointer-events:none
}
.hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(2,17,42,.93),rgba(2,17,42,.65) 44%,rgba(2,17,42,.04) 78%);
  pointer-events:none
}
/* Solo la fotografía cambia de perspectiva; el degradado y el texto quedan quietos. */
@media(hover:hover) and (pointer:fine) and (min-width:701px) and (prefers-reduced-motion:no-preference) {
  .hero[data-perspectiva]::before {
    transform:perspective(2400px) translate3d(var(--hero-x,0px),var(--hero-y,0px),0) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg));
    transition:transform .26s ease-out
  }
  .hero[data-perspectiva-activa]::before {
    will-change:transform
  }
}
.hero .wrap {
  position:relative;
  z-index:1;
  padding-block:70px
}
.hero-copy {
  max-width:650px
}
.hero p {
  font-size:1.14rem;
  max-width:490px
}
.eyebrow {
  font-size:.79rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  display:block;
  margin-bottom:18px
}
.hero .eyebrow {
  color:#d4e1c9
}
.actions {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:30px
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  padding:13px 23px;
  border:1px solid transparent;
  border-radius:3px;
  background:var(--green);
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  font-weight:600;
  line-height:1.4;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#354f20;
  transform:translateY(-2px)
}
.button-outline {
  background:transparent;
  border-color:currentColor
}
.button-outline:hover {
  background:rgba(6,27,69,.12)
}
.hero .button-outline:hover {
  background:rgba(255,255,255,.14)
}
.section {
  padding-block:66px
}
.section-title {
  text-align:center;
  margin-bottom:32px
}
.section-title em {
  font-style:normal;
  color:var(--green)
}
.section-title::after {
  content:"";
  display:block;
  width:40px;
  height:2px;
  background:var(--sage);
  margin:16px auto 0
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:24px
}
.service-card {
  grid-column:auto;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--card);
  overflow:hidden;
  text-decoration:none;
  transition:transform .2s,box-shadow .2s,border-color .2s
}
.service-card:nth-child(n+4) {
  grid-column:auto
}
.service-card:hover {
  transform:translateY(-5px);
  border-color:var(--green);
  box-shadow:0 12px 25px #061b4517
}
.service-photo {
  height:220px;
  background-image:url('../imagenes/servicios.png');
  background-repeat:no-repeat;
  background-size:500% 100%;
  background-position:var(--position) center
}
.service-name {
  position:relative;
  min-height:144px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:34px 22px 24px
}
.service-name h3 {
  margin:0;
  font-size:1.12rem;
  max-width:28ch;
  line-height:1.35
}
.service-icon {
  position:absolute;
  top:-22px;
  left:20px;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--sage);
  border-radius:5px
}
.icon {
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round
}
.sectors {
  border-block:1px solid var(--line);
  background:#b9c7d5
}
.sector-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  text-align:center
}
.sector {
  padding:10px 18px;
  border-right:1px solid var(--line)
}
.sector:last-child {
  border:0
}
.sector .icon {
  width:43px;
  height:43px;
  color:var(--green);
  margin:0 auto 10px
}
.sector p {
  margin:0;
  font-weight:600
}
.portal-section {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  align-items:center;
  gap:75px
}
.portal-copy p {
  max-width:39ch
}
.status {
  display:inline-block;
  background:#e7edf2;
  border:1px solid #a7b6c6;
  padding:4px 11px;
  font-size:.8rem;
  border-radius:3px;
  margin-bottom:15px
}
.dashboard {
  border:1px solid #9baabd;
  border-radius:7px;
  overflow:hidden;
  box-shadow:0 14px 35px #061b4520;
  background:#eff3f7
}
.dashboard-top {
  background:#40516a;
  display:flex;
  gap:6px;
  padding:10px 14px
}
.dashboard-top i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d9e2e8
}
.dashboard-top i:nth-child(2) {
  background:#8daf75
}
.dashboard-body {
  display:grid;
  grid-template-columns:130px 1fr;
  min-height:275px
}
.dashboard-side {
  background:var(--navy);
  color:#fff;
  padding:22px 15px;
  font-size:.8rem
}
.dashboard-side strong {
  font-size:.85rem;
  display:block;
  margin-bottom:28px
}
.dashboard-side span {
  display:block;
  margin:17px 0
}
.dashboard-main {
  padding:24px 20px
}
.dashboard-main strong {
  font-size:.9rem
}
.sample-report {
  display:flex;
  gap:13px;
  align-items:center;
  margin-top:14px;
  border:1px solid #d4dde6;
  padding:14px;
  border-radius:4px
}
.sample-report .icon {
  color:var(--green);
  flex-shrink:0
}
.sample-report span {
  font-size:.85rem;
  line-height:1.4
}
.sample-report small {
  display:block;
  color:#52627b;
  margin-top:5px
}
.preview-caption {
  font-size:.8rem;
  margin:10px 0 0;
  color:#344b64
}
.process {
  border-block:1px solid var(--line)
}
.steps {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:20px;
  list-style:none;
  padding:0;
  margin:0;
  text-align:center
}
.steps li {
  position:relative
}
.steps li:not(:last-child)::after {
  content:'→';
  position:absolute;
  right:-18px;
  top:53px;
  font-size:1.3rem
}
.step-number {
  font-size:1.5rem;
  color:var(--green);
  display:block;
  margin-bottom:8px
}
.steps .icon {
  width:36px;
  height:36px;
  margin:0 auto 12px
}
.steps p {
  margin:0;
  font-weight:600
}
.contact-band {
  display:grid;
  grid-template-columns:.9fr 1.2fr .9fr;
  align-items:center;
  gap:35px
}
.contact-band h2 {
  margin:0
}
.contact-details {
  border-inline:1px solid var(--line);
  padding-inline:30px;
  text-align:center
}
.contact-details p {
  margin-bottom:12px
}
.contact-details a {
  text-decoration:none;
  overflow-wrap:anywhere
}
.contact-details a:hover {
  text-decoration:underline
}
.contact-details small {
  display:block;
  font-size:.87rem;
  margin-top:5px
}
.footer {
  padding:26px 0 38px;
  background:var(--navy);
  color:#fff
}
.footer .wrap {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:25px
}
.footer p,.footer a,.footer-social {
  font-size:.84rem;
  margin:0
}
.footer a {
  color:#e1e8ee
}
.footer p {
  min-width:0
}
.footer-socials {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:18px
}
.footer-social {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.footer-social-icon {
  display:block;
  width:56px;
  height:56px
}
.footer-social:focus-visible {
  outline:2px solid var(--sage);
  outline-offset:4px
}
.footer .footer-privacy {
  justify-self:end
}
.page-intro {
  padding:65px 0 48px;
  background:#b7c6d4
}
.page-intro h1 {
  max-width:850px;
  margin-bottom:24px
}
.page-intro p {
  max-width:780px;
  font-size:1.15rem
}
.breadcrumb {
  font-size:.9rem;
  margin-bottom:22px;
  display:block
}
.detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:55px;
  align-items:start
}
.detail-photo {
  height:380px;
  border-radius:5px
}
.detail-grid ul {
  padding-left:22px
}
.detail-grid li {
  margin-bottom:12px
}
.note {
  padding:22px 25px;
  border-left:3px solid var(--green);
  background:#e0e7ee;
  margin-top:28px
}
.note p:last-child {
  margin-bottom:0
}
.content {
  max-width:850px
}
.content h2 {
  margin-top:38px
}
.content li {
  margin-block:8px
}
.contact-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}
.contact-card {
  padding:30px;
  text-align:center;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:5px
}
.contact-card h2 {
  font-size:1.4rem
}
.contact-card a {
  overflow-wrap:anywhere
}
.contact-card p:last-child {
  margin:0
}
.info-panel {
  max-width:760px;
  margin:0 auto;
  background:var(--card);
  border:1px solid var(--line);
  padding:40px;
  border-radius:6px
}
.info-panel h1 {
  font-size:clamp(2rem,4vw,3.4rem)
}
.info-panel .icon {
  width:42px;
  height:42px;
  margin-bottom:20px;
  color:var(--green)
}
.service-photo {
  background-size:500% auto
}
.service-photo-extra {
  background-image:url('../imagenes/servicios-complementarios.png')
}
.sectors {
  background:linear-gradient(100deg,#dce5eefa,#c8d6e5d9),url('../imagenes/industria.png') center 65%/cover;
  padding-block:76px
}
.sector-grid {
  gap:18px
}
.sector,.sector:last-child {
  border:1px solid #fff9;
  border-bottom:3px solid var(--sage);
  background:#f0f4f8dd;
  box-shadow:0 10px 25px #061b4510;
  padding:28px 16px;
  border-radius:5px
}
.sector .icon {
  margin-bottom:18px
}
.section:has(>.portal-section) {
  background:linear-gradient(90deg,#071c36ee,#173348bd),url('../imagenes/industria.png') center/cover;
  color:#fff;
  padding-block:88px
}
.portal-copy {
  padding-block:18px;
  border-top:2px solid #a3bd85
}
.portal-copy h2 {
  font-size:clamp(2rem,3.1vw,3rem);
  line-height:1.18
}
.portal-copy p {
  color:#e3ebf3;
  font-size:1.08rem;
  line-height:1.8
}
.portal-copy .status {
  background:#112b43;
  color:#d6e9c4;
  border-color:#8cab71
}
.portal-section .preview-caption {
  color:#e0e8ef
}
.dashboard {
  color:var(--navy);
  box-shadow:0 24px 50px #0005;
  border-color:#c5d4e399
}
.process {
  background:linear-gradient(115deg,#dbe5eff5,#c9d6e6e8),url('../imagenes/industria.png') 50% 85%/cover;
  padding-block:78px
}
.steps {
  gap:24px
}
.steps li {
  background:#edf2f7ed;
  border:1px solid #fff;
  border-top:3px solid var(--sage);
  border-radius:5px;
  padding:26px 14px;
  box-shadow:0 10px 25px #061b450c
}
.step-number {
  font-size:2.25rem;
  font-weight:300;
  line-height:1;
  margin-bottom:20px
}
.steps li:not(:last-child)::after {
  right:-21px;
  top:70px;
  color:var(--green)
}
.section:has(>.contact-band) {
  background:linear-gradient(95deg,#051831f2,#112d4dc9),url('../imagenes/industria.png') center 75%/cover;
  color:#fff;
  padding-block:80px
}
.contact-band {
  padding:36px;
  border:1px solid #b7cce644;
  border-left:4px solid var(--sage);
  border-radius:5px;
  background:#0a203bc9;
  box-shadow:0 20px 45px #0002;
  gap:26px
}
.contact-band h2 {
  font-size:clamp(2rem,3vw,2.9rem)
}
.contact-details {
  border-color:#b7cce644;
  padding-inline:24px
}
.contact-details small {
  color:#d1deed
}
.contact-band>.button {
  padding-inline:18px
}
.page-intro {
  position:relative;
  background:linear-gradient(95deg,#051b37f5,#183451c4),url('../imagenes/industria.png') center 45%/cover;
  color:#fff;
  padding-block:74px
}
.page-intro .eyebrow {
  color:#d4e5c5
}
.page-intro p {
  color:#e4edf5;
  padding-left:24px;
  border-left:3px solid #8dab6c;
  line-height:1.85
}
.page-intro h1 {
  max-width:950px
}
.page-intro+.section:not(:has(>.contact-band)),.section:has(.info-panel),.section:has(>.content) {
  background:linear-gradient(110deg,#ccd9e8ee,#b9cbddd6),url('../imagenes/industria.png') center/cover
}
.detail-grid {
  gap:32px
}
.detail-grid>div:first-child {
  padding:34px;
  background:#eff4f8f2;
  border:1px solid #fff;
  border-radius:5px;
  box-shadow:0 15px 35px #061b4512
}
.detail-grid h2 {
  font-size:clamp(1.65rem,2.3vw,2.1rem);
  margin-bottom:24px
}
.detail-grid ul {
  list-style:none;
  padding:0;
  margin-bottom:34px
}
.detail-grid ul:last-child {
  margin-bottom:0
}
.detail-grid li {
  position:relative;
  padding:0 0 16px 23px;
  border-bottom:1px solid #c4d1df;
  margin-bottom:16px
}
.detail-grid li::before {
  content:'';
  position:absolute;
  left:0;
  top:11px;
  width:6px;
  height:6px;
  background:var(--green);
  border-radius:50%
}
.detail-photo {
  box-shadow:0 12px 30px #061b4525;
  border:1px solid #fff8
}
.note {
  background:#edf3f9f5;
  box-shadow:0 10px 24px #061b4510;
  border-radius:0 5px 5px 0
}
.content {
  background:#f0f5f9f2;
  padding:42px;
  border:1px solid #fff;
  border-top:3px solid var(--sage);
  border-radius:5px;
  box-shadow:0 20px 45px #061b4515
}
.content h2:first-child {
  margin-top:0
}
.content h2:not(:first-child) {
  padding-top:30px;
  border-top:1px solid #c1cede
}
.content p {
  line-height:1.85
}
.contact-card {
  background:#f0f5f9f0;
  border-color:#fff;
  border-top:3px solid var(--sage);
  box-shadow:0 15px 35px #061b4514
}
.info-panel {
  background:#f0f5f9f2;
  border-color:#fff;
  border-top:3px solid var(--sage);
  box-shadow:0 20px 50px #061b4525
}
.info-panel .button-outline {
  color:var(--navy)
}
.footer {
  border-top:1px solid #a5bad32e
}
@media(min-width:1500px) {
  .hero {
    min-height:650px
  }
}
@media(max-width:900px) {
  .sector-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .sector:last-child {
    grid-column:1/-1
  }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-card:last-child { grid-column:auto; }
  .wrap {
    width:calc(100% - 40px)
  }
  .portal-section {
    gap:35px
  }
  .contact-band {
    grid-template-columns:1fr 1fr
  }
  .contact-band>.button {
    grid-column:1/-1;
    justify-self:start
  }
  .contact-details {
    border-right:0
  }
  .contact-cards {
    grid-template-columns:1fr
  }
  .detail-grid {
    gap:30px
  }
  .dashboard-body {
    grid-template-columns:105px 1fr
  }
}
@media(max-width:700px) {
  .wrap {
    width:calc(100% - 36px)
  }
  .hero {
    min-height:560px
  }
  .hero::before {
    inset:-18px;
    background-position:65% center
  }
  .hero .wrap {
    padding-block:55px
  }
  .hero-copy {
    max-width:520px
  }
  .hero h1 {
    font-size:clamp(2.25rem,8.7vw,3.8rem);
    max-width:16ch
  }
  .hero p {
    max-width:34ch;
    font-size:1rem
  }
  .hero .actions {
    flex-direction:column;
    max-width:350px
  }
  .section {
    padding-block:42px
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .service-card,.service-card:nth-child(n+4) {
    grid-column:auto
  }
  .service-photo {
    height:215px
  }
  .service-name {
    min-height:100px;
    padding:29px 22px 21px
  }
  .service-name h3 {
    font-size:1.2rem
  }
  .sector-grid {
    grid-template-columns:1fr 1fr;
    gap:0
  }
  .sector {
    border:1px solid var(--line)!important;
    padding:20px 10px
  }
  .portal-section {
    grid-template-columns:1fr;
    gap:30px
  }
  .portal-copy p {
    max-width:none
  }
  .dashboard-body {
    grid-template-columns:100px 1fr;
    min-height:245px
  }
  .dashboard-main {
    padding:20px 12px
  }
  .dashboard-side {
    padding:20px 12px
  }
  .sample-report {
    padding:10px;
    gap:8px
  }
  .steps {
    grid-template-columns:1fr;
    gap:25px;
    text-align:left;
    max-width:330px;
    margin:auto
  }
  .steps li {
    display:flex;
    align-items:center;
    gap:25px
  }
  .step-number {
    margin:0;
    width:32px
  }
  .steps .icon {
    margin:0;
    width:32px;
    height:32px
  }
  .steps li:not(:last-child)::after {
    content:'↓';
    top:auto;
    bottom:-26px;
    right:auto;
    left:68px;
    font-size:1rem
  }
  .contact-band {
    grid-template-columns:1fr;
    gap:23px
  }
  .contact-details {
    border:0;
    padding:0
  }
  .contact-band>.button {
    grid-column:auto;
    justify-self:stretch
  }
  .footer .wrap {
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:12px
  }
  .footer .footer-privacy {
    justify-self:center
  }
  .footer {
    padding-bottom:max(38px,env(safe-area-inset-bottom))
  }
  .detail-grid {
    grid-template-columns:1fr
  }
  .detail-photo {
    height:270px
  }
  .page-intro {
    padding:35px 0
  }
  .page-intro h1 {
    font-size:2.5rem
  }
  .info-panel {
    padding:28px 22px
  }
  .section-title {
    text-wrap:balance
  }
  .contact-cards {
    gap:15px
  }
}
@media(max-width:900px) {
  .contact-band {
    padding:28px
  }
  .contact-details {
    padding-right:0
  }
  .steps {
    gap:16px
  }
  .steps li {
    padding-inline:8px
  }
  .steps li:not(:last-child)::after {
    right:-17px
  }
  .steps p {
    font-size:.94rem
  }
}
@media(max-width:700px) {
  .sectors,.process,.section:has(>.portal-section),.section:has(>.contact-band) {
    padding-block:48px
  }
  .sector-grid {
    gap:12px
  }
  .sector {
    border-color:#fff9!important;
    border-bottom:3px solid var(--sage)!important
  }
  .portal-copy {
    padding-top:24px
  }
  .portal-section .dashboard-body {
    grid-template-columns:86px minmax(0,1fr)
  }
  .portal-section .dashboard-side {
    padding-inline:9px
  }
  .contact-band {
    padding:28px 20px;
    gap:22px
  }
  .contact-details {
    padding:0
  }
  .contact-band h2 {
    font-size:2rem
  }
  .page-intro {
    padding-block:45px
  }
  .page-intro p {
    padding-left:16px;
    font-size:1.05rem
  }
  .content {
    padding:28px 22px
  }
  .detail-grid>div:first-child {
    padding:26px 22px
  }
  .steps {
    gap:24px;
    max-width:none
  }
  .steps li {
    padding:20px;
    gap:18px
  }
  .steps li:not(:last-child)::after {
    top:auto;
    bottom:-25px;
    left:calc(50% - 7px);
    right:auto
  }
  .step-number {
    font-size:1.6rem;
    margin-bottom:0;
    flex-shrink:0
  }
  .steps p {
    font-size:1rem
  }
  .detail-photo {
    height:270px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
}

/* Formularios: inactivos hasta confirmar una conexión segura con el servicio. */
.visually-hidden {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.request-panel {
  margin-top:40px; padding:40px;
  border:1px solid #fff; border-top:3px solid var(--sage);
  border-radius:6px; background:#f0f5f9f2;
  box-shadow:0 20px 45px #061b4515;
}
.request-heading { text-align:center; max-width:740px; margin:0 auto 28px; }
.request-heading h2 { margin-bottom:16px; }
.request-heading p { margin:0; }
.request-form, .access-form { max-width:800px; margin-inline:auto; }
.request-form fieldset, .access-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.form-field { display:flex; flex-direction:column; gap:8px; min-width:0; text-align:left; }
.form-field-wide { grid-column:1/-1; }
.form-honeypot {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.form-field label { font-weight:650; }
.form-field label span { font-size:.8rem; font-weight:400; }
.form-field input, .form-field textarea {
  width:100%; min-width:0; min-height:50px; padding:13px 15px;
  border:1px solid #a3b3c6; border-radius:4px; background:#fff;
  color:var(--navy); font:inherit; line-height:1.5;
}
.form-field textarea { min-height:160px; resize:vertical; }
.form-field input:disabled, .form-field textarea:disabled {
  opacity:1; color:#52627a; background:#f7fafc; cursor:not-allowed;
}
.form-field input::placeholder, .form-field textarea::placeholder { color:#617087; opacity:1; }
.form-field input:focus-visible, .form-field textarea:focus-visible {
  outline:3px solid #af6c00; outline-offset:3px;
}
.form-consent { display:grid; grid-template-columns:24px minmax(0,1fr); gap:14px; margin-top:26px; padding:18px; border:1px solid #a3b3c6; border-radius:4px; background:#f4f7fa; text-align:left; }
.form-consent input { width:22px; height:22px; margin:3px 0 0; accent-color:var(--green); cursor:pointer; }
.form-consent input:focus-visible { outline:3px solid #af6c00; outline-offset:3px; }
.form-consent label { display:block; color:var(--navy); font-size:.92rem; font-weight:600; line-height:1.6; cursor:pointer; }
.form-consent p { margin:10px 0 0; font-size:.82rem; line-height:1.6; }
.form-consent-version { color:#52627a; overflow-wrap:anywhere; }
.form-human-section { margin:24px auto 0; max-width:650px; }
.form-human-section[hidden] { display:none; }
.form-human-explanation { margin:0; font-size:.82rem; line-height:1.6; text-align:left; }
.form-human-start { display:flex; margin:18px auto 0; }
.form-human-check { display:flex; justify-content:center; width:100%; min-width:0; margin:24px auto 0; }
.form-human-check[hidden] { display:none; }
.form-submit { display:flex; margin:26px auto 0; min-width:220px; }
.button:disabled { opacity:.75; cursor:not-allowed; transform:none; }
.button:disabled:hover { background:var(--green); }
.form-note, .form-status, .form-privacy { text-align:center; font-size:.9rem; margin:22px auto 0; max-width:650px; }
.form-note { padding:15px 18px; background:#e1e9f1; border-radius:4px; color:#344b64; }
.form-status:empty { display:none; }
.form-status { padding:15px 18px; border-radius:4px; background:#e1e9f1; color:#344b64; }
.form-status[data-state="success"] { background:#e3efe7; color:#174b2d; }
.form-status[data-state="error"] { background:#f7e7e5; color:#7b241c; }
.form-privacy { font-size:.83rem; }
.access-section { min-height:calc(100svh - 240px); }
.portal-access { max-width:640px; text-align:center; }
.portal-access>.icon { margin:0 auto 20px; }
.portal-access h1 { font-size:clamp(2rem,3.5vw,2.8rem); }
.access-intro { margin-bottom:26px; }
.access-form .form-field { margin-bottom:20px; }
.access-form .form-submit { width:100%; }
.access-support { margin:26px 0 0; font-size:.9rem; }

@media(max-width:1250px) and (min-width:901px) {
  .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-card:last-child { grid-column:2; }
}
@media(max-width:700px) {
  .request-panel { padding:28px 20px; margin-top:28px; }
  .form-grid { grid-template-columns:1fr; gap:20px; }
  .form-field-wide { grid-column:auto; }
  .form-submit { width:100%; min-width:0; }
}

