/* Terminal FeaturesGrid layout and notch motion, with Southwest brand tokens. */
.sector-panels { --sector-ink:var(--blue-dark); --sector-reveal:var(--accent); display:flex; flex-direction:column; color:var(--sector-ink); background:var(--white); overflow:clip; padding-top:0; font-family:var(--font-sans); }
.sector-row { display:grid; grid-template-columns:repeat(2,1fr); grid-template-areas:"a a" "b b"; column-gap:2.564vw; margin:0; padding:0; min-width:0; }
.sector-photo { grid-area:a; position:relative; aspect-ratio:390/610; margin:0; width:100%; overflow:hidden; background:transparent; }
.sector-mask, .sector-mask-slot { position:relative; width:100%; height:100%; }
.sector-mask-svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.sector-image-wrapper { position:absolute; top:0; left:0; width:calc(100% - 1px); height:100%; overflow:hidden; }
.sector-image-transform { position:absolute; inset:0; width:100%; height:100%; transform:scale(1.1); }
.sector-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; scale:none; }
.sector-photo-bar img, .sector-photo-hospitality img { width:300%; max-width:none; }
.sector-photo-hospitality img { translate:-33.333333% 0; }
.sector-copy { grid-area:b; place-self:center stretch; width:100%; min-width:0; }
.sector-copy-inner { display:flex; flex-direction:column; gap:32px; padding:64px 5.128vw 60px; }
.sector-copy h2 { position:relative; display:inline-grid; gap:8px; margin:0; color:inherit; font:400 min(32px,8.205vw)/1.2 var(--font-sans); letter-spacing:min(-.63px,-.164vw); }
.sector-copy h2 a { grid-column:1; grid-row:2; text-decoration:none; color:inherit; }
.sector-copy h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.sector-index { grid-column:1; grid-row:1; width:fit-content; color:var(--subtle); font:400 10px/1.2 var(--font-mono); letter-spacing:1.5px; }
.sector-copy p { margin:0; max-width:none; font:400 min(23px,5.897vw)/1.26 var(--font-sans); letter-spacing:min(-.23px,-.059vw); color:inherit; }
.sector-word { white-space:nowrap; }
.sector-char { color:var(--line); }
.sector-char.show { color:var(--sector-ink); animation:sector-character-reveal .5s; }
@keyframes sector-character-reveal { 0% {color:var(--line)} 30% {color:var(--sector-reveal)} 100% {color:var(--sector-ink)} }
@media(min-width:1024px) {
 .sector-panels { gap:32px; padding:0 min(3.646vw,93.3333333333px) 30px; }
 .sector-row { grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:min(1.042vw,26.6666666667px); grid-template-areas:"a a a a a a . b b b b b"; }
 .sector-row-reverse { grid-template-areas:"b b b b b . a a a a a a"; }
 .sector-photo { aspect-ratio:960/870; width:calc(100% + 5.128vw); translate:-5.128vw 0; border-radius:0 20px 20px 0; }
 .sector-row-reverse .sector-photo { translate:0; border-radius:20px 0 0 20px; }
 .sector-copy-inner { gap:45.6px 70px; padding:0; }
 .sector-copy h2 { font-size:min(2.396vw,61.3333333333px); line-height:.96; letter-spacing:min(-.024vw,-.6133333333px); }
 .sector-copy h2 a { grid-row:1; }
 .sector-index { font-size:min(.677vw,17.3333333333px); letter-spacing:min(.122vw,3.12px); transform:translate(calc(-100% - min(1.042vw,26.6666666667px)),min(1.406vw,36px)); }
 .sector-copy p { font-size:min(1.198vw,30.6666666667px); letter-spacing:min(-.012vw,-.3066666667px); }
}

