:where(body:not([data-page="index"])) * { box-sizing: border-box; }
:where(body:not([data-page="index"])) a { color: inherit; text-decoration: none; }
:where(body:not([data-page="index"])) header { padding: 26px 0px; border-bottom: 1px solid var(--line); }
:where(body:not([data-page="index"])) .head { display: flex; justify-content: space-between; align-items: center; }
:where(body:not([data-page="index"])) .brand { display: inline-flex; align-items: center; gap: 10px; font-family: Georgia, serif; font-size: 27px; }
:where(body:not([data-page="index"])) .brand-logo { width: 34px; height: 34px; color: rgb(47, 93, 80); flex: 0 0 auto; }
:where(body:not([data-page="index"])) .brand-logo svg { display: block; width: 100%; height: 100%; }
:where(body:not([data-page="index"])) .brand-text { display: block; }
:where(body:not([data-page="index"])) .brand-sub { display: block; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; font-size: 9px; letter-spacing: 0.12em; color: var(--muted); margin-top: 3px; }
:where(body:not([data-page="index"])) nav { display: flex; gap: 28px; font-size: 12px; letter-spacing: 0.08em; }
:where(body:not([data-page="index"])) .back-home { border-top: 1px solid var(--line); padding: 48px 0px; }
:where(body:not([data-page="index"])) .back-home a { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: 0.06em; }
:where(body:not([data-page="index"])) .back-home a:hover { opacity: 0.6; }
:where(body:not([data-page="index"])) footer { border-top: 1px solid var(--line); padding: 28px 0px 45px; font-size: 12px; color: var(--muted); }
html { -webkit-text-size-adjust: 100%; }
body { line-break: strict; }
h1, h2, h3, p, li, .lead, .intro-copy, .side-note, .brand-sub, .button, .plan, .amount { letter-spacing: 0; }
body:not([data-page="index"]) p { line-height: 1.9; margin-block: 20px 0; text-align: start; }
body:not([data-page="index"]) .step p { line-height: 1.8; margin-block: 16px 0; }
body:not([data-page="index"]) .work p { margin-block: 0; }
[data-page="line-stamp"] .step p span { display: inline-block; }
img { display: block; max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible { outline: 2px solid #2f5d50; outline-offset: 5px; }
p, li, .lead { text-wrap: balance; word-break: auto-phrase; }
body:not([data-page="index"]) p { line-height: 1.85; }
[data-page="index"] .card h2 { line-height: 1.3; }
[data-page="index"] .card .lead { line-height: 1.7; }
[data-page="index"] .card ul { line-height: 1.9; }
[data-page="website"] .hero .lead { max-width: 36em; }
@media (max-width: 900px) {
  [data-page="website"] .hero { grid-template-columns: 1fr; gap: 28px; }
  [data-page="website"] .flow-grid { gap: 16px; }
  [data-page="website"] .step p { font-size: 12px; }
}
@media (max-width: 720px) {
  body:not([data-page="index"]) .lead { font-size: 16px; }
}
header a { white-space: nowrap; }
.head { gap: 16px; }
.hero > *, .statement > *, .showcase .inner > *, .service > *, .info > * { min-width: 0; }
body:not([data-page="index"]) h1 { line-height: 1.3; }
body:not([data-page="index"]) h2 { line-height: 1.4; }
.back-home a { line-height: 1.8; }
.plan strong, .amount, .price:not(section) { white-space: nowrap; }
[data-page="line-stamp"] h1 { font-size: 64px; }
[data-page="line-stamp"] .stamp { padding: 12px; display: grid; grid-template-rows: 1fr auto; gap: 10px; }
[data-page="line-stamp"] .stamp:first-child { display: flex; }
[data-page="line-stamp"] .stamp img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
[data-page="line-stamp"] .stamp span { font-size: 14px; line-height: 1.5; }
[data-page="line-stamp"] .example { min-height: 0; display: grid; grid-template-rows: 1fr auto; gap: 20px; }
[data-page="line-stamp"] .example img { width: 100%; aspect-ratio: 1; object-fit: contain; }
[data-page="line-stamp"] .example strong { line-height: 1.8; }
[data-page="website"] h1 { font-size: 80px; }
[data-page="website"] h2 { font-size: 42px; }
[data-page="website"] .browser { flex-direction: column; gap: 24px; }
[data-page="website"] .browser img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
[data-page="website"] .browser span { align-self: flex-start; font-size: 24px; line-height: 1.4; }
[data-page="web-banner"] h1 { font-size: 88px; }
@media (max-width: 1199px) and (min-width: 901px) {
  [data-page="index"] .intro { grid-template-columns: .8fr 1.8fr .8fr; }
  [data-page="index"] .intro-copy { font-size: 12px; }
  [data-page="index"] .side-note { font-size: 16px; }
  [data-page="index"] .leaf-mark { width: 140px; }
  [data-page="index"] .card-content { padding: 32px 24px; }
  [data-page="index"] .card h2 { font-size: 34px; }
  [data-page="index"] .hero-copy h1 { font-size: 28px; }
}
@media (max-width: 1199px) {
  [data-page="line-stamp"] h1 { font-size: 46px; }
  [data-page="line-stamp"] .hero { gap: 40px; }
  [data-page="website"] h1 { font-size: 60px; }
  [data-page="website"] h2 { font-size: 32px; }
  [data-page="website"] .statement, [data-page="website"] .showcase .inner { gap: 40px; }
  [data-page="web-banner"] h1 { font-size: 68px; }
}
@media (max-width: 900px) {
  [data-page="line-stamp"] h1 { font-size: 38px; }
  [data-page="line-stamp"] .hero { gap: 28px; }
  [data-page="website"] h1 { font-size: 46px; }
  [data-page="website"] .hero { gap: 28px; }
  [data-page="website"] h2 { font-size: 28px; }
  [data-page="website"] .showcase .inner { grid-template-columns: 1fr; }
  [data-page="website"] .service { grid-template-columns: 35px 1fr 1fr; gap: 20px; }
  [data-page="website"] .service h3 { font-size: 20px; }
  [data-page="web-banner"] .work h3 { font-size: 18px; }
  [data-page="web-banner"] .work { padding: 28px; }
  [data-page="web-banner"] .info { gap: 35px; }
  [data-page="web-banner"] h2 { font-size: 30px; }
  [data-page="index"] .card h2 { font-size: 19px; letter-spacing: 0; }
  [data-page="index"] .card .lead { font-size: 12px; line-height: 1.6; letter-spacing: 0; }
  [data-page="index"] .card-stickers .lead span { display: inline-block; }
  [data-page="index"] .card .button { font-size: 11px; min-height: 36px; line-height: 1.4; }
}
@media (max-width: 720px) {
  [data-page="line-stamp"] h1 { font-size: 46px; }
  [data-page="line-stamp"] .hero { gap: 45px; }
  [data-page="website"] .service { grid-template-columns: 30px 1fr; gap: 18px; }
  [data-page="website"] h2 { font-size: 28px; }
  [data-page="web-banner"] h1 { font-size: 52px; }
  .plan { padding: 24px 16px; }
}
@media (max-width: 480px) {
  .head { gap: 10px; }
  .head .brand { font-size: 23px; gap: 7px; }
  .brand-logo { width: 28px; height: 28px; }
  .head .brand-sub { font-size: 8px; letter-spacing: 0; }
  .head nav { font-size: 9px; gap: 10px; letter-spacing: 0; }
  [data-page="line-stamp"] h1 { font-size: 38px; }
  [data-page="line-stamp"] h2 { font-size: 30px; }
  [data-page="website"] h1 { font-size: 42px; }
  [data-page="website"] .statement h2 { font-size: 26px; }
  [data-page="web-banner"] h1 { font-size: 44px; }
  [data-page="web-banner"] .cta h2 { font-size: 26px; }
  [data-page="index"] .card h2 { font-size: 14px; }
  [data-page="index"] .card .lead { font-size: 11px; }
  [data-page="index"] .hero-copy h1 { font-size: 26px; }
  [data-page="index"] .contact-strip h2 { font-size: 18px; }
}
@media (max-width: 374px) {
  .head .brand { font-size: 21px; }
  .brand-logo { width: 24px; height: 24px; }
  .head nav { gap: 8px; }
  [data-page="line-stamp"] h1 { font-size: 34px; }
  [data-page="line-stamp"] h2 { font-size: 28px; }
  [data-page="line-stamp"] .stamp span { font-size: 12px; }
  [data-page="line-stamp"] .plan strong { font-size: 26px; }
  [data-page="website"] h1 { font-size: 36px; }
  [data-page="website"] .statement h2 { font-size: 23px; }
  [data-page="website"] .service h3 { font-size: 18px; }
  [data-page="web-banner"] h1 { font-size: 36px; }
  [data-page="web-banner"] .cta h2 { font-size: 23px; }
  [data-page="index"] .card h2 { font-size: 12px; }
  [data-page="index"] .card .lead { font-size: 10px; }
  [data-page="index"] .hero-copy h1 { font-size: 23px; }
  [data-page="index"] .contact-strip h2 { font-size: 16px; }
  .back-home a { font-size: 12px; letter-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
