/* Type system and final preview alignment. */
:root{--type-display:"Arial Black",Impact,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--type-body:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
body{font-family:var(--type-body);letter-spacing:.025em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.eyebrow{font-family:var(--type-body);font-weight:900;letter-spacing:.2em}
.brand,.hero h1,.section-heading h2,.consultation h2,.order-summary h3,.guide-grid h3,.how b{font-family:var(--type-display);font-weight:900}
.site-header .brand{position:relative;display:grid;grid-template-columns:auto auto auto auto;grid-template-rows:18px 9px;align-items:baseline;column-gap:4px;min-width:208px;padding:4px 12px 3px 14px;border-left:2px solid var(--cyan);background:linear-gradient(90deg,#0c344366,transparent);font-size:23px;letter-spacing:-.065em;line-height:.8}
.site-header .brand:after{content:"";position:absolute;left:14px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,var(--cyan),#8de4e033 62%,transparent)}
.site-header .brand-rap{color:#e9ffff}.site-header .brand-tee{color:#89f6f8}.site-header .brand b{color:#d8e4e7;text-shadow:0 0 12px #d7ffff55}.site-header .brand sup{align-self:start;color:#8ff4f6;font:700 8px/1 Arial,sans-serif;letter-spacing:0}.site-header .brand small{grid-column:1/-1;align-self:end;color:#8dbfc8;font:800 7px/1 Arial,sans-serif;letter-spacing:.19em}
.hero h1{font-size:clamp(64px,7.4vw,108px);line-height:.82;letter-spacing:-.075em;text-wrap:balance}
.hero h1 em{display:inline-block;color:#8bf6f8;font-family:var(--type-display);font-size:1.07em;font-style:normal;letter-spacing:-.085em;text-shadow:0 0 11px #eaffff55,0 0 29px #35e7f378}
.hero-lead{max-width:590px;color:#d8edf0;font-size:15px;line-height:1.9;letter-spacing:.035em}
.hero-points{font-size:11px;font-weight:700;letter-spacing:.045em}
.section-heading h2{line-height:.91;letter-spacing:-.055em}
.step-heading h3,.order-summary h3,.guide-grid h3,.how h3{letter-spacing:.025em}
.form-step label,.order-summary dt,.preview-spec dt{letter-spacing:.035em}
.preview-stage{display:grid;place-items:center;min-height:390px;padding:56px 18px 17px}
svg.shirt-preview{display:block;width:min(100%,370px);height:auto;aspect-ratio:1437/1095;overflow:visible}
svg.shirt-preview .tee-art{filter:drop-shadow(0 18px 19px #000b)}
svg.shirt-preview.color-white .tee-art{filter:invert(1) brightness(1.2) drop-shadow(0 18px 19px #000b)}
svg.shirt-preview.color-smoke .tee-art{filter:url(#smoke-tint) drop-shadow(0 18px 19px #000b)}
svg.shirt-preview .print-zone{position:static;display:block;border:0;background:transparent;box-shadow:none;text-align:initial}
.print-zone-fill{box-sizing:border-box;width:100%;height:100%;border:4px solid #8ff4f7;background:linear-gradient(145deg,#0a4059dd,#061722e8);box-shadow:0 0 0 10px #06121b,0 0 52px #2ae6f966}
svg.shirt-preview .print-text-group{pointer-events:none;text-anchor:middle;dominant-baseline:middle;writing-mode:horizontal-tb;text-rendering:geometricPrecision}
svg.shirt-preview .print-text-label,svg.shirt-preview .print-text-subtitle{fill:#aefaff;font-family:var(--type-body);font-size:17px;font-weight:900;letter-spacing:.15em}
svg.shirt-preview .print-text-title{fill:#f2ffff;font-family:var(--type-display);font-size:58px;font-weight:900;letter-spacing:-.055em;text-shadow:0 0 28px #4ff7fb}
svg.shirt-preview .print-text-subtitle{fill:#c5f9fb;font-size:15px;letter-spacing:.09em}
.file-list li.uploaded{color:#aefaff}
.file-list li.uploaded:before{content:"✓";color:var(--cyan);font-weight:900}
.examples .case-grid figure{overflow:hidden}
.examples .case-grid figure>img,.examples .case-grid figure>picture>img{display:block;width:100%;height:auto;aspect-ratio:1/1!important;object-fit:cover;object-position:center 32%}
.examples .case-grid picture,.hero-gallery picture,.lp-visual picture{display:block}
.option-list .option-label{display:grid;gap:2px;min-width:0;margin-left:0;color:#d3edf1}
.option-list .option-label b{color:#eaffff;font-size:11px}
.option-list .option-label small{color:#9abcc6;font-size:9px;line-height:1.45}
.option-list .option-price{margin-left:auto;white-space:nowrap;color:#9cf2f5;font-size:10px}

/* Hero samples: show all examples cleanly without overlapping each other. */
.hero-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start;min-height:0}
.hero-gallery .hero-main,.hero-gallery .hero-side,.hero-gallery .hero-third{position:relative;inset:auto;width:auto;height:auto;margin:0}
.hero-gallery img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}
@media(max-width:760px){.hero-gallery{grid-template-columns:repeat(3,82%);gap:9px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.hero-gallery figure{scroll-snap-align:start}.hero-gallery figcaption{min-height:36px;padding:7px;font-size:8px;line-height:1.35}}
@media(max-width:760px){
  .site-header .brand{min-width:151px;grid-template-rows:15px 8px;padding:3px 7px 3px 9px;font-size:18px}.site-header .brand:after{left:9px;right:7px}.site-header .brand small{font-size:6px;letter-spacing:.13em}
  .hero h1{font-size:clamp(59px,15vw,78px);line-height:.84}
  .hero h1 em{font-size:1.06em}
  .section-heading h2{font-size:41px}
  .preview-stage{min-height:335px;padding:51px 14px 14px}
  svg.shirt-preview{width:min(100%,345px)}
  svg.shirt-preview .print-text-title{font-size:54px}
}

/* Legal, consent and checkout disclosures. */
.rights-notice{margin:0 0 15px;padding:13px 14px;border:1px solid #d69b44;background:#3a270f;color:#ffeac8}
.rights-notice b{display:block;color:#ffd28c;font-size:11px}
.rights-notice p{margin:4px 0 0;font-size:10px;line-height:1.65}
.checkout-confirmation{margin:17px 0;padding:15px;border:1px solid #4ca6b5;background:#061825}
.checkout-confirmation h4{margin:0 0 12px;color:#e9ffff;font-size:14px}
.checkout-confirmation ol{display:grid;gap:9px;margin:0;padding:0;list-style:none;counter-reset:contract-stage}
.checkout-confirmation li{position:relative;padding:10px 10px 10px 39px;border:1px solid #285c6e;background:#092131;counter-increment:contract-stage}
.checkout-confirmation li:before{content:counter(contract-stage);position:absolute;left:10px;top:11px;display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--cyan);border-radius:50%;color:var(--cyan);font-size:10px;font-weight:900}
.checkout-confirmation b,.checkout-confirmation span{display:block}.checkout-confirmation b{color:#eaffff;font-size:11px}.checkout-confirmation span{margin-top:3px;color:#b6d3d9;font-size:10px;line-height:1.65}
.checkout-confirmation>p{margin:12px 0 0;color:#a7c9d0;font-size:10px;line-height:1.65}.checkout-confirmation a,.form-privacy a,.policy-contact a{color:#91f4f6}
.form-privacy{margin:0;color:#a9c9d0;font-size:10px;line-height:1.6}
.consultation label.consultation-consent{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #2c5d70;background:#061522;color:#cce8ec;font-size:10px;line-height:1.6}
.consultation-consent input{width:16px;height:16px;flex:0 0 auto;margin:1px 0 0;accent-color:var(--cyan)}
.consultation-consent a{color:#91f4f6}
.legal-link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.legal-link-grid>a{display:flex;flex-direction:column;min-height:150px;padding:20px;border:1px solid #315f71;background:#071a28;text-decoration:none;transition:border-color .18s,transform .18s}
.legal-link-grid>a:hover{transform:translateY(-2px);border-color:var(--cyan)}
.legal-link-grid span{color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.16em}.legal-link-grid b{margin:13px 0 7px;color:#edffff;font-size:15px}.legal-link-grid small{color:#9ebfc7;font-size:10px;line-height:1.55}
.policy-contact{margin:14px 0 0;padding:13px;border-left:3px solid var(--cyan);background:#0a2231;color:#b9d5db;font-size:11px}
footer nav[aria-label="法務情報"]{display:flex;gap:14px}footer nav[aria-label="法務情報"] a{color:#9feef1;font-size:10px}

.legal-page{background:radial-gradient(900px 540px at 83% 5%,#0a476245,transparent 60%),linear-gradient(180deg,#06111d,#071a27 50%,#05101b)}
.legal-header .brand{min-width:0;display:inline-flex;gap:4px;grid-template-columns:none;grid-template-rows:none}.legal-header .brand:after{display:none}
.legal-shell{width:min(860px,calc(100% - 48px));margin-inline:auto;padding:72px 0 90px}
.legal-hero{padding-bottom:35px;border-bottom:1px solid #2d6174}.legal-hero h1{margin:0;font:clamp(39px,7vw,68px)/.95 var(--type-display);letter-spacing:-.055em}.legal-hero p:last-child{max-width:700px;margin:18px 0 0;color:#adcad1;font-size:12px}.legal-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:19px;color:#83bac4;font-size:10px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 42px}.legal-toc a{padding:7px 10px;border:1px solid #315f71;color:#bde4e9;font-size:10px;text-decoration:none}
.legal-content{display:grid;gap:12px}.legal-content article{padding:clamp(17px,3vw,26px);border:1px solid #2d5d70;background:#071a28}.legal-content h2{margin:0 0 12px;color:#eaffff;font-size:18px}.legal-content h3{margin:18px 0 7px;color:#c9fbfd;font-size:13px}.legal-content p,.legal-content li,.legal-content dd{color:#b8d2d8;font-size:12px;line-height:1.8}.legal-content p{margin:9px 0}.legal-content ul,.legal-content ol{padding-left:20px}.legal-content a{color:#8ff4f6}.legal-content strong{color:#efffff}.legal-content dl{margin:0}.legal-content dl>div{display:grid;grid-template-columns:180px 1fr;gap:18px;padding:11px 0;border-top:1px solid #285263}.legal-content dt{color:#8fdbe0;font-size:11px;font-weight:800}.legal-content dd{margin:0}.legal-alert{border-color:#d69b44!important;background:#2b200f!important}.legal-alert h2{color:#ffd28c}.legal-note{padding:12px;border-left:3px solid var(--cyan);background:#092536;color:#c6e3e7;font-size:11px;line-height:1.7}.legal-page footer{width:min(860px,calc(100% - 48px))}
@media(max-width:760px){.legal-link-grid{grid-template-columns:1fr}.legal-link-grid>a{min-height:0}.checkout-confirmation{padding:11px}.checkout-confirmation li{padding-right:8px}.legal-shell{width:calc(100% - 28px);padding:48px 0 62px}.legal-header .brand{font-size:17px}.legal-content dl>div{grid-template-columns:1fr;gap:3px}.legal-page footer nav[aria-label="法務情報"],footer nav[aria-label="法務情報"]{display:flex;flex-wrap:wrap;gap:8px 12px}}

/* Search landing-page routes from the service overview. */
.use-cases{width:min(var(--max),calc(100% - 48px));margin-inline:auto;padding:80px 0;border-top:1px solid #244b5b}
.use-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.use-case-grid>a{position:relative;display:flex;min-height:174px;flex-direction:column;padding:23px;border:1px solid #315f71;background:linear-gradient(145deg,#092333,#061621);text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s}
.use-case-grid>a:last-child{grid-column:1/-1}
.use-case-grid>a:hover{transform:translateY(-2px);border-color:var(--cyan);box-shadow:0 18px 42px #0005}
.use-case-grid>a:focus-visible{outline:3px solid #e6ffff;outline-offset:3px}
.use-case-grid span{color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.18em}
.use-case-grid b{max-width:520px;margin:20px 0 8px;color:#efffff;font-size:17px;line-height:1.45}
.use-case-grid small{max-width:540px;color:#9ebfc7;font-size:10px;line-height:1.65}
.use-case-grid>a:after{content:"→";position:absolute;right:20px;bottom:16px;color:var(--cyan);font-size:21px;font-weight:900}
footer .footer-use-cases{display:flex;flex-wrap:wrap;gap:8px 12px}
footer .footer-use-cases a{color:#b7d7dd;font-size:9px}
@media(max-width:760px){.use-cases{width:calc(100% - 28px);padding:55px 0}.use-case-grid{grid-template-columns:1fr}.use-case-grid>a:last-child{grid-column:auto}.use-case-grid>a{min-height:142px;padding:18px}.use-case-grid b{margin-top:14px}footer .footer-use-cases{width:100%;order:3}}

/* Keep the home hero and fixed order action inside narrow mobile viewports. */
@media(max-width:760px){
  body{overflow-x:hidden}
  .hero>*{min-width:0}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .hero-actions .button{width:100%;min-width:0;white-space:normal}
  .hero-gallery{grid-template-columns:1fr;width:100%}
  .hero-gallery figure{min-width:0}
  .mobile-action{gap:10px}
  .mobile-action span{min-width:0;font-size:18px}
  .mobile-action button{flex:0 0 auto;padding:10px 14px}
  .rights-notice p,.checkout-confirmation span,.checkout-confirmation>p,.form-privacy,.consultation label.consultation-consent{font-size:12px}
  footer nav[aria-label="法務情報"] a,.footer-use-cases a{font-size:12px}
}