/* SectionIntroduction and SectionsGrid: measured Terminal inner-page template. */
.industries-directory-page main { background: var(--white); }
.industries-directory-page main [id] { scroll-margin-top: 120px; }
.industries-directory-page main a:focus-visible { outline: 3px solid var(--accent); outline-offset: 6px; }
.terminal-sector-intro { position: relative; isolation: isolate; display: grid; place-items: center; min-height: calc(90svh - 140px); padding: 100px 5.128vw 96px; overflow: hidden; color: var(--blue-dark); }
.terminal-intro-content { position: relative; width: 100%; max-width: 960px; margin: auto; text-align: center; }
.terminal-label { font-family: var(--font-mono); font-size: 12px; font-weight: 400; letter-spacing: .05em; line-height: 1.5; color: var(--muted); margin: 0 0 32px; }
.terminal-sector-intro h1, .terminal-sector-overview h2, .terminal-sector-heading h2, .terminal-sector-cta h2 { margin: 0 auto; max-width: 900px; font-family: var(--font-sans); font-weight: 400; font-size: 70px; line-height: 1; letter-spacing: -.055em; text-align: center; }
.terminal-intro-description { max-width: 830px; margin: 48px auto 0; font-size: 19px; line-height: 1.35; color: var(--muted); }
.terminal-scroll-link { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; margin-top: 32px; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.terminal-scroll-link .swl-icon-stack { transition: transform 250ms ease; }
.terminal-scroll-link:hover .swl-icon-stack { transform: translateY(4px); }
.terminal-grid-field { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(90deg, color-mix(in srgb, var(--blue) 8%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--blue) 8%, transparent) 1px, transparent 1px); background-size: 78px 78px; background-position: center; mask-image: radial-gradient(ellipse 45% 75% at 76% 46%, #000 10%, transparent 85%); }
.terminal-sector-overview { position: relative; background: var(--blue-dark); color: var(--white); padding: 120px 5.128vw; }
.terminal-overview-content { width: 100%; max-width: 1140px; margin: auto; text-align: center; }
.terminal-sector-overview .terminal-label { color: var(--accent); }
.terminal-sector-overview h2 { color: var(--white); }
.terminal-overview-content > p:not(.terminal-label) { max-width: 830px; margin: 48px auto; font-size: 19px; line-height: 1.45; color: color-mix(in srgb, var(--white) 80%, var(--blue-dark)); }
.terminal-sector-navigation { display: grid; grid-template-columns: 1fr 1fr 1.3fr; border-top: 1px solid color-mix(in srgb, var(--white) 25%, transparent); text-align: left; }
.terminal-sector-navigation a { display: flex; align-items: center; gap: 16px; min-height: 76px; padding: 20px; color: var(--white); font-size: 14px; }
.terminal-sector-navigation a + a { border-left: 1px solid color-mix(in srgb, var(--white) 25%, transparent); }
.terminal-sector-navigation a > span:first-child { color: var(--accent); font-family: var(--font-mono); font-size: 11px; }
.terminal-sector-navigation .swl-icon-stack { margin-left: auto; flex: none; color: var(--accent); transition: transform 250ms ease; }
.terminal-sector-navigation a:hover .swl-icon-stack { transform: translateY(4px); }
.terminal-sector-heading { display: grid; place-items: center; padding: 120px 5.128vw; min-height: 440px; color: var(--blue-dark); }
.sector-copy .sector-detail-link { display: inline-flex; align-items: center; gap: 24px; align-self: flex-start; min-height: 44px; font-family: var(--font-mono); font-size: 11px; color: var(--blue-dark); }
.sector-char { color: var(--line); }
.sector-word { display: inline-block; white-space: nowrap; }
.terminal-word { display: inline-block; white-space: nowrap; }
.terminal-character { transition: opacity 350ms ease; }
[data-terminal-heading].terminal-reveal-ready:not(.terminal-revealed) .terminal-character { opacity: .2; }
[data-terminal-heading].terminal-revealed .terminal-character { animation: terminal-character-enter 500ms both; animation-delay: calc(var(--char-index) * 12ms); }
@keyframes terminal-character-enter { 0% { opacity: .2; } 35% { opacity: 1; color: var(--accent); } 100% { opacity: 1; } }
.terminal-sector-cta { position: relative; margin-top: 96px; padding: 140px 5.128vw 120px; text-align: center; background: var(--blue-dark); color: var(--white); }
.terminal-sector-cta .terminal-label { color: var(--accent); }
.terminal-sector-cta > p:not(.terminal-label) { max-width: 830px; margin: 40px auto 32px; font-size: 19px; line-height: 1.45; color: color-mix(in srgb, var(--white) 80%, var(--blue-dark)); }
.terminal-sector-cta .button { margin-inline: auto; }
.terminal-sector-cta .terminal-call { display: block; width: fit-content; margin: 20px auto 0; padding: 12px; font-size: 14px; }
.terminal-sector-cta .terminal-call:hover { text-decoration: underline; }
.terminal-sector-cta .terminal-service-area { font-family: var(--font-mono); font-size: 11px !important; line-height: 1.8 !important; margin-bottom: 0 !important; }
.terminal-section-mask { position: absolute; width: 0; height: 0; pointer-events: none; }
@media (min-width: 1920px) {
 .terminal-sector-intro h1, .terminal-sector-overview h2, .terminal-sector-heading h2, .terminal-sector-cta h2 { font-size: min(5.469vw, 140px); max-width: 65vw; }
}
@media (max-width: 1023px) {
 .terminal-sector-intro { min-height: calc(90svh - 90px); padding-block: 100px 80px; }
 .terminal-sector-intro h1, .terminal-sector-overview h2, .terminal-sector-heading h2, .terminal-sector-cta h2 { font-size: clamp(40px, 8vw, 70px); }
 .terminal-sector-navigation a { font-size: 12px; padding-inline: 12px; gap: 10px; }
 .terminal-sector-heading { min-height: 364px; padding-block: 90px; }
 .sector-copy .sector-detail-link { font-size: 12px; }
}
@media (max-width: 600px) {
 .industries-directory-page main [id] { scroll-margin-top: 90px; }
 .terminal-sector-intro { min-height: 620px; padding-block: 90px 80px; }
 .terminal-label { font-size: 11px; margin-bottom: 28px; }
 .terminal-sector-intro h1, .terminal-sector-overview h2, .terminal-sector-heading h2, .terminal-sector-cta h2 { font-size: 40px; line-height: 1; letter-spacing: -.04em; }
 .terminal-intro-description, .terminal-overview-content > p:not(.terminal-label), .terminal-sector-cta > p:not(.terminal-label) { font-size: 17px; line-height: 1.4; margin-top: 32px; }
 .terminal-sector-overview { padding-block: 96px 72px; }
 .terminal-sector-navigation { grid-template-columns: 1fr; }
 .terminal-sector-navigation a { min-height: 64px; padding-inline: 0; font-size: 14px; }
 .terminal-sector-navigation a + a { border-left: 0; border-top: 1px solid color-mix(in srgb, var(--white) 25%, transparent); }
 .terminal-sector-heading { min-height: 300px; padding-block: 90px; }
 .terminal-sector-cta { margin-top: 0; padding-block: 100px 80px; }
 .terminal-sector-cta > p > br { display: none; }
}
@media (prefers-reduced-motion: reduce), (prefers-contrast: more) {
 .sector-char, .sector-char.show { color: var(--sector-ink); animation: none; }
 .sector-copy-inner, .sector-image-transform { transform: none !important; }
 [data-terminal-heading] .terminal-character { opacity: 1 !important; animation: none !important; transition: none; }
 .terminal-scroll-link .swl-icon-stack, .terminal-sector-navigation .swl-icon-stack { transition: none; }
}

/* A straight final edge where the Industries page meets the footer. */
body.industries-directory-page:not(.checkout-focus):not(.attract-demo-body) > main { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

/* Restaurant closing edge follows the theme's rounded page surface. */
body:is(.terminal-restaurant-page, .terminal-service-detail-page):not(.checkout-focus):not(.attract-demo-body) > main {
 border-bottom-left-radius: clamp(24px, 3vw, 48px);
 border-bottom-right-radius: clamp(24px, 3vw, 48px);
}
/* The page slides away from the footer at every width. Natural height keeps
   expanded touch navigation in the document's scroll range. */
body:is(.terminal-restaurant-page, .terminal-service-detail-page):not(.checkout-focus):not(.attract-demo-body) { padding-bottom: 0; }
body:is(.terminal-restaurant-page, .terminal-service-detail-page):not(.checkout-focus):not(.attract-demo-body) > .site-footer {
 position: sticky;
 inset: auto;
 bottom: var(--restaurant-footer-bottom, 0px);
 z-index: 1;
 height: auto;
 max-height: none;
 overflow: visible;
}

/* Industry details reuse the same panels; operational lists remain easy to scan. */
.terminal-restaurant-page .terminal-sector-intro { min-height: 540px; padding-block: 80px 64px; }
.terminal-restaurant-page .terminal-intro-description { max-width: 640px; margin-top: 32px; }
.restaurant-intro-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px 32px; margin-top: 32px; }
.restaurant-intro-actions .terminal-scroll-link { margin-top: 0; }
.restaurant-back-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; color: var(--muted); font: 11px var(--font-mono); text-decoration: underline; text-underline-offset: 4px; }
.terminal-restaurant-page .terminal-sector-overview { padding-block: 96px; }
.terminal-restaurant-page .terminal-sector-heading { min-height: 320px; padding-block: 80px; }
.terminal-restaurant-page .terminal-sector-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) {
 .terminal-restaurant-page .terminal-sector-intro { min-height: 520px; padding-block: 72px 48px; }
}
@media (min-width: 601px) and (max-width: 1023px) {
 .terminal-restaurant-page .sector-photo { aspect-ratio: 4 / 3; }
}
@media (max-width: 600px) {
 .terminal-restaurant-page .terminal-sector-intro { min-height: 0; padding-block: 64px 40px; }
 .terminal-restaurant-page .terminal-sector-intro h1 { font-size: clamp(34px, 9.7vw, 48px); }
 .restaurant-intro-actions { flex-direction: column; gap: 8px; }
 .restaurant-back-link { margin-top: 8px; }
 .terminal-restaurant-page .terminal-sector-overview { padding-block: 80px 64px; }
 .terminal-restaurant-page .terminal-sector-navigation { grid-template-columns: 1fr; }
 .terminal-restaurant-page .terminal-sector-heading { min-height: 260px; padding-block: 64px; }
}
.terminal-industry-detail-page .terminal-operations-row .sector-copy-inner { gap: 24px; padding-block: 40px; }
.terminal-industry-steps { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; counter-reset: industry-step; }
.terminal-industry-steps li { position: relative; padding: 16px 0 0 32px; border-top: 1px solid var(--line); counter-increment: industry-step; font-size: 14px; line-height: 1.45; }
.terminal-industry-steps li::before { content: counter(industry-step, decimal-leading-zero); position: absolute; left: 0; top: 18px; font: 10px var(--font-mono); color: var(--muted); }
.terminal-industry-steps strong, .terminal-industry-steps li > span { display: block; }
.terminal-industry-steps strong { margin-bottom: 6px; font-weight: 500; }
.terminal-industry-steps li > span { color: var(--muted); }
.terminal-industry-catalog { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 64px 5.128vw 0; padding-top: 32px; border-top: 1px solid var(--line); color: var(--blue-dark); }
.terminal-industry-catalog p { max-width: 660px; margin: 0; font-size: 16px; line-height: 1.5; }
.terminal-industry-catalog .arrow-link { flex: none; }
@media (max-width: 1023px) {
 .terminal-industry-detail-page .terminal-operations-row .sector-copy-inner { padding-block: 64px 60px; }
}
@media (max-width: 600px) {
 .terminal-industry-catalog { flex-direction: column; align-items: flex-start; margin-block: 12px 64px; }
}

