/* One page heading stays in the accessibility tree across both shop views. */
.store-page-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.header-cart-simple{width:36px;height:36px;margin-right:9px}
.header-cart-simple svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.3}
.header-cart-simple [data-cart-count]{right:-4px;top:-5px}
.shop-gateway{background:#f8f7f3;padding:calc(var(--header,74px) + 50px) 0 64px}
.shop-gateway[hidden],.gateway-topic[hidden],.gateway-group[hidden],.gateway-empty[hidden]{display:none}
.gateway-intro{display:flex;justify-content:space-between;align-items:end;gap:36px}
.gateway-intro h2{margin:16px 0 0;font-size:clamp(36px,4.2vw,64px);font-weight:480;letter-spacing:-.055em;line-height:1.06}
.gateway-intro .kicker{font-size:11px}
.gateway-steps{display:flex;gap:18px;align-items:center;list-style:none;margin:0 0 5px;padding:0;flex-shrink:0}
.gateway-steps li{display:flex;gap:7px;align-items:center;font-size:12px;color:#8a8580}
.gateway-steps b{display:grid;place-items:center;width:24px;height:24px;border:1px solid #d4d0ca;border-radius:50%;font-size:11px;font-weight:500}
.gateway-steps [aria-current]{color:#a71120}
.gateway-steps [aria-current] b{background:#a71120;border-color:#a71120;color:white}
.gateway-tools{display:flex;gap:32px;align-items:center;justify-content:space-between;margin:38px 0 44px}
.gateway-search{display:flex;gap:14px;align-items:center;border-bottom:1px solid #aaa49b;max-width:530px;flex:1;padding:12px 0}
.gateway-search:focus-within{border-color:#a71120}
.gateway-search svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:#6c665d;stroke-width:1.5}
.gateway-search input{border:0;outline:0;background:none;width:100%;min-width:0;font:inherit;font-size:14px;color:#252523;padding:0;border-radius:0}
.gateway-search input::placeholder{color:#8a857d}
.gateway-browse{font-size:13px;display:flex;align-items:center;gap:28px;color:#a71120;white-space:nowrap}
.gateway-browse span{font-size:20px}
.gateway-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;scroll-margin-top:calc(var(--header,74px) + 24px)}
.gateway-group h2{display:flex;flex-direction:column;gap:12px;min-height:58px;margin:0 0 16px;font-size:16px;font-weight:550;letter-spacing:-.03em}
.gateway-group h2>span{font:10px 'IBM Plex Mono',monospace;color:#a71120}
.gateway-topic-list{border-top:1px solid #bbb5ab}
.gateway-topic{display:flex;gap:12px;justify-content:space-between;min-height:103px;padding:20px 5px 20px 0;border-bottom:1px solid #dedad2;transition:color .18s,background .18s,padding .18s}
.gateway-topic strong{display:block;font-size:16px;font-weight:500;line-height:1.2;letter-spacing:-.03em}
.gateway-topic small{display:block;margin-top:7px;font-size:12px;color:#7c756c;line-height:1.5}
.gateway-topic>b{color:#a71120;font-size:18px;font-weight:400;transition:transform .18s}
.gateway-topic:hover{background:#efede7;padding-left:10px;color:#a71120}
.gateway-topic:hover>b{transform:translate(2px,-2px)}
.gateway-footer{display:flex;justify-content:space-between;gap:24px;margin-top:30px;padding-top:24px;border-top:1px solid #bbb5ab;font-size:13px;color:#625b53}
.gateway-footer a:last-child,.gateway-empty a{color:#a71120}
.gateway-empty{padding:38px 0;color:#71685e;font-size:16px}
.shop-gateway a:focus-visible,.gateway-search input:focus-visible{outline:2px solid #a71120;outline-offset:5px}
.catalog-footlinks{display:flex;justify-content:space-between;gap:24px;padding-top:24px;padding-bottom:48px;border-top:1px solid #d8d0c5;font-size:13px;color:#a71120}
.service-shop .shop-heading{display:block;margin-bottom:32px}
.service-shop .shop-heading [data-shop-heading]{margin-top:12px}
.service-shop .shop-journey{margin-bottom:26px}
.service-shop .shop-layout{grid-template-columns:210px minmax(0,1fr)}
.service-shop .shop-sidebar{padding:0;border:0;background:transparent;backdrop-filter:none;gap:20px}
.service-shop .shop-filters button{grid-template-columns:1fr auto;min-height:46px;padding:10px 12px}
.service-shop .shop-filters button span{font-size:13px;line-height:1.25}
.service-shop .shop-search input{font-size:13px}
.service-shop .shop-search,.service-shop .shop-search input{background:transparent}
.service-shop .shop-add span{display:inline}
.service-shop .shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:transparent;border:0;padding:0 0 20px}
.shop-count{font-size:13px;color:#7a7268}
.shop-count b{color:#292724;font-weight:500}
.service-shop .shop-select{flex:0 0 auto;min-width:0;border:0;padding:0;background:transparent;display:flex;gap:10px}
.service-shop .shop-select>span{display:none}
.service-shop .shop-select select{font-size:13px;max-width:170px;cursor:pointer}
.service-shop .shop-grid{gap:14px;border:0;background:none}
.service-shop .shop-card{display:flex;flex-direction:column;min-height:290px;padding:24px;background:#fff;border:1px solid #dedad2;box-shadow:none;transform:none}
.service-shop .shop-card::before{display:none}
.service-shop .shop-card:hover{border-color:#b89994;box-shadow:0 5px 20px #26231e06}
.service-shop .shop-card-meta{font:10px 'IBM Plex Mono',monospace;color:#9a615e;text-transform:uppercase}
.service-shop .shop-card-copy{padding:20px 0 0}
.service-shop .shop-card-copy>.shop-card-name{margin:0;font-size:clamp(21px,1.7vw,26px);font-weight:500;line-height:1.12}
.service-shop .shop-card-copy:hover>.shop-card-name{transform:none}
.shop-card-summary{margin:14px 0 24px;font-size:14px;line-height:1.55;color:#7a746d}
.service-shop .shop-card-footer{margin-top:auto;padding-top:20px;border-top:1px solid #e8e4dd}
.service-shop .shop-card-footer strong{font-size:21px;font-weight:500}
.service-shop .shop-add{border:0;background:none;color:#a71120;padding:4px 0;font-size:13px;min-width:0;gap:12px}
.service-shop .shop-add:hover{color:#71101b;background:none}
.shop-dialog-simple{width:min(980px,calc(100vw - 40px));max-height:90dvh;background:#fff}
.shop-dialog-simple .shop-dialog-head{padding:32px 72px 26px 32px;border-bottom:1px solid #e1dcd5}
.shop-dialog-simple .shop-dialog-head h2{margin:14px 0 0;font-size:clamp(27px,3vw,40px);max-width:780px;line-height:1.12}
.shop-dialog-columns{display:grid;grid-template-columns:1fr 1fr}
.shop-dialog-overview{padding:28px 32px}
.shop-dialog-simple .shop-dialog-body{display:block;border:0}
.shop-dialog-simple .shop-dialog-body section{padding:0;margin-top:23px;min-height:0;border:0}
.shop-dialog-simple .shop-dialog-body p{font-size:14px;line-height:1.6;margin:8px 0 0;color:#716a62}
.shop-dialog-simple .shop-dialog-body .shop-service-summary{margin:0;color:#262522;font-size:16px;line-height:1.6}
.shop-dialog-simple .shop-dialog-body h3{font-size:12px;font-weight:550;letter-spacing:0;margin:0;color:#252522}
.shop-full-terms{display:inline-block;margin-top:24px;font-size:12px;color:#a71120}
.shop-dialog-simple .shop-dialog-config{display:flex;flex-direction:column;justify-content:start;gap:16px;padding:28px 28px 26px;background:#f7f5f0;border:0;border-left:1px solid #e1dcd5}
.shop-dialog-simple .shop-dialog-config>label>span{font-size:12px;color:#756c62}
.shop-dialog-simple .shop-dialog-config select{padding:10px;font-size:14px}
.shop-dialog-simple .shop-dialog-step{font-size:10px;letter-spacing:.08em}
.shop-complexity-options{margin:0;padding:0;border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.shop-complexity-options legend{font-size:13px;margin-bottom:12px;font-weight:550}
.shop-complexity-options label{position:relative;cursor:pointer}
.shop-complexity-options input{position:absolute;width:1px;height:1px;opacity:0}
.shop-complexity-options label>span{display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;min-height:77px;padding:12px 4px;border:1px solid #d3ccc1;background:#fff}
.shop-complexity-options b{font-size:12px;font-weight:500}
.shop-complexity-options small{font-size:11px!important;color:#797066}
.shop-complexity-options input:checked+span{border-color:#a71120;background:#a71120;color:#fff}
.shop-complexity-options input:checked+span small{color:#efced1}
.shop-complexity-options input:focus-visible+span{outline:2px solid #a71120;outline-offset:3px}
.shop-dialog-simple .shop-complexity-example{font-size:13px;line-height:1.6;color:#756c62;white-space:pre-line}
.shop-dialog-simple .shop-preparation{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding-top:16px;margin-top:auto;border-top:1px solid #ded7cc}
.shop-preparation span{color:#756c62}
.shop-preparation b{font-weight:500;text-align:right}
.shop-dialog-simple .shop-dialog-order{padding:20px 28px;gap:24px;grid-template-columns:145px 1fr auto;align-items:center;border-top:1px solid #ded7cc;box-shadow:none}
.shop-dialog-simple .shop-dialog-quantity-field>label{font-family:inherit;font-size:11px;margin-bottom:6px}
.shop-dialog-simple .shop-quantity-stepper{grid-template-columns:32px minmax(36px,1fr) 32px}
.shop-dialog-simple .shop-quantity-stepper input{padding:6px;min-height:38px;font-size:14px}
.shop-dialog-simple .shop-quantity-stepper button{min-height:38px}
.shop-dialog-total{display:flex;flex-direction:column;align-items:end;gap:4px}
.shop-dialog-total strong{font-size:26px;font-weight:500;white-space:nowrap}
.shop-dialog-simple .shop-dialog-total small{padding:0;font-size:11px}
.shop-dialog-simple .shop-dialog-order .button{padding:18px 24px}
@media(max-width:1100px){.gateway-groups{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:38px}.gateway-intro{display:block}.gateway-steps{margin-top:25px}.gateway-topic{min-height:86px}.service-shop .shop-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.service-shop .shop-card{padding:20px}.service-shop .shop-card-footer{gap:10px}.service-shop .shop-card-footer strong{font-size:19px}}
@media(max-width:760px){.shop-gateway{padding-top:calc(var(--header,60px) + 32px);padding-bottom:38px}.gateway-intro h2{font-size:40px;max-width:480px}.gateway-tools{align-items:start;flex-direction:column;gap:22px;margin:30px 0 34px}.gateway-search{width:100%;max-width:none;flex:auto}.gateway-search input{font-size:14px}.gateway-browse{font-size:13px}.gateway-groups{gap:28px 24px}.gateway-group h2{font-size:16px;min-height:0}.gateway-topic strong{font-size:16px}.gateway-topic small{font-size:12px}.gateway-footer{font-size:12px}.service-shop .shop-layout{display:block}.service-shop .shop-sidebar{position:static;margin-bottom:24px;gap:15px}.service-shop .shop-filters{display:flex;flex-wrap:nowrap;overflow:auto;border:0;padding:0 0 8px;gap:7px}.service-shop .shop-filters button{display:flex;white-space:nowrap;min-height:40px;padding:8px 13px;border:1px solid #ded7cc;gap:8px;flex-shrink:0}.service-shop .shop-reset{display:none}.service-shop .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-dialog-columns{grid-template-columns:1fr}.shop-dialog-simple .shop-dialog-head{padding:24px 60px 22px 24px}.shop-dialog-overview{padding:22px 24px}.shop-dialog-simple .shop-dialog-config{border-left:0;border-top:1px solid #ded7cc;padding:24px}.shop-dialog-simple .shop-dialog-order{position:static;grid-template-columns:130px 1fr;padding:20px 24px;gap:18px}.shop-dialog-simple .shop-dialog-order .button{grid-column:1/-1;width:100%;justify-content:space-between}.shop-dialog-simple .shop-dialog-body p{font-size:14px}.shop-dialog-simple{width:calc(100vw - 24px);max-height:92dvh}.catalog-footlinks{font-size:12px;flex-wrap:wrap}}
@media(max-width:540px){.gateway-intro h2{font-size:36px;max-width:330px}.gateway-steps{gap:18px}.gateway-steps li{font-size:11px}.gateway-groups{grid-template-columns:1fr;row-gap:32px}.gateway-group h2{flex-direction:row;align-items:center;gap:12px;margin-bottom:14px;font-size:18px}.gateway-topic{min-height:0;padding:18px 3px 18px 0}.gateway-topic strong{font-size:17px}.gateway-topic small{max-width:290px}.gateway-footer{gap:16px}.service-shop .shop-grid{grid-template-columns:1fr}.service-shop .shop-card{min-height:260px;padding:23px}.service-shop .shop-card-copy>.shop-card-name{font-size:25px}.service-shop .shop-card-footer strong{font-size:23px}.shop-dialog-simple .shop-dialog-head h2{font-size:28px}.shop-complexity-options{gap:6px}.shop-complexity-options b{font-size:11px}.shop-complexity-options small{font-size:10px!important}}
@media(prefers-reduced-motion:reduce){.shop-gateway *, .service-shop .shop-card{transition:none}}
@media(max-width:760px){.service-shop .shop-filters{scrollbar-width:none}.service-shop .shop-filters::-webkit-scrollbar{display:none}.service-shop .shop-journey [data-shop-all-services]{margin-left:auto}}

/* The count belongs to the catalog flow, including the mobile layout. */
.service-shop .shop-catalog .shop-toolbar{position:static;top:auto;z-index:auto;min-height:40px;align-items:center;transform:none;box-shadow:none;backdrop-filter:none}
.service-shop .shop-count{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;line-height:1.4}
.complexity-piece{width:35px;height:39px;display:block;fill:currentColor;color:inherit}
.shop-complexity-options label>span{min-height:121px;gap:8px;transition:background .18s,border-color .18s}
.shop-complexity-options input:checked+span{--piece-eye:#a71120}
@media(max-width:360px){.shop-dialog-simple .shop-dialog-config{padding-inline:16px}.shop-complexity-options{gap:4px}.shop-complexity-options b{font-size:10px}}

/* Chess stamps echo the main storefront; the title button covers the tile. */
.service-shop .shop-card { --practice-color:#991b2b; min-height:320px; transition:border-color .22s,box-shadow .22s,transform .22s; }
.service-shop .shop-card[data-stage="protect"],.service-shop .shop-card[data-stage="enforce"] { --practice-color:#252727; }
.service-shop .shop-card-meta { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.service-shop .shop-card-stage { max-width:160px; text-align:right; font-size:10px; line-height:1.5; color:#79726c; }
.service-shop .shop-practice-stamp { width:52px; height:56px; flex-shrink:0; border-color:#dcd3ca; box-shadow:inset 0 0 0 4px #fff; background:#f5f1eb; }
.service-shop .shop-practice-stamp svg { width:30px; height:34px; fill:currentColor; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.service-shop .shop-card-copy { position:static; }
.service-shop .shop-card-copy::after { position:absolute; inset:0; z-index:1; content:""; cursor:pointer; }
.service-shop .shop-card-copy>.shop-card-name { display:block; overflow:visible; -webkit-line-clamp:unset; }
.service-shop .shop-card-copy:focus-visible { outline:0; }
.service-shop .shop-card:has(.shop-card-copy:focus-visible) { outline:2px solid var(--red); outline-offset:4px; }
.service-shop .shop-card-footer .shop-add { position:relative; z-index:2; gap:14px; }
.service-shop .shop-card-footer .shop-add b { display:grid; place-items:center; width:34px; height:34px; border:1px solid #d8c4c0; border-radius:50%; font-size:19px; font-weight:400; transition:color .2s,background .2s,transform .2s; }
.service-shop .shop-card:focus-within .shop-add b { background:var(--practice-color); border-color:var(--practice-color); color:white; }
.service-shop .shop-card:active { border-color:var(--practice-color); }
@media (hover:hover) and (pointer:fine) {
  .service-shop .shop-card:hover { transform:translateY(-4px); border-color:#b59c98; box-shadow:0 14px 28px #30261d0d; }
  .service-shop .shop-card::before { display:block; left:0; top:0; }
  .service-shop .shop-card:hover .shop-practice-stamp { transform:none; color:var(--practice-color); background:#eee4df; }
  .service-shop .shop-card:hover .shop-practice-stamp svg { transform:translate(3px,-4px) rotate(-7deg) scale(1.08); }
  .service-shop .shop-card:hover .shop-add b { background:var(--practice-color); border-color:var(--practice-color); color:white; transform:rotate(45deg); }
}
@media (hover:none) {
  .service-shop .shop-card:hover .shop-practice-stamp { transform:none; color:var(--practice-color); background:#f5f1eb; }
}
@media (prefers-reduced-motion:reduce) {
  .service-shop .shop-card,.service-shop .shop-card * { transition:none!important; }
  .service-shop .shop-card:hover,.service-shop .shop-card:hover .shop-practice-stamp svg,.service-shop .shop-card:hover .shop-add b { transform:none; }
  .service-shop .shop-card::before { display:none; }
}
