/* /software-en-mexico: custom software for companies across Mexico. It keeps the landing tokens (lime on #101111, Rubik),
   its terminal labels (.section-meta, .eyebrow) and its questions (.faqs); header, dock and footer come from pagina.css. */
.sw-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:clamp(32px,5vw,96px);align-items:end}
/* A faint lime grid behind the opening, faded at its edges so it never reaches the header or the next section. */
.sw-hero::before{content:'';position:absolute;inset:-24px 0;z-index:-1;pointer-events:none;background-image:linear-gradient(#deff0010 1px,transparent 1px),linear-gradient(90deg,#deff0010 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 65% 75% at 30% 45%,#000,transparent);mask-image:radial-gradient(ellipse 65% 75% at 30% 45%,#000,transparent)}
.sw-kicker{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--lime)}
.sw-kicker svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sw-hero h1{max-width:14ch;margin-top:clamp(18px,3svh,30px);font-size:clamp(2.6rem,6vw,6.1rem);line-height:.98;letter-spacing:-.055em;text-wrap:balance}
.sw-intro{max-width:62ch;margin-top:clamp(20px,3svh,30px);font-size:clamp(16px,1.2vw,19px);line-height:1.6;color:#d4d8cc}
.sw-actions{display:flex;flex-wrap:wrap;gap:12px 14px;margin-top:clamp(24px,4svh,38px)}
.sw-actions .button{min-height:52px;padding:14px 24px;gap:14px}
/* Neutral outline for the second action: WhatsApp is named in plain text, never with its green or its icon. */
.sw-button-ghost{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:14px 24px;border:1px solid #ffffff38;background:#ffffff08;font-size:15px;font-weight:700;line-height:1.4;color:var(--white);transition:border-color .2s,color .2s,transform .2s}
.sw-button-ghost:hover{border-color:var(--lime);color:var(--lime);transform:translateY(-2px)}
/* The reference figures read like a terminal window: a title bar and label/value rows. */
.sw-panel{border:1px solid #3c4433;border-radius:4px;background:#141711eb}
.sw-panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 20px;border-bottom:1px solid #3c4433;font-size:11px;letter-spacing:.11em;color:#9da491}
.sw-panel-title::after{content:'';width:32px;height:8px;flex:none;background:radial-gradient(circle,var(--lime) 2.5px,transparent 3px) 0 0/12px 8px repeat-x}
.sw-facts{margin:0;padding:0 20px}
.sw-facts>div{padding:16px 0;border-bottom:1px solid #2b3025}
.sw-facts>div:last-child{border-bottom:0}
.sw-facts dt{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#9da491}
.sw-facts dd{margin:4px 0 0;font-size:clamp(30px,2.5vw,40px);font-weight:800;line-height:1.05;letter-spacing:-.04em;color:var(--lime)}
.sw-facts dd small{font-size:15px;font-weight:400;letter-spacing:0;color:var(--white)}
.sw-panel-note{padding:12px 20px 16px;border-top:1px solid #2b3025;font-size:12px;line-height:1.5;color:#9ba591}
.sw-section{margin-top:clamp(72px,12svh,140px)}
.sw-section>.section-meta{margin-bottom:clamp(24px,4svh,44px);padding-bottom:12px;font-size:11px;line-height:1.5}
.sw-section h2{font-size:clamp(2.1rem,4.2vw,4.2rem);line-height:1.02;letter-spacing:-.05em}
.sw-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 64px}
.sw-heading>p{max-width:46ch;font-size:clamp(15px,1.1vw,18px);line-height:1.6}
/* Seven services and an eighth tile that leads to the contact block, so the grid closes at four and at two columns. */
.sw-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:clamp(28px,4svh,44px) 0 0;padding:0;list-style:none}
.sw-service{display:flex;flex-direction:column;min-width:0;min-height:216px;padding:clamp(20px,1.6vw,26px);border:1px solid #3c4433;border-radius:4px;background:#161914}
.sw-icon{width:34px;height:34px;flex:none;margin-bottom:auto;color:var(--lime);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sw-service h3{margin-top:28px;font-size:clamp(20px,1.55vw,24px);line-height:1.15;letter-spacing:-.03em}
.sw-service p{margin-top:10px;font-size:14px;line-height:1.55;color:#b5bbae}
.sw-service-more{display:flex;min-width:0}
.sw-service-more a{display:flex;flex:1;flex-direction:column;gap:10px;min-height:216px;padding:clamp(20px,1.6vw,26px);border:1px dashed #6e8258;border-radius:4px;transition:border-color .2s,background .2s}
.sw-service-more a:hover{border-color:var(--lime);background:#deff000a}
.sw-service-more span:first-child{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#9da491}
.sw-service-more strong{margin-top:auto;font-size:clamp(20px,1.55vw,24px);line-height:1.15;letter-spacing:-.03em;color:var(--white)}
.sw-service-more span:last-child{font-size:22px;line-height:1;color:var(--lime)}
.sw-why{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,96px);align-items:start}
.sw-reasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,3vw,56px);margin:0;padding:0;list-style:none}
.sw-reasons>li{display:grid;grid-template-columns:26px minmax(0,1fr);align-content:start;gap:14px;padding:clamp(18px,3svh,28px) 0;border-top:1px solid var(--line)}
.sw-check{width:24px;height:24px;margin-top:1px;color:var(--lime);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sw-reasons h3{font-size:clamp(19px,1.45vw,22px);line-height:1.2;letter-spacing:-.03em}
.sw-reasons p{margin-top:8px;font-size:14px;line-height:1.6;color:#b5bbae}
.sw-reasons .text-link{display:inline-flex;min-height:44px;margin-top:4px;font-size:14px;color:var(--lime)}
.sw-reasons .text-link:hover{color:#f0ff8a}
/* Four steps joined by a line, like the method on the landing; each step draws the stretch to the next one. */
.sw-steps{--sw-marker:44px;--sw-gap:clamp(20px,2.5vw,48px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sw-gap);margin:clamp(28px,4svh,44px) 0 0;padding:0;list-style:none}
.sw-steps>li{position:relative;display:flex;flex-direction:column;min-width:0}
.sw-steps>li:not(:last-child)::after{content:'';position:absolute;top:calc(var(--sw-marker)/2);left:calc(var(--sw-marker) + 10px);right:calc(10px - var(--sw-gap));height:1px;background:#65734d}
.sw-step-number{display:grid;place-items:center;width:var(--sw-marker);height:var(--sw-marker);flex:none;margin-bottom:20px;border:1px solid #a2bb62;border-radius:50%;background:var(--bg);font-size:14px;line-height:1;color:var(--lime)}
.sw-steps h3{font-size:clamp(20px,1.6vw,25px);line-height:1.15;letter-spacing:-.03em}
.sw-step-meta{margin-top:8px;font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--lime)}
.sw-steps p:last-child{max-width:34ch;margin-top:10px;font-size:14px;line-height:1.6;color:#b5bbae}
.sw-faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(28px,6vw,120px);align-items:start}
.sw-faq-intro p{max-width:34ch;margin-top:18px;font-size:15px;line-height:1.6}
.sw-faq .faqs summary{min-height:44px;font-size:clamp(16px,1.15vw,19px);line-height:1.35}
.sw-faq .faqs details p{max-width:64ch;margin-top:14px}
.sw-contact{margin-top:clamp(72px,12svh,140px);padding:clamp(40px,7svh,76px) clamp(20px,4vw,64px);border:1px solid #3c4433;border-radius:4px;background:radial-gradient(ellipse at 50% 0%,#202815 0%,#101111 72%);text-align:center}
.sw-contact .eyebrow{justify-content:center;font-size:11px;color:#a3b38e}
.sw-contact h2{margin-top:18px;font-size:clamp(2.2rem,5vw,4.6rem);line-height:1;letter-spacing:-.05em;text-wrap:balance}
.sw-contact-intro{max-width:60ch;margin:20px auto 0;font-size:clamp(15px,1.15vw,18px);line-height:1.6;color:#c8d0c0}
.sw-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:clamp(28px,4svh,40px) 0 0;padding:0;list-style:none;text-align:left}
.sw-channel{display:flex;flex-direction:column;gap:6px;height:100%;min-height:124px;padding:18px;border:1px solid #6e82584d;border-radius:5px;background:#141a11;transition:border-color .2s,background .2s,transform .2s}
.sw-channel:hover{border-color:var(--lime);background:#212a15;transform:translateY(-2px)}
.sw-channel-label{font-size:10px;letter-spacing:.12em;color:#9da491}
.sw-channel strong{font-size:clamp(17px,1.3vw,21px);line-height:1.2;letter-spacing:-.02em;color:var(--white)}
.sw-channel-detail{margin-top:auto;font-size:13px;color:var(--lime)}
.sw-channel-main{border-color:var(--lime);background:var(--lime)}
.sw-channel-main:hover{border-color:#f0ff8a;background:#f0ff8a}
.sw-channel-main .sw-channel-label{color:#3c4328}
.sw-channel-main strong,.sw-channel-main .sw-channel-detail{color:#101111}
@media(max-width:1100px){
 .sw-hero{grid-template-columns:minmax(0,1fr);align-items:start}
 .sw-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px}
 .sw-facts>div{border-bottom:0}
 .sw-services{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sw-why,.sw-faq-grid{grid-template-columns:minmax(0,1fr)}
 .sw-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
 .sw-steps>li:nth-child(2n)::after{display:none}
 .sw-channels{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .sw-actions>a{width:100%}
 .sw-facts{grid-template-columns:minmax(0,1fr)}
 .sw-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid #2b3025}
 .sw-facts>div:last-child{border-bottom:0}
 .sw-facts dd{margin:0;font-size:26px;text-align:right;white-space:nowrap}
 .sw-services,.sw-reasons,.sw-channels{grid-template-columns:minmax(0,1fr)}
 .sw-service,.sw-service-more a,.sw-channel{min-height:0}
 .sw-service h3{margin-top:18px}
 .sw-service-more strong{margin-top:0}
 /* One column: the line runs down the markers instead of across them. */
 .sw-steps{--sw-gap:28px;grid-template-columns:minmax(0,1fr);gap:var(--sw-gap)}
 .sw-steps>li{display:grid;grid-template-columns:var(--sw-marker) minmax(0,1fr);column-gap:16px;align-content:start}
 .sw-steps>li:not(:last-child)::after,.sw-steps>li:nth-child(2n):not(:last-child)::after{display:block;top:calc(var(--sw-marker) + 8px);bottom:calc(8px - var(--sw-gap));left:calc(var(--sw-marker)/2);right:auto;width:1px;height:auto}
 .sw-step-number{grid-row:1/4;margin:0}
 .sw-steps h3,.sw-steps p{grid-column:2}
 .sw-steps h3{margin-top:9px}
 .sw-contact{text-align:left}
 .sw-contact .eyebrow{justify-content:flex-start}
}