/* Industries overview closing photo panel, with rounded lower corners. */
body.industries-directory-page:not(.terminal-industry-detail-page):not(.checkout-focus):not(.attract-demo-body) > main {
  border-bottom-left-radius: clamp(24px, 3vw, 48px);
  border-bottom-right-radius: clamp(24px, 3vw, 48px);
}
.industries-directory-page:not(.terminal-industry-detail-page) .terminal-sector-cta {
  background-image: linear-gradient(color-mix(in srgb, var(--blue-dark) 80%, transparent), color-mix(in srgb, var(--blue-dark) 86%, transparent)), url("home-faq-linen-service-1122.webp");
  background-size: cover;
  background-position: center 44%;
  background-repeat: no-repeat;
}

/* Service details reuse the Industries layout, with service-specific actions. */
.terminal-service-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 32px; margin-top: 32px; }
.terminal-service-actions .terminal-scroll-link { margin-top: 0; }
.terminal-service-back { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; color: var(--muted); font: 11px var(--font-mono); text-decoration: underline; text-underline-offset: 4px; }
.terminal-service-detail-page .terminal-sector-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.terminal-service-cta {
 background-image: linear-gradient(color-mix(in srgb, var(--blue-dark) 80%, transparent), color-mix(in srgb, var(--blue-dark) 86%, transparent)), url("home-faq-linen-service-1122.webp");
 background-size: cover;
 background-position: center 44%;
}
@media (max-width: 600px) {
 .terminal-service-actions { flex-direction: column; gap: 8px; }
 .terminal-service-detail-page .terminal-sector-navigation { grid-template-columns: 1fr; }
}
