/* Compositions, geometry, editorial modules */
.btn{min-height:53px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:15px 20px;border:1px solid var(--black);font-size:12px;font-weight:850;line-height:1.2;transition:background .25s,border .25s,color .25s,transform .3s var(--ease),box-shadow .3s}
.btn:hover{transform:translateY(-3px);box-shadow:4px 5px 0 rgba(0,0,0,.13)}
.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn--primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn--outline{background:transparent;color:var(--ink)}
.btn--outline:hover{background:var(--ink);color:var(--paper)}
.btn-arrow{font-size:19px;line-height:0;font-weight:400}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--ink)}
.hero--home{min-height:min(740px,calc(100svh - var(--nav-h)));}
.hero--inner{min-height:460px}
.hero-grid{display:block;min-height:inherit}
.hero-copy{z-index:1;padding-block:clamp(40px,4.8vw,72px) clamp(65px,7vw,110px);padding-right:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.hero h1{font-family:var(--font-editorial);font-size:clamp(58px,7.35vw,133px);line-height:.91;font-weight:950;letter-spacing:-.091em;text-transform:uppercase;max-width:11.7ch;margin-top:0;overflow-wrap:normal;text-wrap:balance}
.hero--inner h1{font-size:clamp(47px,6vw,100px);max-width:16ch}
.hero-lead{margin-top:31px;max-width:660px}
.hero-lead p{font-size:clamp(15px,1.35vw,19px);line-height:1.62;font-weight:400;color:#393833}
.hero-aux{font-size:10px;letter-spacing:.08em;font-weight:700;color:var(--muted);text-transform:uppercase;margin-top:clamp(50px,7vw,110px);line-height:1.6}
.hero-bottom{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100%;min-height:58px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--paper);font-size:9px;letter-spacing:.16em;font-weight:800;z-index:2}
.hero-bottom a{display:inline-flex;align-items:center;gap:10px}
.hero-bottom a span{font-size:20px;color:var(--accent);font-weight:300}
.editorial-section{position:relative;border-bottom:1px solid var(--ink);padding-block:clamp(75px,10vw,160px);background:var(--paper)}
.editorial-section--alt{background:var(--paper-alt)}
.editorial-section--dark{background:var(--black);color:var(--white)}
.editorial-section--cta{background:var(--accent);color:var(--white);padding-block:clamp(95px,12vw,170px)}
.section-layout{display:block}
.section-content{width:100%}
.section-heading{display:block;margin-bottom:clamp(38px,5vw,76px)}
.section-heading h2{font-family:var(--font-editorial);font-weight:900;font-size:clamp(39px,5.15vw,87px);line-height:.98;letter-spacing:-.074em;max-width:1000px;text-wrap:balance}
.editorial-section--dark .section-intro,.editorial-section--dark .rich-content{color:#cecbc6}
.editorial-section--cta .section-heading h2{font-size:clamp(47px,6.65vw,110px);max-width:1150px}
.section-intro,.rich-content{max-width:770px;margin-left:0;font-size:clamp(15px,1.4vw,19px);line-height:1.7;color:#47453f}
.section-intro{margin-bottom:clamp(35px,5vw,70px)}
.section-intro p,.rich-content p{margin-bottom:19px}
.rich-content h3{font-size:clamp(23px,2vw,35px);font-weight:800;letter-spacing:-.045em;margin-bottom:20px;color:var(--ink)}
.rich-content ul{list-style:none;padding:0;margin:24px 0}
.rich-content li{border-top:1px solid var(--line);padding:14px 0;font-size:15px;line-height:1.6}
.rich-content strong{font-weight:850;color:var(--ink)}
.editorial-section--dark .rich-content strong{color:var(--white)}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line);margin-top:28px}
.feature-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.feature-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(25px,3vw,50px);min-height:325px;display:flex;flex-direction:column;align-items:flex-start;position:relative;transition:background .35s,color .35s}
.feature-card:hover{background:rgba(var(--accent-rgb),.075)}
.feature-card:nth-child(2n){border-right:0}
.feature-grid--three .feature-card:nth-child(2n){border-right:1px solid var(--line)}
.feature-grid--three .feature-card:nth-child(3n){border-right:0}
.feature-card__top{display:flex;justify-content:space-between;width:100%;align-items:center;margin-bottom:clamp(46px,5.2vw,85px)}
.feature-index{font-family:var(--font-editorial);color:var(--accent);font-size:13px;font-weight:850}
.feature-glyph{font-size:20px;font-weight:300}
.feature-card h3{font-family:var(--font-editorial);font-weight:850;font-size:clamp(24px,2.25vw,37px);letter-spacing:-.05em;line-height:1.13;margin-bottom:18px}
.card-body{font-size:14px;line-height:1.72;color:var(--muted);max-width:410px}
.card-body p{margin-bottom:14px}
.card-body ul{padding-left:20px;margin:14px 0 26px}
.card-body li{margin-bottom:9px}
.card-body strong{color:var(--ink)}
.fine-note{font-size:12px;line-height:1.65;color:var(--muted);padding-top:20px;margin-top:auto}
.text-link{display:inline-flex;align-items:center;gap:24px;margin-top:auto;padding-top:27px;font-size:12px;font-weight:850;border-bottom:1px solid var(--ink);padding-bottom:7px;transition:color .2s,gap .25s}
.text-link:hover{color:var(--accent);gap:38px}
.editorial-section--dark .feature-grid{border-color:#55524f}
.editorial-section--dark .feature-card{border-color:#55524f}
.editorial-section--dark .feature-card:hover{background:#282625}
.editorial-section--dark .card-body,.editorial-section--dark .fine-note{color:#c0bcb6}
.editorial-section--dark .card-body strong{color:#fff}
.editorial-section--dark .text-link{border-color:#fff}
.editorial-section--cta .rich-content,.editorial-section--cta .section-intro{color:#fff}
.editorial-section--cta .btn--primary{background:var(--ink);border-color:var(--ink)}
.editorial-section--cta .btn--outline{color:#fff;border-color:#fff}
.editorial-section--cta .btn--outline:hover{background:#fff;color:var(--ink)}
.section-actions{display:flex;flex-wrap:wrap;gap:12px;margin-left:0;margin-top:clamp(30px,4vw,66px)}
.notice{margin:40px auto 0;padding:20px 25px;border:1px solid currentColor;max-width:770px;display:flex;align-items:flex-start;gap:15px;font-size:12px;line-height:1.7}
.notice-symbol{color:var(--accent);font-size:20px;line-height:1}
.editorial-section--dark .notice{border-color:#67635c}
.editorial-section--dark .notice-symbol{color:var(--accent)}
.sector-list{list-style:none;border-top:1px solid var(--line);margin:30px 0 0 auto;max-width:1050px}
.sector-list li{display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid var(--line);padding:30px 0;gap:35px}
.sector-list span{font-size:17px;font-weight:850;letter-spacing:-.03em}
.sector-list p{font-size:15px;line-height:1.6;color:var(--muted)}
.steps-list{list-style:none;max-width:1000px;margin:30px 0 0 auto;border-top:1px solid var(--line)}
.steps-list li{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:36px 0;border-bottom:1px solid var(--line)}
.step-count{font-size:17px;color:var(--accent);font-weight:850}
.step-copy h3{font-size:clamp(23px,2.5vw,38px);font-weight:850;letter-spacing:-.05em;margin-bottom:14px}
.step-copy p{font-size:16px;color:var(--muted);line-height:1.65}
.faq-list{max-width:1030px;margin-left:auto;border-top:1px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:26px;cursor:pointer;padding:28px 0;font-size:clamp(18px,2vw,28px);font-weight:800;letter-spacing:-.04em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary span{font-size:28px;font-weight:350;color:var(--accent);transition:transform .3s}
.faq-item[open] summary span{transform:rotate(45deg)}
.faq-answer{padding:0 60px 26px 0;font-size:15px;line-height:1.75;max-width:740px;color:var(--muted)}
/* Form: disabled at the server until real reception and legal text are configured. */
.contact-form-section{padding-block:clamp(80px,11vw,165px);background:var(--paper-alt);border-bottom:1px solid var(--ink)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);gap:clamp(45px,9vw,160px)}
.contact-aside h2{font-size:clamp(50px,6vw,100px);line-height:.96;letter-spacing:-.08em;text-transform:uppercase;margin:0 0 35px;font-weight:900}
.contact-aside>p{color:var(--muted);font-size:16px;line-height:1.7;max-width:370px}
.contact-direct{display:grid;gap:10px;margin-top:32px;max-width:370px}
.contact-direct span{font-size:11px;font-weight:900;letter-spacing:.13em;color:var(--accent)}
.contact-direct a{font-size:clamp(17px,2vw,24px);font-weight:800;letter-spacing:-.04em;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px}
.contact-direct a:hover{color:var(--accent)}
.contact-graphic{margin-top:70px;width:125px;height:125px;border:1px solid var(--ink);display:grid;place-items:center;transform:rotate(-45deg)}
.contact-graphic span{font-size:70px;line-height:1;transform:rotate(45deg);color:var(--accent);font-weight:200}
.contact-form-wrap{border-top:1px solid var(--ink);padding-top:24px}
.contact-form{display:grid;gap:29px}
.form-row{display:flex;flex-direction:column;gap:10px}
.form-row label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:900}
.form-row label span{color:var(--accent)}
.form-row input,.form-row textarea{border:1px solid #c6c1b8;background:#fffdf7;padding:17px 18px;width:100%;min-width:0;color:var(--ink);font-size:15px;border-radius:0;outline:none;transition:border .25s,box-shadow .25s}
.form-row input:focus,.form-row textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.17)}
.form-row textarea{resize:vertical;min-height:160px}
.form-row input::placeholder,.form-row textarea::placeholder{color:#8c8880}
.form-row input[aria-invalid="true"],.form-row textarea[aria-invalid="true"]{border-color:#b3281c}
.hp-field{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.form-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}
.form-bottom p{font-size:11px;line-height:1.6;color:var(--muted);max-width:240px}
.form-status{font-size:13px;line-height:1.65;min-height:0}
.form-status:not(:empty){padding:14px 17px;background:#e5edf0;border-left:3px solid var(--accent)}
.form-status.is-success{background:#e9f1e4;border-color:#47744c}
.form-privacy{color:var(--muted);font-size:11px;line-height:1.7;border-top:1px solid var(--line);padding-top:20px}
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.js .reveal.in-view{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}}

/* Editorial typography v3: only intentionally composed large titles are affected. */
.editorial-section--cta .section-heading--composed h2 {max-width:100%}
.section-heading--composed h2 {
  width:fit-content;
  max-width:100%;
  text-wrap:initial;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.section-heading--composed .title-line {
  display:block;
  width:max-content;
  max-width:100%;
  white-space:nowrap;
}
.section-heading--right {width:fit-content;max-width:100%;margin-inline-start:auto;text-align:right}
.section-heading--right h2 {margin-inline-start:auto}
.section-heading--right .title-line {margin-left:auto}
.section-heading--center {width:100%;text-align:center}
.section-heading--center h2 {margin-inline:auto;text-align:center}
.section-heading--center .title-line {margin-inline:auto}
.section-heading--right + .section-intro,.section-heading--right + .rich-content {margin-left:auto}
@media(max-width:1000px) {
  /* Tablet/mobile always get natural, accessible, no-overflow line wrapping. */
  .section-heading--composed {width:auto;margin-inline:0;text-align:left}
  .section-heading--composed h2 {width:auto;max-width:100%;text-wrap:balance}
  .section-heading--composed .title-line {display:contents;white-space:normal}
  .section-heading--center {text-align:center}
  .section-heading--center h2 {text-align:center}
}


/* Content composition alignment */
.section-heading--left + .section-intro,.section-heading--left + .rich-content{margin-left:0;margin-right:auto}
.section-heading--right + .section-intro,.section-heading--right + .rich-content{margin-left:auto;margin-right:0}
.section-heading--center + .section-intro,.section-heading--center + .rich-content{margin-inline:auto;text-align:center}
.section-heading--right ~ .section-actions{justify-content:flex-end}
.section-heading--center ~ .section-actions{justify-content:center}
.section-actions--center{justify-content:center}
.section-actions--right{justify-content:flex-end}
.notice--center{margin-inline:auto}
.editorial-section--cta .section-content{max-width:980px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.editorial-section--cta .section-heading,.editorial-section--cta .rich-content,.editorial-section--cta .section-actions{margin-inline:auto}
.editorial-section--cta .section-heading h2,.editorial-section--cta .rich-content{text-align:center}
.editorial-section--cta .rich-content{max-width:820px}
.editorial-section--cta .section-actions{justify-content:center}
.editorial-section--cta .rich-content hr{margin:0 auto 26px;width:min(100%,720px)}
.editorial-section--cta .section-heading--composed{width:100%;text-align:center}
.editorial-section--cta .section-heading--composed h2{margin-inline:auto;text-align:center}
.editorial-section--cta .section-heading--composed .title-line{margin-inline:auto}
/* Below the narrow phone threshold, prevent long CTA words from clipping. */
@media(max-width:380px){.editorial-section--cta .section-heading h2{font-size:clamp(32px,10vw,38px)}}

/* Final editorial rhythm: headings and supporting copy read as one vertical unit. */
.editorial-section .section-heading:has(+ .section-intro),
.editorial-section .section-heading:has(+ .rich-content){
  margin-bottom:clamp(22px,3vw,42px);
}
.editorial-section .section-heading + .section-intro,
.editorial-section .section-heading + .rich-content{
  width:min(100%,760px);
  max-width:760px;
}
/* Supporting paragraphs follow the column of the headline, not the opposite side. */
.editorial-section .section-heading--left + .section-intro,
.editorial-section .section-heading--left + .rich-content{margin-left:0;margin-right:auto;text-align:left}
.editorial-section .section-heading--right + .section-intro,
.editorial-section .section-heading--right + .rich-content{margin-left:auto;margin-right:0;text-align:left}
.editorial-section .section-heading--center + .section-intro,
.editorial-section .section-heading--center + .rich-content{margin-inline:auto;text-align:center}
/* Home / Tech Med: centered disclaimer card + primary call to action. */
.editorial-section--med-feature .notice--center{
  width:min(100%,680px);
  margin:clamp(40px,5vw,74px) auto 0;
  padding:clamp(22px,3.5vw,34px);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:13px;
  border-color:#77746f;
}
.editorial-section--med-feature .notice--center .notice-symbol{
  display:block;
  font-size:21px;
  line-height:1;
}
.editorial-section--med-feature .notice--center p{margin:0;max-width:60ch}
.editorial-section--med-feature .section-actions--center{
  width:100%;
  justify-content:center;
  margin-top:28px;
}
/* Consistent centered closing statements throughout the site. */
.editorial-section--cta .rich-content,
.editorial-section--cta .section-intro {max-width:740px;margin-inline:auto;text-align:center}
.editorial-section--cta .section-heading {margin-inline:auto;text-align:center}
.editorial-section--cta .section-actions {margin-inline:auto;justify-content:center}
@media(max-width:1000px){
  /* Reflow composed titles while maintaining readable text blocks on narrow screens. */
  .section-heading--right + .section-intro,
  .section-heading--right + .rich-content{margin-left:0;margin-right:auto}
  .section-heading--composed:not(.section-heading--center){text-align:left}
}
@media(max-width:560px){
  .editorial-section--med-feature .notice--center{margin-top:36px;padding:22px 18px}
  .editorial-section--med-feature .section-actions--center .btn{width:100%;max-width:410px}
  .editorial-section--cta .rich-content,.editorial-section--cta .section-intro{max-width:100%}
}


/* CTA composition selectively restored by request (eight pages only).
   Keep the previously approved centered CTA button, while restoring the
   editorial headline and supporting copy to the original left alignment.
   Not applied to Nosotros, Desarrollo Web, or Contacto. */
.editorial-section--cta--restored .section-content {
  display:block;
  max-width:none;
  margin-inline:0;
  text-align:left;
}
.editorial-section--cta--restored .section-heading,
.editorial-section--cta--restored .section-heading--composed {
  width:100%;
  max-width:100%;
  margin-left:0;
  margin-right:0;
  text-align:left;
}
.editorial-section--cta--restored .section-heading h2,
.editorial-section--cta--restored .section-heading--composed h2 {
  width:100%;
  max-width:100%;
  margin-inline:0;
  text-align:left;
  /* Slightly restrained from the oversized global CTA scale to avoid clipping. */
  font-size:clamp(42px,5.35vw,89px);
}
.editorial-section--cta--restored .section-heading--composed .title-line {
  max-width:100%;
  width:auto;
  margin-left:0;
  margin-right:0;
  white-space:normal;
  text-align:left;
}
.editorial-section--cta--restored .rich-content,
.editorial-section--cta--restored .section-intro {
  margin-left:0;
  margin-right:auto;
  max-width:760px;
  text-align:left;
}
.editorial-section--cta--restored .rich-content hr {
  margin:0 0 26px;
  max-width:720px;
}
.editorial-section--cta--restored .section-actions {
  width:100%;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  justify-content:center;
  text-align:center;
}
@media(max-width:560px){
  .editorial-section--cta--restored .section-heading h2{font-size:clamp(34px,9vw,50px)}
  .editorial-section--cta--restored .section-actions .btn{max-width:410px}
}
