/* The executable symbols become a consistent Evoluiu icon family. */
.module-card{background:transparent;border:1px solid transparent;box-shadow:none}
.module-card::before,.module-card:not(.is-active)::before{display:none}
.module-card.is-active{background:#041C2B40;border-color:#FFFFFF29;box-shadow:none}
.module-card>.module-icon{position:absolute;z-index:0;left:50%;top:calc(50% - 83px);width:120px;height:120px;max-width:none;object-fit:contain;object-position:center;transform:translateX(-50%);transition:width 260ms ease,height 260ms ease,top 260ms ease,left 260ms ease,transform 260ms ease;pointer-events:none;user-select:none;-webkit-user-drag:none}
.module-card.is-active>.module-icon{width:96px;height:96px;left:22px;top:28px;transform:none}
.card-content{z-index:1;left:16px;right:16px;top:calc(50% + 58px);bottom:auto;padding:0}
.card-trigger{justify-content:center;min-height:44px;text-align:center;font-size:clamp(14px,1.15vw,18px);line-height:1.35;font-weight:550}
.module-card.is-active .card-content{top:30px;left:140px;right:24px;bottom:22px}
.module-card.is-active .card-trigger{justify-content:flex-start;text-align:left;font-size:20px;min-height:32px}
.card-copy{margin-top:12px;font-size:14px;line-height:1.65;color:#DDECF3}
.card-copy button{font-size:12px;min-height:40px;margin-top:12px}
@media(min-width:981px) and (max-width:1200px){
 .module-card>.module-icon{width:104px;height:104px;top:calc(50% - 76px)}
 .card-content{left:10px;right:10px;top:calc(50% + 44px)}
 .module-card.is-active>.module-icon{width:76px;height:76px;left:16px;top:24px}
 .module-card.is-active .card-content{left:108px;right:20px;top:24px;bottom:18px}
 .module-card.is-active .card-trigger{font-size:18px}
 .card-copy{font-size:13px}
}
@media(min-width:981px) and (max-height:820px){
 .module-card.is-active>.module-icon{width:76px;height:76px;left:18px;top:22px}
 .module-card.is-active .card-content{left:112px;right:20px;top:20px;bottom:16px}
 .module-card.is-active .card-trigger{font-size:17px;min-height:28px}
 .card-copy{font-size:12px;line-height:1.55;margin-top:8px}
 .card-copy button{font-size:11px;min-height:34px;margin-top:8px}
}
@media(max-width:980px){
 .module-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:12px;height:auto}
 .module-row{display:contents}
 .module-row+.module-row{margin:0}
 .module-card{display:block;flex:none;min-height:168px;height:168px;transition:background 180ms ease,border-color 180ms ease!important}
 .module-card>.module-icon{left:50%;top:12px;width:96px;height:96px;transform:translateX(-50%);transition:none}
 .card-content{display:block;left:8px;right:8px;top:114px;bottom:auto;padding:0}
 .card-trigger{align-items:center;justify-content:center;min-height:44px;font-size:16px;line-height:1.3;text-align:center}
 .module-card.is-active{display:grid;grid-column:1/-1;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:center;min-height:0;height:auto;padding:18px;flex:none}
 .module-card.is-active>.module-icon{position:static;width:72px;height:72px;transform:none}
 .module-card.is-active .card-content{display:contents}
 .module-card.is-active .card-content>h3{align-self:center;min-width:0}
 .module-card.is-active .card-trigger{font-size:18px;justify-content:flex-start;min-height:44px;text-align:left}
 .module-card.is-active .card-copy{grid-column:1/-1;font-size:14px;line-height:1.7;margin:0;max-width:none}
 .card-copy p{max-width:650px}
 .card-copy button{font-size:12px;min-height:44px;margin-top:10px}
}
@media(min-width:701px) and (max-width:980px){
 .module-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
 .card-trigger{font-size:14px}
 .module-card.is-active{grid-template-columns:88px minmax(0,1fr);column-gap:20px;padding:22px}
 .module-card.is-active>.module-icon{width:88px;height:88px;grid-row:1/3}
 .module-card.is-active .card-copy{grid-column:2}
 .module-card.is-active .card-content>h3{align-self:end}
}
@media(max-width:360px){.card-trigger{font-size:14px}.module-card.is-active{padding:16px;gap:12px}}
@media(prefers-reduced-motion:reduce){.module-card,.module-card>.module-icon{transition:none!important}}

/* One focus ring identifies the module; its contact action keeps its own ring. */
.module-card:has(:focus-visible){outline:none}
.module-card:has(.card-trigger:focus-visible){outline:2px solid #8CC9E6;outline-offset:3px}
.card-trigger:focus-visible{outline:none}

.module-card .card-page-link{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;font-weight:650;color:var(--navy);padding:8px 0}.module-card .card-page-link:hover{color:#216C94}.module-card .card-page-link span{color:var(--coral)}

/* Keep the expanded module proportional to the icon family. */
.module-card.is-active{display:grid;grid-template-columns:88px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-self:center;gap:8px 20px;height:auto;min-height:210px;max-width:500px;padding:24px;background:linear-gradient(125deg,#163F55,#0C3147);border:1px solid #739FB44D;border-radius:24px;box-shadow:0 12px 28px #041D3026,inset 0 1px 0 #FFFFFF0D;color:#fff}
.module-card.is-active>.module-icon{position:static;width:88px;height:88px;transform:none;grid-column:1;grid-row:1/3;align-self:start}
.module-card.is-active .card-content{display:contents}
.module-card.is-active .card-content>h3{grid-column:2;grid-row:1;align-self:center;min-width:0}
.module-card.is-active .card-trigger{color:#fff;font-size:23px;line-height:1.2;font-weight:650;text-align:left;justify-content:flex-start;min-height:28px}
.module-card.is-active .card-copy{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;margin:0;min-width:0;font-size:14px;line-height:1.55;color:#D0E2EC}
.module-card.is-active .card-copy[hidden]{display:none}
.module-card.is-active .card-copy p{margin:0;max-width:100%}
.module-card.is-active .card-copy :is(button,.card-page-link){display:inline-flex;align-items:center;justify-content:center;gap:14px;flex-shrink:0;min-height:40px;margin:0;padding:9px 15px;border:1px solid #C8E3EE;border-radius:999px;background:#EAF5FA;color:#123C51;font-size:12px;font-weight:650;line-height:1.4;text-decoration:none;transition:background 160ms ease,border-color 160ms ease}
.module-card.is-active .card-copy :is(button,.card-page-link):hover{background:#fff;border-color:#fff}
.module-card.is-active .card-copy :is(button,.card-page-link):focus-visible{outline:2px solid #FF7884;outline-offset:4px}
.module-card.is-active .card-page-link span,.module-card.is-active .card-copy button span{color:#C7354A;font-size:17px;line-height:1}
@media(min-width:981px){.module-card.is-active{flex-grow:3}}
@media(min-width:981px) and (max-height:820px){
 .module-card.is-active{grid-template-columns:72px minmax(0,1fr);min-height:190px;padding:18px;column-gap:16px;border-radius:20px}
 .module-card.is-active>.module-icon{width:72px;height:72px}
 .module-card.is-active .card-trigger{font-size:21px}
 .module-card.is-active .card-copy{font-size:13px;line-height:1.5;gap:12px}
 .module-card.is-active .card-copy :is(button,.card-page-link){min-height:36px;padding:7px 13px}
}
@media(min-width:981px) and (max-width:1250px){
 .module-card.is-active{flex-grow:3.4;grid-template-columns:52px minmax(0,1fr);min-height:200px;padding:16px;gap:8px 14px}
 .module-card.is-active>.module-icon{width:52px;height:52px;grid-row:1}
 .module-card.is-active .card-trigger{font-size:20px}
 .module-card.is-active .card-copy{grid-column:1/-1;font-size:13px;line-height:1.5;gap:12px}
}
@media(max-width:980px){
 .module-card.is-active{max-width:none;min-height:0;height:auto;grid-template-columns:88px minmax(0,1fr);padding:24px;gap:10px 20px}
 .module-card.is-active .card-copy{font-size:14px;line-height:1.65;gap:18px}
 .module-card.is-active .card-copy :is(button,.card-page-link){min-height:44px;font-size:13px}
}
@media(max-width:700px){
 .module-card.is-active{grid-template-columns:72px minmax(0,1fr);padding:20px;gap:16px}
 .module-card.is-active>.module-icon{width:72px;height:72px;grid-row:1}
 .module-card.is-active .card-copy{grid-column:1/-1}
 .module-card.is-active .card-trigger{font-size:22px}
}
@media(max-width:360px){.module-card.is-active{padding:18px;column-gap:14px}.module-card.is-active .card-trigger{font-size:20px}}
@media(prefers-reduced-motion:reduce){.module-card.is-active .card-copy :is(button,.card-page-link){transition:none}}

/* The whole module tile is a click target. */
.gallery-ready .module-card{cursor:pointer}
.module-card .card-copy p{cursor:text}

/* Desktop tiles expand horizontally without changing their vertical frame. */
@media(min-width:981px){
 .module-card .card-content{display:contents}
 .module-card .card-content>h3{position:absolute;left:50%;right:auto;top:calc(50% + 58px);width:max-content;max-width:calc(100% - 32px);margin:0;transform:translateX(-50%)}
 .module-story:not(.gallery-ready) .card-content>h3{opacity:0}

 .module-card.is-active{display:block;align-self:stretch;height:100%;min-height:0;padding:0}
 .module-card.is-active>.module-icon{position:absolute;left:24px;top:24px;width:88px;height:88px;transform:translateX(0)}
 .module-card.is-active .card-content>h3{position:absolute;left:132px;right:auto;top:26px;margin:0;max-width:300px;transform:translateX(0)}
 .module-card.is-active .card-copy{position:absolute;left:132px;right:24px;top:66px;bottom:auto}
}
@media(min-width:981px) and (max-height:820px){
 .module-card.is-active>.module-icon{left:18px;top:18px;width:72px;height:72px}
 .module-card.is-active .card-content>h3{left:106px;right:auto;top:20px}
 .module-card.is-active .card-copy{left:106px;right:18px;top:58px}
}
@media(min-width:981px) and (max-width:1250px){
 .module-card.is-active>.module-icon{left:16px;top:16px;width:52px;height:52px}
 .module-card .card-content>h3{top:calc(50% + 44px)}
 .module-card.is-active .card-content>h3{left:82px;right:auto;top:26px;max-width:270px}
 .module-card.is-active .card-copy{left:16px;right:16px;top:80px}
}
@media(min-width:981px) and (prefers-reduced-motion:no-preference){
 .gallery-ready .module-card .card-content>h3{transition:left 780ms cubic-bezier(.4,0,.2,1),top 780ms cubic-bezier(.4,0,.2,1),transform 780ms cubic-bezier(.4,0,.2,1)}
 .gallery-ready .module-card .card-trigger{transition:font-size 780ms cubic-bezier(.4,0,.2,1)}
 .gallery-ready .module-card{transition:flex-grow 780ms cubic-bezier(.4,0,.2,1),border-color 500ms ease,box-shadow 600ms ease}
 .gallery-ready .module-card>.module-icon{transition:left 780ms cubic-bezier(.4,0,.2,1),top 780ms cubic-bezier(.4,0,.2,1),width 780ms cubic-bezier(.4,0,.2,1),height 780ms cubic-bezier(.4,0,.2,1),transform 780ms cubic-bezier(.4,0,.2,1)}
}
@media(prefers-reduced-motion:no-preference){
 .gallery-ready .module-card.is-active .module-copy-word{animation:module-copy-arrive 180ms ease var(--word-delay) both}
 .gallery-ready .module-card.is-active .card-copy :is(button,.card-page-link){animation:module-copy-arrive 220ms ease 640ms both}
}
@keyframes module-copy-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.module-card,.module-card>.module-icon,.module-card .card-content>h3,.module-card .card-copy,.module-card .module-copy-word,.module-card .card-trigger,.module-card .card-copy :is(button,.card-page-link){animation:none!important;transition:none!important}}

.module-story[data-module-input="pointer"] .module-card:has(.card-trigger:focus-visible){outline:none}

/* Paged module groups keep the approved card proportions. */
.module-card[hidden],.module-pager[hidden]{display:none!important}
.module-pager{position:absolute;inset:0;pointer-events:none;z-index:5;display:flex;align-items:center;justify-content:space-between}
.module-pager button{pointer-events:auto;width:40px;height:40px;border:1px solid #8CC9E666;border-radius:50%;background:#123F55;color:#EDF6FA;font-size:24px;cursor:pointer;transition:background .2s,opacity .2s}
.module-pager button:hover:not(:disabled){background:#2D8FC4}.module-pager button:disabled{opacity:.3;cursor:default}.module-pager button:focus-visible{outline:2px solid #8CC9E6;outline-offset:4px}
.module-page-prev{transform:translateX(-44px)}.module-page-next{transform:translateX(44px)}
.module-page-status{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);color:#B9D9E7;font-size:12px}
@media(min-width:981px){.has-module-pages .module-gallery{margin-inline:12px}.has-module-pages .module-page-prev{transform:translateX(-28px)}.has-module-pages .module-page-next{transform:translateX(28px)}}
@media(max-width:980px){.module-gallery{touch-action:pan-y}.module-pager{position:relative;inset:auto;justify-content:center;gap:22px;margin-top:20px;padding-bottom:6px}.module-pager button{transform:none;width:44px;height:44px}.module-page-status{position:static;transform:none;min-width:44px;text-align:center}}
@media(prefers-reduced-motion:reduce){.module-pager button{transition:none}}
