/* technical.co.jp migration theme: shared front-end refinements */
:root { --tec-navy:#09243c; --tec-blue:#0b718f; --tec-cyan:#0fa3b1; --tec-gold:#f5b400; --tec-ink:#17212b; --tec-muted:#647481; --tec-line:#dce5e9; --tec-soft:#f3f8fa; }
body { color:var(--tec-ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
a { color:var(--tec-blue); }
a:hover { color:var(--tec-navy); }
.ec-layoutRole__header { border-bottom:1px solid var(--tec-line); box-shadow:0 2px 14px rgba(9,36,60,.06); }
.technical-headerUtility { background:var(--tec-navy); color:#dbeaf0; font-size:.78rem; }
.technical-headerUtility__inner, .technical-headerNavi, .technical-categoryNav__inner { display:flex; align-items:center; max-width:1180px; margin:auto; padding-left:20px; padding-right:20px; }
.technical-headerUtility__inner { min-height:36px; justify-content:space-between; gap:16px; }
.technical-headerUtility nav { display:flex; gap:16px; }
.technical-headerUtility a { color:#dbeaf0; text-decoration:none; }
.technical-headerUtility a:hover { color:#fff; }
.technical-headerNavi { min-height:68px; justify-content:space-between; gap:20px; padding-top:10px; padding-bottom:10px; }
.technical-headerNavi__search { flex:1 1 390px; max-width:470px; }
.technical-headerNavi__account { display:flex; align-items:center; gap:14px; }
.technical-headerNavi__account .ec-headerNaviRole__nav, .technical-headerNavi__account .ec-headerRole__cart { display:flex; align-items:center; }
.technical-headerNavi .ec-headerRole__navSP { display:none; }
.ec-headerRole__title { margin:18px auto; }
.ec-headerRole__title a { color:var(--tec-navy); font-weight:800; letter-spacing:.04em; text-decoration:none; }
.technical-logoRole { display:flex; justify-content:center; padding:20px 20px 18px; }
.technical-logoRole__image { display:block; width:208px; height:auto; }
.technical-categoryNav { position:relative; border-top:1px solid var(--tec-line); border-bottom:1px solid var(--tec-line); background:#fff; }
.technical-categoryNav__inner { min-height:48px; gap:0; }
.technical-categoryNav a, .technical-categoryNav summary { display:block; padding:14px 16px; color:var(--tec-ink); font-size:.9rem; font-weight:700; text-decoration:none; cursor:pointer; white-space:nowrap; }
.technical-categoryNav a:hover, .technical-categoryNav summary:hover { color:var(--tec-blue); background:var(--tec-soft); }
.technical-categoryNav__details { position:relative; }
.technical-categoryNav__details summary { min-width:154px; list-style:none; color:#fff; background:var(--tec-blue); }
.technical-categoryNav__details summary::after { content:'⌄'; float:right; margin-left:18px; }
.technical-categoryNav__details summary::-webkit-details-marker { display:none; }
.technical-categoryNav__panel { position:absolute; z-index:20; top:100%; left:0; display:grid; grid-template-columns:repeat(3,minmax(185px,1fr)); width:min(760px,calc(100vw - 32px)); padding:10px; border:1px solid var(--tec-line); background:#fff; box-shadow:0 14px 30px rgba(9,36,60,.18); }
.technical-categoryNav__panel a { padding:10px 12px; white-space:normal; }
.ec-headerRole__cart .ec-cartNavi { border-radius:6px; }
.ec-layoutRole__contents { max-width:1180px; margin:0 auto; padding:36px 20px 64px; }
.ec-layoutRole__main, .ec-layoutRole__mainWithColumn, .ec-layoutRole__mainBetweenColumn { min-width:0; }
.ec-layoutRole__footer { margin-top:0; background:var(--tec-navy); color:#e8f2f5; }
.ec-footerRole { max-width:1180px; margin:auto; padding-left:20px; padding-right:20px; }
.ec-footerRole a { color:#e8f2f5; }
.ec-pageHeader { margin:0 0 30px; padding-bottom:16px; border-bottom:3px solid var(--tec-blue); }
.ec-pageHeader h1 { color:var(--tec-navy); font-size:clamp(1.55rem,3vw,2.25rem); letter-spacing:.03em; }

/* Product list */
.ec-searchnavRole { margin-bottom:26px; padding:20px 0; border-bottom:1px solid var(--tec-line); }
.ec-searchnavRole__infos { align-items:center; gap:16px; }
.ec-searchnavRole__counter { color:var(--tec-navy); font-size:1.05rem; font-weight:700; }
.ec-topicpath__item a { color:var(--tec-muted); }
.ec-shelfGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.ec-shelfGrid__item { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--tec-line); border-radius:8px; background:#fff; box-shadow:0 4px 16px rgba(9,36,60,.06); transition:transform .18s,box-shadow .18s; }
.ec-shelfGrid__item:hover { transform:translateY(-3px); box-shadow:0 10px 25px rgba(9,36,60,.13); }
.ec-shelfGrid__item>a { display:block; padding:0 16px 16px; color:var(--tec-ink); text-decoration:none; }
.ec-shelfGrid__item-image { display:flex; align-items:center; justify-content:center; aspect-ratio:1/1; margin:0 -16px 14px; background:var(--tec-soft); overflow:hidden; }
.ec-shelfGrid__item-image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .25s; }
.ec-shelfGrid__item:hover .ec-shelfGrid__item-image img { transform:scale(1.035); }
.ec-shelfGrid__item>a>p:nth-child(2) { min-height:3em; margin:0 0 8px; font-size:1rem; font-weight:700; line-height:1.5; }
.ec-shelfGrid__item>a>p:nth-child(3) { min-height:2.9em; margin:0 0 12px; color:var(--tec-muted); font-size:.83rem; line-height:1.45; overflow:hidden; }
.ec-shelfGrid__item .price02-default { color:var(--tec-navy); font-size:1.15rem; font-weight:800; }
.ec-shelfGrid__item form { margin-top:auto; padding:0 16px; }
.ec-shelfGrid__item .ec-productRole__actions { gap:6px; }
.ec-shelfGrid__item .ec-productRole__btn { padding:12px 16px 16px; }
.ec-shelfGrid__item .ec-blockBtn--action, .ec-productRole .ec-blockBtn--action { border-radius:5px; background:var(--tec-gold); color:var(--tec-ink); font-weight:800; }
.ec-shelfGrid__item .ec-blockBtn--action:hover, .ec-productRole .ec-blockBtn--action:hover { background:#ffd057; }

/* Product detail */
.ec-productRole { gap:48px; }
.ec-productRole__profile { padding:8px 0; }
.ec-productRole__title { margin-bottom:14px; }
.ec-productRole__title .ec-headingTitle { color:var(--tec-navy); font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.45; }
.ec-productRole__price { margin:20px 0; padding:18px; border-left:4px solid var(--tec-gold); background:#fff9e8; }
.ec-productRole__price .price02-default { color:var(--tec-navy); font-size:1.7rem; font-weight:800; }
.ec-productRole__description { padding-top:20px; border-top:1px solid var(--tec-line); line-height:1.85; }
.ec-sliderItemRole .item_visual { border:1px solid var(--tec-line); border-radius:8px; background:var(--tec-soft); overflow:hidden; }
.ec-sliderItemRole .slide-item { display:flex !important; align-items:center; justify-content:center; }
.ec-sliderItemRole .slide-item img { object-fit:contain; }
.ec-sliderItemRole .item_nav { gap:8px; margin-top:12px; }
.ec-sliderItemRole .slideThumb { border:1px solid var(--tec-line); border-radius:4px; overflow:hidden; }
.ec-productRole__actions { padding:18px; border:1px solid var(--tec-line); border-radius:8px; background:var(--tec-soft); }

/* My page and historical orders */
.ec-mypageRole, .ec-orderRole { max-width:100%; }
.ec-mypageRole .ec-pageHeader { margin-bottom:20px; }
.ec-mypageNavi { margin:0 0 28px; padding:8px; border-radius:8px; background:var(--tec-soft); }
.ec-mypageNavi__item a { border-radius:4px; }
.ec-orderRole__detail, .ec-orderRole__summary { border:1px solid var(--tec-line); border-radius:8px; background:#fff; box-shadow:0 3px 14px rgba(9,36,60,.05); }
.ec-orderRole__detail { padding:24px; }
.ec-orderRole__summary { padding:20px; }
.ec-orderDelivery, .ec-orderPayment, .ec-orderConfirm { margin-top:26px; padding-top:20px; border-top:1px solid var(--tec-line); }
.ec-rectHeading h2 { color:var(--tec-navy); font-size:1.15rem; }
.ec-orderDelivery__item { padding:14px 0; border-bottom:1px solid var(--tec-line); }
.ec-totalBox__total, .ec-totalBox__paymentTotal { color:var(--tec-navy); font-weight:800; }
.ec-totalBox__price { color:var(--tec-blue); }
.ec-definitions dt { color:var(--tec-muted); }

/* Brand-led home page */
.technical-home { margin:-36px -20px -64px; overflow:hidden; }
.technical-homeHero { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(390px,.98fr); min-height:570px; background:linear-gradient(123deg,#062138 0%,#0b5775 57%,#0d8c9d 100%); color:#fff; }
.technical-homeHero__copy { display:flex; flex-direction:column; justify-content:center; max-width:620px; padding:72px max(8%,52px); }
.technical-homeHero__eyebrow, .technical-sectionLabel { margin:0 0 13px; color:#8ee6ee; font-size:.75rem; font-weight:800; letter-spacing:.16em; }
.technical-homeHero h1 { margin:0; font-size:clamp(2.7rem,5.1vw,5.25rem); letter-spacing:.02em; line-height:1.14; }
.technical-homeHero h1 em { color:#ffd25d; font-style:normal; }
.technical-homeHero__lead { max-width:500px; margin:26px 0 0; font-size:1.03rem; font-weight:600; line-height:1.9; }
.technical-homeHero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.technical-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px; border:1px solid transparent; border-radius:2px; font-weight:800; text-decoration:none; transition:.2s ease; }
.technical-button--primary { background:var(--tec-gold); color:var(--tec-ink); }.technical-button--primary:hover { background:#ffd45b; color:var(--tec-ink); transform:translateY(-2px); }.technical-button--outline { border-color:rgba(255,255,255,.72); color:#fff; }.technical-button--outline:hover { background:#fff; color:var(--tec-navy); }.technical-button--dark { background:var(--tec-navy); color:#fff; }.technical-button--dark:hover { background:var(--tec-blue); color:#fff; }
.technical-homeHero__facts { display:flex; flex-wrap:wrap; gap:18px; margin:34px 0 0; padding:0; list-style:none; font-size:.8rem; }.technical-homeHero__facts li { padding-right:18px; border-right:1px solid rgba(255,255,255,.28); }.technical-homeHero__facts li:last-child { border:0; }.technical-homeHero__facts strong { display:block; color:#fff; font-size:1rem; }
.technical-homeHero__visual { position:relative; min-height:570px; overflow:hidden; background:linear-gradient(155deg,rgba(255,255,255,.18),rgba(255,255,255,.03)); }.technical-homeHero__visual::before { position:absolute; top:-26%; right:-24%; width:570px; height:570px; border:1px solid rgba(255,255,255,.28); border-radius:50%; content:''; }.technical-homeHero__visual::after { position:absolute; bottom:-42%; left:-13%; width:480px; height:480px; border:1px solid rgba(255,255,255,.18); border-radius:50%; content:''; }
.technical-productShot { position:absolute; z-index:1; margin:0; overflow:hidden; border:8px solid #fff; background:#f7fafb; box-shadow:0 20px 45px rgba(0,0,0,.22); }.technical-productShot img { display:block; width:100%; height:100%; object-fit:cover; }.technical-productShot--large { top:13%; left:17%; width:58%; height:67%; transform:rotate(-5deg); }.technical-productShot--top { top:9%; right:7%; width:30%; height:31%; transform:rotate(8deg); }.technical-productShot--bottom { right:8%; bottom:8%; width:32%; height:29%; transform:rotate(6deg); }.technical-homeHero__stamp { position:absolute; z-index:2; right:15%; bottom:11%; display:flex; align-items:center; justify-content:center; width:94px; height:94px; border:2px solid #ffd25d; border-radius:50%; background:var(--tec-navy); color:#ffd25d; font-size:.78rem; font-weight:800; letter-spacing:.09em; line-height:1.3; text-align:center; transform:rotate(-10deg); }.technical-homeHero__stamp small { font-size:.58rem; }
.technical-serviceIntro, .technical-serviceCards, .technical-orderFlow { max-width:1180px; margin-right:auto; margin-left:auto; padding-right:20px; padding-left:20px; }.technical-serviceIntro { display:flex; justify-content:space-between; gap:52px; padding-top:90px; padding-bottom:30px; }.technical-serviceIntro .technical-sectionLabel, .technical-orderFlow .technical-sectionLabel { color:var(--tec-blue); }.technical-serviceIntro h2, .technical-orderFlow h2 { margin:0; color:var(--tec-navy); font-size:clamp(2rem,3.5vw,3.3rem); line-height:1.32; }.technical-serviceIntro > p { max-width:420px; margin:42px 0 0; color:var(--tec-muted); line-height:1.9; }
.technical-serviceCards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding-bottom:96px; }.technical-serviceCards a { position:relative; min-height:315px; overflow:hidden; background:var(--tec-navy); color:#fff; text-decoration:none; }.technical-serviceCards img { width:100%; height:100%; object-fit:cover; opacity:.72; transition:transform .35s,opacity .35s; }.technical-serviceCards a:hover img { opacity:.9; transform:scale(1.06); }.technical-serviceCards span, .technical-serviceCards strong { position:absolute; left:24px; }.technical-serviceCards span { bottom:55px; color:#96eaf1; font-size:.68rem; font-weight:800; letter-spacing:.12em; }.technical-serviceCards strong { right:18px; bottom:24px; font-size:1.14rem; }
.technical-orderFlow { display:grid; grid-template-columns:.72fr 1.28fr; gap:38px; padding-top:74px; padding-bottom:74px; }.technical-orderFlow::before { position:absolute; right:0; left:0; z-index:-1; height:100%; background:var(--tec-soft); content:''; }.technical-orderFlow { position:relative; }.technical-orderFlow ol { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin:0; padding:0; list-style:none; }.technical-orderFlow li { min-height:170px; padding:22px; background:#fff; border-top:4px solid var(--tec-cyan); box-shadow:0 5px 18px rgba(9,36,60,.07); }.technical-orderFlow b { display:block; margin-bottom:20px; color:var(--tec-gold); font-size:1.4rem; }.technical-orderFlow strong { display:block; margin-bottom:9px; color:var(--tec-navy); }.technical-orderFlow span { color:var(--tec-muted); font-size:.85rem; line-height:1.6; }.technical-orderFlow .technical-button { grid-column:2; justify-self:start; margin-top:-25px; }

/* Desktop layout: preserve the former site's left / content / right structure. */
.ec-layoutRole__left > *, .ec-layoutRole__right > * { margin:0 0 18px; padding:16px; border:1px solid var(--tec-line); border-radius:6px; background:#fff; box-shadow:0 3px 12px rgba(9,36,60,.05); }
.ec-layoutRole__left h2, .ec-layoutRole__right h2, .ec-layoutRole__left .ec-heading-bold, .ec-layoutRole__right .ec-heading-bold { margin:-16px -16px 14px; padding:11px 13px; border-bottom:2px solid var(--tec-blue); background:var(--tec-soft); color:var(--tec-navy); font-size:1rem; }
.ec-layoutRole__left ul, .ec-layoutRole__right ul { margin:0; padding:0; list-style:none; }
.ec-layoutRole__left li a, .ec-layoutRole__right li a { display:block; padding:8px 2px; border-bottom:1px solid var(--tec-line); color:var(--tec-ink); font-size:.88rem; text-decoration:none; }
.ec-layoutRole__left li a:hover, .ec-layoutRole__right li a:hover { color:var(--tec-blue); }
.technical-sideCategory ul { max-height:none; overflow:visible; }
.technical-sideCategory li a { padding:9px 3px; }
.ec-layoutRole__mainBetweenColumn .ec-shelfGrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ec-layoutRole__mainBetweenColumn .ec-shelfGrid .ec-shelfGrid__item { width:auto !important; min-width:0; margin-bottom:0; padding:0 !important; }
@media (min-width: 981px) { .ec-layoutRole__contents { align-items:flex-start; } .ec-layoutRole__left, .ec-layoutRole__right { width:18% !important; flex:0 0 18%; } .ec-layoutRole__mainBetweenColumn { width:64% !important; flex:0 0 64%; padding:0 18px; } }

@media (max-width: 980px) { .ec-shelfGrid { grid-template-columns:repeat(3,minmax(0,1fr)); } .ec-productRole { gap:28px; } }
@media (max-width: 820px) { .technical-headerUtility__inner, .technical-headerNavi, .technical-categoryNav__inner { padding-left:14px; padding-right:14px; } .technical-headerUtility__inner { min-height:32px; } .technical-headerUtility__inner > span { display:none; } .technical-headerUtility nav { width:100%; justify-content:space-between; gap:8px; } .technical-headerNavi { min-height:56px; } .technical-headerNavi__search { display:none; } .technical-headerNavi__account { margin-left:auto; } .technical-headerNavi .ec-headerRole__navSP { display:block; order:-1; } .technical-categoryNav__inner { overflow-x:auto; } .technical-categoryNav a, .technical-categoryNav summary { padding:12px 11px; font-size:.8rem; } .technical-categoryNav a:nth-of-type(n+4) { display:none; } .technical-categoryNav__panel { grid-template-columns:repeat(2,minmax(0,1fr)); } .technical-home { margin:-24px -14px -48px; } .technical-homeHero { grid-template-columns:1fr; } .technical-homeHero__copy { padding:56px 28px; } .technical-homeHero__visual { min-height:410px; } .technical-serviceIntro, .technical-orderFlow { display:block; padding-top:60px; }.technical-serviceIntro > p { margin-top:24px; }.technical-serviceCards { grid-template-columns:1fr; padding-bottom:60px; }.technical-serviceCards a { min-height:250px; }.technical-orderFlow ol { grid-template-columns:1fr; margin-top:30px; }.technical-orderFlow li { min-height:auto; }.technical-orderFlow .technical-button { margin-top:24px; } }
@media (max-width: 700px) { .ec-layoutRole__contents { padding:24px 14px 48px; } .technical-logoRole { padding:14px; }.technical-logoRole__image { width:178px; } .technical-homeHero h1 { font-size:2.7rem; }.technical-homeHero__facts { gap:10px; }.technical-homeHero__facts li { padding-right:10px; font-size:.72rem; }.technical-productShot--large { left:10%; width:61%; }.technical-productShot--top { right:5%; }.technical-productShot--bottom { right:7%; }.technical-homeHero__stamp { right:12%; bottom:7%; width:78px; height:78px; }.ec-shelfGrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .ec-shelfGrid__item>a { padding:0 11px 12px; } .ec-shelfGrid__item-image { margin:0 -11px 10px; } .ec-shelfGrid__item>a>p:nth-child(2) { font-size:.9rem; } .ec-shelfGrid__item>a>p:nth-child(3) { display:none; } .ec-shelfGrid__item form { padding:0 11px; } .ec-shelfGrid__item .ec-productRole__btn { padding:10px 11px 12px; } .ec-productRole { display:block; } .ec-productRole .ec-grid2__cell + .ec-grid2__cell { margin-top:24px; } .ec-orderRole__detail, .ec-orderRole__summary { padding:16px; } }

/* Image assets from EC-CUBE 2 are 90–130px thumbnails.  Keep them at an honest
   display size and use print-inspired CSS artwork for the large hero. */
.technical-printArt { position:absolute; inset:0; }
.technical-homeHero__movie { position:absolute; width:100%; height:100%; object-fit:cover; }
.technical-homeHero__movieShade { position:absolute; inset:0; background:linear-gradient(135deg,rgba(4,31,51,.18),rgba(10,104,124,.1)); }
.technical-printArt__sheet { position:absolute; display:flex; flex-direction:column; justify-content:flex-end; width:220px; height:290px; padding:24px; box-shadow:0 22px 42px rgba(0,0,0,.23); font-size:.72rem; font-weight:800; letter-spacing:.12em; line-height:1.1; }
.technical-printArt__sheet b { margin-top:7px; font-size:1.45rem; letter-spacing:.02em; }
.technical-printArt__sheet--one { top:17%; left:17%; z-index:3; background:linear-gradient(145deg,#ffd25d 0 39%,#fbfbf3 39% 69%,#ed6261 69%); color:#08263b; transform:rotate(-8deg); }
.technical-printArt__sheet--two { top:11%; right:11%; z-index:2; background:linear-gradient(145deg,#95e6ed 0 42%,#0e5c7e 42% 73%,#f4f6ef 73%); color:#fff; transform:rotate(9deg); }
.technical-printArt__sheet--three { right:15%; bottom:10%; z-index:1; background:linear-gradient(145deg,#f4f6ef 0 37%,#103b57 37% 65%,#80d8d8 65%); color:#103b57; transform:rotate(4deg); }
.technical-printArt__sheet--three b { color:#fff; }
.technical-homeHero__stamp { right:12%; bottom:8%; }
.technical-categoryPicker { max-width:1180px; margin:0 auto; padding:88px 20px 94px; }
.technical-categoryPicker__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:34px; }
.technical-categoryPicker__heading .technical-sectionLabel { color:var(--tec-blue); }
.technical-categoryPicker h2 { margin:0; color:var(--tec-navy); font-size:clamp(2rem,3.5vw,3.3rem); line-height:1.32; }
.technical-categoryPicker__heading > p { margin:0 0 5px; color:var(--tec-muted); line-height:1.8; }
.technical-categoryPicker__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.technical-categoryCard { position:relative; display:flex; align-items:center; min-height:104px; overflow:hidden; border:1px solid var(--tec-line); background:#fff; color:var(--tec-ink); text-decoration:none; transition:transform .2s,box-shadow .2s,border-color .2s; }
.technical-categoryCard:hover { z-index:1; border-color:var(--tec-cyan); box-shadow:0 10px 25px rgba(9,36,60,.13); color:var(--tec-navy); transform:translateY(-3px); }
.technical-categoryCard__visual { display:flex; flex:0 0 112px; align-items:center; justify-content:center; align-self:stretch; overflow:hidden; background:linear-gradient(135deg,#e9f3f4,#c7e3e7); }
.technical-categoryCard__visual img { display:block; width:auto; max-width:112px; height:auto; max-height:88px; object-fit:contain; image-rendering:auto; }
.technical-categoryCard__visual i { display:flex; align-items:center; justify-content:center; width:62px; height:62px; border:1px solid rgba(10,80,105,.25); border-radius:50%; color:var(--tec-blue); font-size:1.6rem; font-style:normal; font-weight:800; }
.technical-categoryCard__name { padding:12px 27px 12px 13px; font-size:.86rem; font-weight:800; line-height:1.45; }
.technical-categoryCard__arrow { position:absolute; right:10px; bottom:9px; color:var(--tec-blue); font-weight:800; }

/* EC-CUBE 2 stored only thumbnail-size product files. Never stretch these in
   a product card; a centered 130px image is sharper and more honest. */
.ec-shelfGrid__item-image { display:flex; align-items:center; justify-content:center; min-height:142px; background:#f6f9f9; }
.ec-shelfGrid__item-image img { display:block; width:auto !important; max-width:130px !important; height:auto !important; max-height:130px; object-fit:contain; }
.ec-productRole__img { display:flex; align-items:center; justify-content:center; min-height:240px; background:#f6f9f9; }
.ec-productRole__img img { display:block; width:auto !important; max-width:100%; height:auto !important; max-height:360px; object-fit:contain; }

/* Make the legacy-inspired desktop columns useful rather than cramped. */
.ec-layoutRole__mainBetweenColumn .ec-shelfGrid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
@media (min-width:981px) { .ec-layoutRole__contents { max-width:1360px; } .ec-layoutRole__left { width:17% !important; flex:0 0 17%; } .ec-layoutRole__right { width:17% !important; flex:0 0 17%; } .ec-layoutRole__mainBetweenColumn { width:66% !important; flex:0 0 66%; padding:0 24px; } }
@media (max-width:820px) { .technical-printArt__sheet { width:170px; height:220px; padding:17px; }.technical-printArt__sheet b { font-size:1.1rem; }.technical-categoryPicker { padding:60px 20px; }.technical-categoryPicker__heading { display:block; }.technical-categoryPicker__heading > p { margin-top:20px; }.technical-categoryPicker__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .technical-categoryPicker { padding:52px 14px; }.technical-categoryPicker__grid { grid-template-columns:1fr; }.technical-categoryCard__visual { flex-basis:108px; }.technical-printArt__sheet--one { left:12%; }.technical-printArt__sheet--two { right:4%; }.technical-printArt__sheet--three { right:10%; }.technical-homeHero__visual { min-height:360px; } }

/* Home: retain the old site's information density, with a cleaner hierarchy. */
.technical-homeHero { min-height:480px; }
.technical-homeHero__visual { display:flex; align-items:center; justify-content:center; min-height:480px; background:#071f34; }
.technical-homeHero__visual::before, .technical-homeHero__visual::after { display:none; }
.technical-homeHero__movie { position:relative; z-index:1; width:100%; height:100%; object-fit:contain; }
.technical-homeHero__movieShade { z-index:2; background:linear-gradient(90deg,rgba(7,31,52,.12),rgba(7,31,52,0)); pointer-events:none; }
.technical-printArt { z-index:3; pointer-events:none; }
.technical-homeHero__stamp { right:6%; bottom:7%; width:80px; height:80px; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.technical-logoRole { padding:16px 20px; }
.technical-logoRole__image { width:208px; max-width:none; }

.technical-homeLegacyGrid { display:grid; grid-template-columns:220px minmax(0,1fr) 202px; gap:24px; max-width:1180px; margin:0 auto; padding:54px 20px 28px; }
.technical-homeSide { align-self:start; border:1px solid var(--tec-line); background:#fff; box-shadow:0 8px 23px rgba(9,36,60,.07); }
.technical-homeSide__label { margin:0; padding:13px 16px 0; color:var(--tec-blue); font-size:.64rem; font-weight:800; letter-spacing:.14em; }
.technical-homeSide h2 { margin:5px 0 0; padding:0 16px 13px; border-bottom:2px solid var(--tec-blue); color:var(--tec-navy); font-size:1.03rem; }
.technical-homeSide ul { max-height:443px; margin:0; padding:0; overflow-y:auto; list-style:none; }
.technical-homeSide li a { display:flex; justify-content:space-between; gap:8px; padding:9px 13px; border-bottom:1px solid var(--tec-line); color:var(--tec-ink); font-size:.79rem; font-weight:700; line-height:1.4; text-decoration:none; }
.technical-homeSide li a:hover { background:var(--tec-soft); color:var(--tec-blue); }.technical-homeSide li a span { color:var(--tec-blue); }
.technical-homeMain { padding:15px 18px; }.technical-homeMain .technical-sectionLabel { color:var(--tec-blue); }
.technical-homeMain h2 { margin:0; color:var(--tec-navy); font-size:clamp(1.9rem,3.3vw,3.25rem); line-height:1.28; }.technical-homeMain p { color:var(--tec-muted); line-height:1.9; }.technical-homeMain__lead { margin-top:24px; color:var(--tec-ink) !important; font-size:1rem; font-weight:700; }
.technical-homeMain__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.technical-button { min-height:52px; gap:22px; padding:0 20px 0 23px; border-radius:7px; box-shadow:0 8px 18px rgba(9,36,60,.14); letter-spacing:.03em; }
.technical-button b { display:flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:rgba(255,255,255,.25); font-size:1rem; line-height:1; transition:transform .2s; }.technical-button:hover b { transform:translateX(3px); }
.technical-button--primary { background:linear-gradient(135deg,#ffc517,#f39f00); }.technical-button--soft { border-color:var(--tec-line); background:#fff; color:var(--tec-navy); }.technical-button--soft:hover { border-color:var(--tec-cyan); background:var(--tec-soft); color:var(--tec-navy); }.technical-button--soft b { background:var(--tec-soft); color:var(--tec-blue); }
.technical-homeMain__notes { display:flex; flex-wrap:wrap; gap:8px; margin-top:29px; }.technical-homeMain__notes span { padding:7px 10px; border:1px solid #cfe3e7; border-radius:20px; color:var(--tec-blue); font-size:.75rem; font-weight:800; }
.technical-homeSide--visual { padding-bottom:13px; }.technical-pickupCard { display:block; margin:13px auto 0; width:166px; overflow:hidden; background:#f4f8f9; color:var(--tec-ink); text-decoration:none; }.technical-pickupCard img { display:block; width:166px; height:166px; }.technical-pickupCard span { display:block; padding:8px 9px; font-size:.77rem; font-weight:800; line-height:1.4; }.technical-pickupCard:hover { box-shadow:0 6px 15px rgba(9,36,60,.14); color:var(--tec-blue); }.technical-sideCta { display:flex; align-items:center; justify-content:space-between; margin:14px 12px 0; padding:11px; border-radius:5px; background:var(--tec-navy); color:#fff; font-size:.76rem; font-weight:800; text-decoration:none; }.technical-sideCta:hover { background:var(--tec-blue); color:#fff; }
.technical-categoryPicker { padding-top:55px; }
@media (max-width:980px) { .technical-homeLegacyGrid { grid-template-columns:190px minmax(0,1fr); }.technical-homeSide--visual { display:none; } }
@media (max-width:700px) { .technical-logoRole__image { width:208px; }.technical-homeHero { grid-template-columns:1fr; }.technical-homeHero__copy { padding:52px 26px; }.technical-homeHero__visual { min-height:260px; }.technical-homeLegacyGrid { display:block; padding:34px 14px; }.technical-homeSide--category { display:none; }.technical-homeMain { padding:0; }.technical-homeMain h2 { font-size:2rem; }.technical-homeMain__actions .technical-button { flex:1; }.technical-homeHero__stamp { width:68px; height:68px; }.technical-categoryPicker { padding-top:24px; } }

/* Whole video, no crop and no artificial letterbox area. */
.technical-homeHero { align-items:center; min-height:0; }
.technical-homeHero__visual { align-self:center; min-height:0; background:transparent; }
.technical-homeHero__movie { width:100%; height:auto; max-height:none; object-fit:contain; }
.technical-homeHero__movieShade { display:none; }
.technical-homeHero__stamp { right:4%; bottom:5%; }
.technical-homeSide ul { max-height:none; overflow:visible; }

/* Give the header controls a considered, app-like treatment. */
.ec-layoutRole__header { border-bottom:0; box-shadow:0 5px 22px rgba(9,36,60,.1); }
.technical-headerUtility { background:linear-gradient(90deg,#062138,#0c5876); }.technical-headerUtility a { position:relative; padding:3px 0; }.technical-headerUtility a:not(:last-child)::after { position:absolute; top:6px; right:-9px; width:1px; height:10px; background:rgba(255,255,255,.32); content:''; }
.technical-headerNavi { min-height:76px; }.technical-headerNavi__search { padding:4px 12px; border:1px solid var(--tec-line); border-radius:24px; background:#f8fbfb; }.technical-headerNavi__search .ec-headerSearch { margin:0; }.technical-headerNavi__account { gap:8px; }.technical-headerNavi__account > * { padding:6px 9px; border-radius:7px; transition:background .2s; }.technical-headerNavi__account > *:hover { background:var(--tec-soft); }

/* Horizontal logo artwork: the source SVG contains an Illustrator artboard with excess whitespace. */
.technical-logoRole__link { display:inline-flex; align-items:center; max-width:min(92vw,330px); }
.technical-logoRole__image { display:block; width:290px; max-width:100%; height:90px; object-fit:contain; object-position:left center; }
.technical-footer__brand > a { display:inline-flex; align-items:center; width:min(100%,285px); min-height:78px; padding:0; background:transparent; }
.technical-footer__brand img { width:100%; height:78px; padding:0; background:transparent; object-fit:contain; object-position:left center; }

/* Compact, readable contact CTA. */
.technical-footer__contact { min-height:104px; padding:16px 18px; border-radius:10px; }
.technical-footer__contact strong { margin-top:5px; font-size:.96rem; }
.technical-footer__contact span { right:16px; bottom:14px; }

/* Category landing visual: each category receives a non-upscaled printing image banner. */
.technical-categoryHero { position:relative; min-height:190px; margin:14px 0 22px; overflow:hidden; border-radius:12px; background:#062138; color:#fff; isolation:isolate; }
.technical-categoryHero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:right center; }
.technical-categoryHero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,25,43,.92) 0%,rgba(5,37,61,.72) 42%,rgba(5,37,61,.08) 100%); }
.technical-categoryHero__copy { position:relative; z-index:1; max-width:620px; padding:32px 38px; }
.technical-categoryHero__copy span { display:block; color:#8ee6ee; font-size:.68rem; font-weight:800; letter-spacing:.16em; }
.technical-categoryHero__copy h1 { margin:8px 0 9px; color:#fff; font-size:clamp(1.45rem,3vw,2.25rem); line-height:1.25; }
.technical-categoryHero__copy p { margin:0; color:#e4f1f4; font-size:.86rem; line-height:1.8; }
@media (max-width:820px) { .technical-logoRole__image { width:230px; height:68px; }.technical-categoryHero { min-height:212px; border-radius:0; }.technical-categoryHero__shade { background:linear-gradient(90deg,rgba(4,25,43,.93),rgba(5,37,61,.46)); }.technical-categoryHero__copy { padding:27px 24px; }.technical-categoryHero__copy p { max-width:29em; } }

/* Final header, sidebar and footer refinements. */
.technical-headerUtility__home { display:inline-flex; align-items:center; gap:0; font-weight:800; letter-spacing:.02em; }
.technical-headerUtility__home:hover { text-decoration:underline; text-underline-offset:3px; }
.technical-legacyRight__guides { display:grid; gap:7px; padding:11px; }
.technical-legacyRight__guides a { position:relative; display:block; min-height:50px; margin:0; padding:9px 10px; border:1px solid #d8e4e8; border-radius:7px; background:linear-gradient(135deg,#fff,#f3f8f9); color:var(--tec-navy); font-size:.76rem; font-weight:800; line-height:1.25; text-decoration:none; transition:transform .18s,box-shadow .18s,border-color .18s; }
.technical-legacyRight__guides a span { display:block; margin-bottom:3px; color:var(--tec-blue); font-size:.56rem; font-weight:800; letter-spacing:.13em; }
.technical-legacyRight__guides a b { display:block; font-weight:800; }
.technical-legacyRight__guides a i { color:var(--tec-blue); font-size:1rem; font-style:normal; }
.technical-legacyRight__guides a:hover { border-color:#54a6bc; box-shadow:0 6px 14px rgba(9,36,60,.12); color:var(--tec-blue); transform:translateY(-1px); }
.technical-footer__brand > a { width:250px; min-height:0; }
.technical-footer__brand img { width:250px; height:auto; object-fit:initial; }
.technical-footer__contact { min-height:0; padding:6px 15px; }
.technical-footer__contact::after { width:82px; height:82px; right:-18px; bottom:-36px; }
.technical-footer__contact strong { margin-top:3px; font-size:.92rem; }
.technical-footer__contact span { right:14px; bottom:10px; font-size:1.12rem; }
.ec-shelfGrid__item-image { background:#fff; }
.ec-shelfGrid__item-image img { mix-blend-mode:normal; image-rendering:auto; }
.technical-guideBanner { margin:14px 0 26px; overflow:hidden; border-radius:10px; box-shadow:0 8px 18px rgba(9,36,60,.1); }
.technical-guideBanner img { display:block; width:100%; height:auto; }
.technical-businessUploadLink { position:relative; display:block; margin:0 0 14px; padding:17px 35px 17px 16px; overflow:hidden; border-radius:9px; background:linear-gradient(135deg,#0d7894,#073b5b); color:#fff; box-shadow:0 7px 17px rgba(9,36,60,.16); text-decoration:none; }
.technical-businessUploadLink::after { position:absolute; right:-21px; bottom:-32px; width:92px; height:92px; border:1px solid rgba(255,255,255,.22); border-radius:50%; content:''; }
.technical-businessUploadLink span { display:block; color:#8ee6ee; font-size:.56rem; font-weight:800; letter-spacing:.13em; }.technical-businessUploadLink strong { display:block; margin-top:6px; color:#fff; font-size:.82rem; line-height:1.5; }.technical-businessUploadLink b { position:absolute; right:15px; bottom:15px; font-size:1.15rem; }
.technical-businessCalendar { margin-top:15px; padding:13px; border:1px solid var(--tec-line); background:#fff; }.technical-businessCalendar h2 { margin:0 0 9px; color:var(--tec-navy); font-size:.81rem; text-align:center; }.technical-businessCalendar table { width:100%; border-collapse:collapse; font-size:.63rem; text-align:center; }.technical-businessCalendar th { padding:5px 1px; color:var(--tec-blue); font-weight:800; }.technical-businessCalendar td { padding:5px 1px; border:1px solid #edf2f3; }.technical-businessCalendar .is-sunday { color:#d75151; background:#fff7f7; }.technical-businessCalendar .is-saturday { color:#327ba2; background:#f4faff; }.technical-businessCalendar p { margin:9px 0 0; color:var(--tec-muted); font-size:.62rem; line-height:1.55; }
.technical-businessUpload { max-width:780px; margin:0 auto; }.technical-businessUpload h1 { margin:7px 0 16px; color:var(--tec-navy); font-size:clamp(1.8rem,3.5vw,2.75rem); line-height:1.3; }.technical-businessUpload__lead { color:var(--tec-muted); line-height:1.85; }.technical-businessUpload__notice { display:flex; gap:15px; align-items:flex-start; margin:25px 0; padding:15px 18px; border-left:4px solid var(--tec-cyan); background:var(--tec-soft); color:var(--tec-muted); font-size:.88rem; line-height:1.7; }.technical-businessUpload__notice strong { flex:0 0 auto; color:var(--tec-navy); }.technical-businessUpload__notice a { color:var(--tec-blue); font-weight:800; }.technical-businessUpload__form { display:grid; gap:17px; padding:28px; border:1px solid var(--tec-line); background:#fff; box-shadow:0 8px 20px rgba(9,36,60,.06); }.technical-businessUpload__form > div { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.technical-businessUpload__form label { display:grid; gap:7px; color:var(--tec-navy); font-size:.86rem; font-weight:800; }.technical-businessUpload__form label b { display:inline-block; width:max-content; padding:2px 5px; background:#e5655d; color:#fff; font-size:.62rem; }.technical-businessUpload__form input:not([type=file]),.technical-businessUpload__form textarea { box-sizing:border-box; width:100%; padding:10px; border:1px solid #cddce1; border-radius:4px; font:inherit; font-weight:400; }.technical-businessUpload__form textarea { resize:vertical; }.technical-businessUpload__help { margin:-9px 0 0; color:var(--tec-muted); font-size:.78rem; }.technical-businessUpload__form .technical-button { justify-self:start; border:0; cursor:pointer; }.technical-businessUpload__honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
@media (max-width:700px) { .technical-businessUpload__form { padding:19px; }.technical-businessUpload__form > div { grid-template-columns:1fr; }.technical-businessUpload__notice { display:block; }.technical-businessUpload__notice span { display:block; margin-top:7px; } }
@media (max-width:820px) { .technical-headerUtility__home span { display:none; }.technical-footer__brand > a,.technical-footer__brand img { width:230px; height:auto; } }
.technical-categoryNav { background:#f8fbfb; }.technical-categoryNav__inner { min-height:54px; }.technical-categoryNav a, .technical-categoryNav summary { position:relative; padding:16px 18px; }.technical-categoryNav a::after { position:absolute; right:18px; bottom:10px; left:18px; height:2px; background:var(--tec-cyan); content:''; opacity:0; transform:scaleX(.4); transition:.2s; }.technical-categoryNav a:hover::after { opacity:1; transform:scaleX(1); }.technical-categoryNav__details summary { border-radius:0 0 6px 6px; box-shadow:0 5px 12px rgba(9,36,60,.12); }

/* Structured footer with real hierarchy and a clear support action. */
.ec-layoutRole__footer { background:#062138; }.technical-footer { max-width:1180px; margin:0 auto; padding:58px 20px 0; color:#dcecf0; }.technical-footer__top { display:grid; grid-template-columns:1.15fr 1fr .8fr; gap:48px; padding-bottom:42px; }.technical-footer__brand img { display:block; width:208px; height:auto; padding:9px; background:#fff; }.technical-footer__brand p { margin:18px 0 0; color:#aac2cb; font-size:.86rem; line-height:1.8; }.technical-footer__links { display:grid; grid-template-columns:1fr 1fr; gap:26px; }.technical-footer h2 { margin:0 0 14px; color:#8ee6ee; font-size:.72rem; letter-spacing:.12em; }.technical-footer__links a { display:block; margin:0 0 10px; color:#dcecf0; font-size:.84rem; text-decoration:none; }.technical-footer__links a:hover { color:#fff; text-decoration:underline; }.technical-footer__contact { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:126px; padding:22px; overflow:hidden; border:1px solid rgba(142,230,238,.5); background:linear-gradient(135deg,#0f7691,#0b4361); color:#fff; text-decoration:none; transition:transform .2s,box-shadow .2s; }.technical-footer__contact::after { position:absolute; right:-20px; bottom:-42px; width:110px; height:110px; border:1px solid rgba(255,255,255,.2); border-radius:50%; content:''; }.technical-footer__contact:hover { color:#fff; box-shadow:0 12px 25px rgba(0,0,0,.22); transform:translateY(-3px); }.technical-footer__contact small { color:#8ee6ee; font-size:.68rem; font-weight:800; letter-spacing:.12em; }.technical-footer__contact strong { margin-top:9px; font-size:1rem; }.technical-footer__contact span { position:absolute; right:20px; bottom:18px; font-size:1.3rem; }.technical-footer__bottom { display:flex; justify-content:space-between; padding:17px 0; border-top:1px solid rgba(255,255,255,.15); color:#8baab4; font-size:.72rem; letter-spacing:.06em; }
@media (max-width:820px) { .technical-footer__top { grid-template-columns:1fr 1fr; gap:30px; }.technical-footer__contact { grid-column:1 / -1; }.technical-homeHero__visual { min-height:0; } }
@media (max-width:560px) { .technical-footer { padding:42px 20px 0; }.technical-footer__top, .technical-footer__links { grid-template-columns:1fr; gap:28px; }.technical-footer__bottom { display:block; line-height:2; }.technical-footer__bottom span { display:block; } }

/* Place the legacy movie in the wide centre column, alongside categories. */
.technical-homeHero { display:block; min-height:0; background:linear-gradient(120deg,#062138,#0a5876); }.technical-homeHero__copy { max-width:1180px; margin:0 auto; padding:62px 42px; }.technical-homeHero__copy h1 { max-width:760px; font-size:clamp(2.5rem,4.6vw,4.7rem); }.technical-homeHero__lead { max-width:680px; }.technical-homeHero__visual { display:none; }
.technical-homeMovie { width:558px; max-width:100%; margin:0 auto 30px; overflow:hidden; background:#071f34; }.technical-homeMovie video { display:block; width:558px; max-width:100%; height:auto; }
.technical-sideGuide { padding:12px 0 2px; text-align:center; }.technical-sideGuide a, .technical-sideGuide span { display:block; margin:0 auto 7px; width:166px; }.technical-sideGuide img { display:block; width:166px; height:30px; }.technical-sidePickups { padding:6px 0 13px; text-align:center; }.technical-sidePickups a { display:block; width:166px; margin:0 auto 10px; transition:transform .2s,box-shadow .2s; }.technical-sidePickups a:hover { box-shadow:0 8px 18px rgba(9,36,60,.16); transform:translateY(-2px); }.technical-sidePickups img { display:block; width:166px; height:166px; }
.technical-homeNews { display:grid; grid-template-columns:180px minmax(0,1fr); gap:28px; max-width:1140px; margin:12px auto 0; padding:35px 38px; border-top:1px solid var(--tec-line); border-bottom:1px solid var(--tec-line); background:#f7fafb; }.technical-homeNews .technical-sectionLabel { color:var(--tec-blue); }.technical-homeNews h2 { margin:0; color:var(--tec-navy); font-size:1.65rem; }.technical-homeNews ul { margin:0; padding:0; list-style:none; }.technical-homeNews li { border-bottom:1px solid var(--tec-line); color:var(--tec-ink); font-size:.88rem; }.technical-homeNews li:last-child { border-bottom:0; }.technical-homeNews details { padding:9px 0; }.technical-homeNews summary { display:flex; align-items:baseline; gap:16px; cursor:pointer; list-style:none; }.technical-homeNews summary::-webkit-details-marker { display:none; }.technical-homeNews summary b { margin-left:auto; color:var(--tec-blue); }.technical-homeNews details[open] summary b { transform:rotate(45deg); }.technical-homeNews time { flex:0 0 92px; color:var(--tec-blue); font-size:.76rem; font-weight:800; }.technical-homeNews summary span { flex:1; }.technical-homeNews__detail { margin:13px 0 3px 108px; padding:13px 15px; background:#fff; color:var(--tec-muted); line-height:1.75; }.technical-homeNews__detail p { margin:8px 0 0; }.technical-homeNews li a { color:var(--tec-blue); font-size:.76rem; font-weight:800; text-decoration:none; }
.technical-homeIntro { max-width:920px; margin:0 auto; padding:48px 26px 18px; text-align:center; }.technical-homeIntro .technical-sectionLabel { color:var(--tec-blue); }.technical-homeIntro h2 { margin:8px 0 18px; color:var(--tec-navy); font-size:clamp(1.9rem,3.2vw,2.9rem); line-height:1.35; }.technical-homeIntro > p:last-of-type { max-width:680px; margin:0 auto; color:var(--tec-muted); line-height:1.9; }.technical-homeIntro__actions { display:flex; justify-content:center; gap:12px; margin-top:24px; }.technical-legacyRight { padding:0 !important; overflow:hidden; }.technical-legacyRight h2 { margin:0 !important; }.technical-legacyRight__guides { padding:11px 11px 1px; }.technical-legacyRight__guides a { display:block; margin:0 0 7px; }.technical-legacyRight__guides img { display:block; width:100%; height:auto; }.technical-legacyRight__pickups { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:9px 11px 13px; }.technical-legacyRight__pickups a { display:block; }.technical-legacyRight__pickups img { display:block; width:100%; height:auto; border:1px solid var(--tec-line); }
@media (max-width:700px) { .technical-homeHero__copy { padding:48px 26px; }.technical-homeMovie { margin:0 0 26px; }.technical-homeNews { display:block; margin:0; padding:32px 18px; }.technical-homeNews ul { margin-top:20px; }.technical-homeNews li { display:block; }.technical-homeNews time { display:block; margin-bottom:4px; }.technical-homeNews li a { display:inline-block; margin-top:5px; } }

/* High-resolution print photography, with an animated print-colour overlay. */
.technical-homeHero { position:relative; isolation:isolate; overflow:hidden; min-height:510px; background:#062138; }.technical-homeHero__media { position:absolute; z-index:-3; inset:0; }.technical-homeHero__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 52%; }.technical-homeHero::before { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(3,23,39,.94) 0%,rgba(4,37,57,.82) 45%,rgba(4,37,57,.32) 100%); content:''; }.technical-homeHero::after { position:absolute; z-index:-1; inset:0; background:linear-gradient(120deg,rgba(14,163,177,.18),transparent 48%,rgba(245,180,0,.15)); content:''; }.technical-homeHero__slats { position:absolute; z-index:-1; top:-25%; right:-12%; width:55%; height:150%; overflow:hidden; transform:skewX(-16deg); }.technical-homeHero__slats i { position:absolute; display:block; width:20%; height:100%; opacity:.55; }.technical-homeHero__slats i:nth-child(1) { left:8%; background:#0fa3b1; animation:technical-slat 9s ease-in-out infinite; }.technical-homeHero__slats i:nth-child(2) { left:43%; background:#f5b400; animation:technical-slat 9s ease-in-out -3s infinite; }.technical-homeHero__slats i:nth-child(3) { left:76%; background:#e55b57; animation:technical-slat 9s ease-in-out -6s infinite; }@keyframes technical-slat { 0%,100% { transform:translateY(-13%); } 50% { transform:translateY(13%); } }.technical-homeHero__copy { position:relative; z-index:1; padding-top:92px; padding-bottom:86px; }.technical-homeHero__copy h1 { text-shadow:0 3px 18px rgba(0,0,0,.24); }.technical-homeHero__lead { text-shadow:0 1px 5px rgba(0,0,0,.35); }.technical-homeHero .technical-button--outline { background:rgba(255,255,255,.11); backdrop-filter:blur(4px); }.technical-homeHero .technical-button--outline b { background:rgba(255,255,255,.19); }
@media (max-width:700px) { .technical-homeHero { min-height:0; }.technical-homeHero__copy { padding-top:65px; padding-bottom:64px; }.technical-homeHero__media img { object-position:62% center; }.technical-homeHero__slats { right:-34%; width:85%; opacity:.55; } }

/* Final layout safeguards and dark-footer logo treatment. */
.technical-footer__brand img { padding:0; background:transparent; filter:brightness(0) invert(1) grayscale(1) contrast(2); }
.ec-layoutRole__contents, .ec-layoutRole__contents *, .technical-guideLayout, .technical-guideLayout * { box-sizing:border-box; }
@media (min-width:981px) { .ec-layoutRole__left, .ec-layoutRole__right, .ec-layoutRole__mainBetweenColumn { min-width:0; box-sizing:border-box; } }

/* Shared, three-column information layout for guides and upload support. */
.technical-guideLayout { display:grid; grid-template-columns:205px minmax(0,1fr) 220px; gap:26px; max-width:1180px; margin:0 auto; }.technical-guideNav, .technical-guideAside { align-self:start; border:1px solid var(--tec-line); background:#fff; box-shadow:0 6px 18px rgba(9,36,60,.06); }.technical-guideNav p, .technical-guideAside p { margin:0; padding:16px 16px 0; color:var(--tec-blue); font-size:.65rem; font-weight:800; letter-spacing:.14em; }.technical-guideNav h2 { margin:6px 0 12px; padding:0 16px; color:var(--tec-navy); font-size:1.05rem; }.technical-guideNav a { display:block; padding:12px 15px; border-top:1px solid var(--tec-line); color:var(--tec-ink); font-size:.86rem; font-weight:700; text-decoration:none; }.technical-guideNav a:hover { background:var(--tec-soft); color:var(--tec-blue); }.technical-guideContent { min-width:0; padding:4px 12px 40px; }.technical-guideContent h1 { margin:0; color:var(--tec-navy); font-size:clamp(1.9rem,3.4vw,3rem); }.technical-guideLead { margin:20px 0 28px; color:var(--tec-muted); font-size:1rem; line-height:1.85; }.technical-guideContent section { margin:0 0 16px; padding:22px; border:1px solid var(--tec-line); border-left:4px solid var(--tec-cyan); background:#fff; }.technical-guideContent section h2 { margin:0 0 10px; color:var(--tec-navy); font-size:1.12rem; }.technical-guideContent section p { margin:0; color:var(--tec-muted); line-height:1.85; }.technical-guideSteps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }.technical-guideSteps li { min-height:150px; padding:20px; border:1px solid var(--tec-line); background:#fff; }.technical-guideSteps b { display:block; margin-bottom:15px; color:var(--tec-gold); font-size:1.25rem; }.technical-guideSteps strong { display:block; margin-bottom:7px; color:var(--tec-navy); }.technical-guideSteps span { color:var(--tec-muted); font-size:.84rem; line-height:1.65; }.technical-guideAside { padding:0 16px 18px; background:linear-gradient(155deg,#0c5a76,#09243c); color:#fff; }.technical-guideAside h2 { margin:8px 0 14px; font-size:1.25rem; line-height:1.45; }.technical-guideAside span { display:block; color:#d5eef2; font-size:.84rem; line-height:1.7; }.technical-guideAside a { display:block; margin-top:19px; padding:12px; background:var(--tec-gold); color:var(--tec-ink); font-size:.86rem; font-weight:800; text-align:center; text-decoration:none; }.technical-guideAside a:hover { background:#ffd45b; }.technical-guideAside .technical-guideAside__contact { margin-top:9px; border:1px solid rgba(255,255,255,.6); background:transparent; color:#fff; }
@media (max-width:980px) { .technical-guideLayout { grid-template-columns:190px minmax(0,1fr); }.technical-guideAside { display:none; } } @media (max-width:700px) { .technical-guideLayout { display:block; }.technical-guideNav { margin-bottom:26px; }.technical-guideContent { padding:0; }.technical-guideSteps { grid-template-columns:1fr; } }

/* The top page needs a wide editorial canvas.  Side blocks remain available in
   layout management but are not forced into the storefront's main routes. */
html, body, .ec-layoutRole { max-width:100%; overflow-x:hidden; }
.ec-layoutRole__contents { max-width:1280px; gap:0; padding-bottom:48px; }
.technical-homeHero { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(380px,.96fr); min-height:500px; overflow:hidden; background:linear-gradient(118deg,#062138 0%,#0a4560 57%,#0e6980 100%); }
.technical-homeHero::before { display:none; }
.technical-homeHero__copy { grid-column:1; grid-row:1; max-width:none; margin:0; padding:82px clamp(32px,6vw,88px); }
.technical-homeHero__copy h1 { max-width:620px; }
.technical-homeHero__media { position:relative; z-index:0; grid-column:2; grid-row:1; display:block; min-height:500px; overflow:hidden; background:#0a2e42; }
.technical-homeHero__movie { display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; object-position:center; }
.technical-homeHero__slats { z-index:1; right:-16%; width:34%; opacity:.42; pointer-events:none; }
.technical-homeHero__copy { z-index:2; }
.technical-categoryPicker { max-width:1280px; padding:64px 24px 70px; }
.technical-categoryPicker__grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.technical-categoryCard { min-height:112px; }
.technical-homeNews { max-width:1180px; margin-top:0; }
.technical-footer { max-width:1280px; padding-top:42px; }
.technical-footer__top { padding-bottom:30px; }
.technical-footer__brand a { display:inline-block; padding:7px 10px; border-radius:3px; background:#f7fbfc; }
.technical-footer__brand img { padding:0; background:transparent; filter:none; }
@media (max-width:900px) { .technical-homeHero { display:block; min-height:0; }.technical-homeHero__media { min-height:250px; }.technical-homeHero__copy { padding:56px 28px; }.technical-homeHero__slats { width:55%; }.technical-categoryPicker { padding:48px 18px 54px; } }

/* Compact support CTA and optically centered footer logo. */
.technical-footer__brand a { padding:5px 0; background:transparent; }
.technical-footer__brand img { width:218px; }
.technical-footer__contact { display:grid; grid-template-columns:1fr auto; align-items:center; min-height:0; padding:12px 15px; border-radius:7px; }
.technical-footer__contact::after { display:none; }
.technical-footer__contact small { grid-column:1; font-size:.59rem; }
.technical-footer__contact strong { grid-column:1; margin-top:3px; font-size:.87rem; }
.technical-footer__contact span { position:static; grid-column:2; grid-row:1 / 3; margin-left:14px; font-size:1.05rem; }

/* Full-width hero: the movie fills the entire panel and is weighted to the
   right, while the copy remains legible on the left. */
.technical-homeHero { position:relative; display:block; min-height:560px; background:#062138; isolation:isolate; }
.technical-homeHero__media { position:absolute; z-index:-3; inset:0; display:block; min-height:0; background:#062138; }
.technical-homeHero__movie { display:block; width:100%; height:100%; object-fit:cover; object-position:right center; }
.technical-homeHero::before { position:absolute; z-index:-2; inset:0; display:block; background:linear-gradient(90deg,rgba(3,27,45,.96) 0%,rgba(4,34,53,.84) 39%,rgba(4,34,53,.32) 68%,rgba(4,34,53,.08) 100%); content:''; }
.technical-homeHero__copy { position:relative; z-index:2; max-width:1280px; margin:0 auto; padding:100px clamp(28px,7vw,104px) 92px; }
.technical-homeHero__slats { z-index:-1; right:-12%; width:42%; }
.technical-homeIntro { padding-top:42px; }
.technical-orderFlow b { margin-bottom:14px; font-size:1.7rem; line-height:1; }
@media (min-width:981px) {
  .ec-layoutRole__contents:has(.ec-layoutRole__left):has(.ec-layoutRole__right) { display:grid; grid-template-columns:220px minmax(0,1fr) 220px; column-gap:28px; align-items:start; max-width:1360px; }
  .ec-layoutRole__contents:has(.ec-layoutRole__left):has(.ec-layoutRole__right) .ec-layoutRole__left { grid-column:1; width:auto !important; }
  .ec-layoutRole__contents:has(.ec-layoutRole__left):has(.ec-layoutRole__right) .ec-layoutRole__mainBetweenColumn { grid-column:2; width:auto !important; padding:0; }
  .ec-layoutRole__contents:has(.ec-layoutRole__left):has(.ec-layoutRole__right) .ec-layoutRole__right { grid-column:3; width:auto !important; }
  .ec-layoutRole__mainBetweenColumn .ec-shelfGrid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.technical-guideLayout { display:block; max-width:none; margin:0; }
.technical-guideContent { padding:4px 0 40px; }
@media (max-width:900px) { .technical-homeHero { min-height:0; }.technical-homeHero__copy { padding:64px 28px; }.technical-homeHero__media { position:relative; min-height:270px; }.technical-homeHero::before { background:linear-gradient(180deg,rgba(3,27,45,.96),rgba(3,27,45,.65)); }.technical-homeHero__movie { object-position:center; } }

/* Full-form version of the legacy partner upload desk. */
.technical-businessUpload__form { gap:20px; }.technical-businessUpload__form fieldset { display:grid; gap:15px; min-width:0; margin:0; padding:20px; border:1px solid #dce8eb; }.technical-businessUpload__form legend { padding:0 7px; color:var(--tec-blue); font-size:.78rem; font-weight:800; letter-spacing:.09em; }.technical-businessUpload__form fieldset > div { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.technical-businessUpload__form select { box-sizing:border-box; width:100%; padding:10px; border:1px solid #cddce1; border-radius:4px; background:#fff; font:inherit; font-weight:400; }.technical-businessUpload__choices { display:flex; flex-wrap:wrap; gap:10px 16px; }.technical-businessUpload__choices label { display:inline-flex; align-items:center; gap:5px; color:var(--tec-ink); font-weight:400; }.technical-businessUpload__choices input { width:auto!important; }
@media (max-width:700px) { .technical-businessUpload__form fieldset { padding:15px; }.technical-businessUpload__form fieldset > div { grid-template-columns:1fr; } }
.technical-homeHero__partner { display:grid; grid-template-columns:1fr auto; gap:3px 16px; width:max-content; max-width:100%; margin-top:21px; padding:11px 14px; border:1px solid rgba(142,230,238,.55); border-radius:7px; background:rgba(4,31,50,.46); color:#fff; text-decoration:none; }.technical-homeHero__partner span { color:#8ee6ee; font-size:.6rem; font-weight:800; letter-spacing:.12em; }.technical-homeHero__partner strong { font-size:.82rem; }.technical-homeHero__partner b { grid-column:2; grid-row:1 / 3; align-self:center; color:#8ee6ee; font-size:1.15rem; }.technical-homeHero__partner:hover { background:rgba(12,88,118,.72); color:#fff; }
.technical-businessUpload__form label small { color:var(--tec-muted); font-size:.72rem; font-weight:400; line-height:1.5; }.technical-businessUpload__progress { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 13px; border:1px solid #b9d9e2; background:#f4fbfc; color:var(--tec-blue); font-size:.8rem; font-weight:800; }.technical-businessUpload__progress progress { width:100%; height:10px; accent-color:var(--tec-blue); }.technical-businessUpload__progress span { white-space:nowrap; }

/* Gentle, film-like motion from three stills: no legacy video asset. */
.technical-homeHero__slide { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:right center; opacity:0; transform:scale(1.04); animation:technical-hero-slide 18s infinite ease-in-out; }
.technical-homeHero__slide--one { animation-delay:0s; }.technical-homeHero__slide--two { animation-delay:6s; }.technical-homeHero__slide--three { animation-delay:12s; }
@keyframes technical-hero-slide { 0%,30% { opacity:1; transform:scale(1); } 33.333%,97% { opacity:0; transform:scale(1.045); } 100% { opacity:1; transform:scale(1); } }
.technical-guideLinks { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:0; }.technical-guideLinks a { padding:9px 12px; border:1px solid var(--tec-line); border-radius:3px; background:#f8fbfb; color:var(--tec-navy); font-size:.78rem; font-weight:800; text-decoration:none; }.technical-guideLinks a:hover { border-color:var(--tec-cyan); background:var(--tec-soft); color:var(--tec-blue); }
@media (prefers-reduced-motion:reduce) { .technical-homeHero__slide { animation:none; }.technical-homeHero__slide:not(:first-child) { display:none; } }

/* Footer brand: retain the familiar lockup and add a concise service label. */
.technical-footer__brand a { display:inline-flex; flex-direction:column; align-items:flex-start; width:218px; padding:0; background:transparent; }
.technical-footer__brand img { width:218px; max-width:none; }
.technical-footer__brand a > span { margin-top:-6px; padding-left:3px; color:#8ee6ee; font-size:.63rem; font-weight:800; letter-spacing:.18em; }

/* Keep the order flow compact and visually even on wide screens. */
.technical-orderFlow { grid-template-columns:.66fr 1.34fr; gap:30px; padding-top:56px; padding-bottom:56px; }
.technical-orderFlow__heading h2 { font-size:clamp(2rem,3vw,2.8rem); line-height:1.24; }
.technical-orderFlow ol { gap:12px; }
.technical-orderFlow li { min-height:148px; padding:18px 18px 17px; }
.technical-orderFlow b { margin-bottom:10px; font-size:1.55rem; }
.technical-orderFlow strong { margin-bottom:6px; font-size:.94rem; }
.technical-orderFlow span { font-size:.8rem; line-height:1.5; }

/* Final homepage sizing overrides. */
.technical-home .technical-orderFlow { grid-template-columns:.86fr 1.14fr !important; gap:26px !important; padding-top:48px !important; padding-bottom:48px !important; }
.technical-home .technical-orderFlow__heading h2 { font-size:clamp(1.9rem,2.65vw,2.55rem) !important; line-height:1.28 !important; }
.technical-home .technical-orderFlow li { min-height:142px !important; padding:16px 17px !important; }
.technical-home .technical-orderFlow b { margin-bottom:8px !important; font-size:1.48rem !important; }
.technical-home .technical-orderFlow strong { margin-bottom:6px !important; }
.technical-footer__top > .technical-footer__contact { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; align-items:center !important; min-height:0 !important; padding:10px 14px !important; border-radius:7px !important; }
.technical-footer__top > .technical-footer__contact::after { display:none !important; }
.technical-footer__top > .technical-footer__contact small { grid-column:1; font-size:.58rem !important; }
.technical-footer__top > .technical-footer__contact strong { grid-column:1; margin-top:2px !important; font-size:.86rem !important; }
.technical-footer__top > .technical-footer__contact span { position:static !important; grid-column:2; grid-row:1 / 3; margin-left:14px; font-size:1.05rem !important; }
.technical-footer__top > .technical-footer__contact { align-self:start !important; }
@media (max-width:820px) { .technical-home .technical-orderFlow { display:block; }.technical-home .technical-orderFlow ol { margin-top:26px; } }

.technical-home .technical-orderFlow > .technical-button { grid-column:1 / -1 !important; justify-self:center !important; margin:2px 0 0 !important; }

/* Header account links: make each destination a separate, clear control. */
.technical-headerNavi__account .ec-headerNav { display:flex; align-items:center; gap:6px; }
.technical-headerNavi__account .ec-headerNav__item { margin:0; }
.technical-headerNavi__account .ec-headerNav__item > a { display:flex; align-items:center; gap:6px; min-height:38px; padding:7px 10px; border:1px solid transparent; border-radius:7px; color:var(--tec-ink); text-decoration:none; transition:border-color .18s,background .18s,color .18s,transform .18s; }
.technical-headerNavi__account .ec-headerNav__item > a:hover { border-color:#9bcbd7; background:#eff9fb; color:var(--tec-blue); transform:translateY(-1px); }
.technical-headerNavi__account .ec-headerNav__itemIcon { margin:0; }
.technical-headerNavi__account .ec-headerNav__itemLink { white-space:nowrap; }

/* Quiet, accessible return-to-top control. */
.ec-blockTopBtn.pagetop { display:flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; border:1px solid rgba(255,255,255,.65); border-radius:50%; background:rgba(6,33,56,.9); color:transparent; box-shadow:0 5px 16px rgba(0,0,0,.18); }
.ec-blockTopBtn.pagetop::before { color:#fff; content:'↑'; font-size:1.25rem; font-weight:700; line-height:1; }
.ec-blockTopBtn.pagetop:hover { background:var(--tec-blue); transform:translateY(-2px); }
.technical-footer__logoVector { display:block; width:220px; height:auto; }
.technical-uploadVerify .ec-borderedDefs {
  margin: 24px 0;
}

.technical-businessCalendar__heading { display:grid; grid-template-columns:28px 1fr 28px; align-items:center; gap:4px; margin-bottom:8px; }
.technical-businessCalendar__heading h2 { margin:0; text-align:center; }
.technical-businessCalendar__heading a { display:grid; place-items:center; width:28px; height:28px; border:1px solid #b9d9e2; border-radius:50%; color:var(--tec-blue); font-size:1.35rem; line-height:1; text-decoration:none; }
.technical-businessCalendar__heading a:hover { border-color:var(--tec-cyan); background:var(--tec-soft); }
.technical-businessCalendar th:first-child, .technical-businessCalendar th:last-child, .technical-businessCalendar td.is-sunday, .technical-businessCalendar td.is-saturday { color:#d64d55; background:#fff5f5; }
.technical-memberBonus { display:grid; grid-template-columns:1fr auto; gap:4px 18px; align-items:center; max-width:520px; margin:0 auto 28px; padding:16px 20px; border:1px solid #b6dbe2; border-radius:8px; background:linear-gradient(135deg,#f3fcfd,#e8f7fb); color:var(--tec-navy); text-decoration:none; box-shadow:0 8px 20px rgba(10,75,100,.08); }
.technical-memberBonus span { color:var(--tec-blue); font-size:.78rem; font-weight:800; letter-spacing:.08em; }.technical-memberBonus strong { font-size:1.22rem; line-height:1.25; }.technical-memberBonus b { grid-column:2; grid-row:1 / 3; padding:10px 13px; border-radius:5px; background:var(--tec-blue); color:#fff; font-size:.78rem; white-space:nowrap; }.technical-memberBonus:hover { color:var(--tec-navy); transform:translateY(-1px); }.technical-memberBonus:hover b { background:#117994; }
@media (max-width:560px) { .technical-memberBonus { grid-template-columns:1fr; }.technical-memberBonus b { grid-column:1; grid-row:auto; justify-self:start; }.technical-businessCalendar__heading { grid-template-columns:25px 1fr 25px; }.technical-businessCalendar__heading a { width:25px; height:25px; } }

/* Homepage partner desk: place it beside the brand rather than in the hero. */
.technical-logoRole { gap:38px; align-items:center; }
.technical-logoRole__partner { display:grid; justify-items:start; gap:5px; align-items:center; padding:12px 17px; border:1px solid #9ed5df; border-radius:7px; background:linear-gradient(135deg,#edf9fb,#dff3f6); color:var(--tec-navy); box-shadow:0 5px 14px rgba(9,68,88,.08); text-align:left; text-decoration:none; }
.technical-logoRole__partner span { color:var(--tec-blue); font-size:.6rem; font-weight:800; letter-spacing:.1em; }.technical-logoRole__partner strong { font-size:.94rem; line-height:1.45; }.technical-logoRole__partner:hover { border-color:var(--tec-cyan); background:#d5f0f4; color:var(--tec-navy); transform:translateY(-1px); }
@media (min-width:701px) { .technical-logoRole { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); justify-content:initial; max-width:1180px; margin:0 auto; }.technical-logoRole__partner { grid-column:1; justify-self:start; }.technical-logoRole__link { grid-column:2; } }
@media (max-width:700px) { .technical-logoRole { flex-direction:column-reverse; gap:8px; }.technical-logoRole__partner { width:min(100%,270px); }.technical-logoRole__image { width:220px; height:64px; } }

/* Product detail: keep category, option selectors and purchase controls distinct. */
.ec-productRole__profile > .ec-productRole__category { margin:20px 0 18px; }
.ec-productRole__profile > form .ec-productRole__actions { box-sizing:border-box; margin-top:10px; padding:16px 18px; }
.ec-productRole__profile > form .ec-productRole__actions + .ec-productRole__btn { margin-top:14px; }
.ec-productRole__profile > form + .ec-modal + form .ec-productRole__btn { margin-top:14px; }

/* Temporary renewal announcement, shown consistently on every public page. */
.technical-renewalNotice { padding:14px 18px 20px; background:#fff; color:var(--tec-navy); }
.technical-renewalNotice > div { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px 18px; max-width:1180px; margin:0 auto; padding:12px 16px; border:1px solid #c6e3e8; border-left:4px solid var(--tec-cyan); border-radius:6px; background:#f4fbfc; box-shadow:0 5px 15px rgba(9,68,88,.05); font-size:.78rem; line-height:1.55; }
.technical-renewalNotice strong { color:var(--tec-blue); font-size:.76rem; letter-spacing:.06em; white-space:nowrap; }
.technical-renewalNotice a { display:inline-flex; align-items:center; gap:8px; padding:6px 11px; border:1px solid #4c9eb2; border-radius:4px; background:#fff; color:var(--tec-blue); font-size:.74rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.technical-renewalNotice a b { font-size:1rem; line-height:1; }.technical-renewalNotice a:hover { border-color:var(--tec-blue); background:var(--tec-blue); color:#fff; }
@media (max-width:700px) { .technical-renewalNotice { padding:10px 14px 14px; }.technical-renewalNotice > div { grid-template-columns:1fr auto; gap:5px 10px; padding:11px 12px; }.technical-renewalNotice strong { grid-column:1 / -1; }.technical-renewalNotice span { font-size:.73rem; }.technical-renewalNotice a { align-self:center; } }
