@charset "UTF-8";

@import url("assets/fonts/noto-sans-jp/noto-sans-jp.css");

:root {
  --content-max-width: 1280px;
  --content-gutter: 32px;
  --color-text: #030813;
  --color-accent: #030813;
  --color-highlight: #f2b84b;
  --color-on-dark: #ffffff;
  --color-background: #f5f5f1;
  --color-surface: #ffffff;
  --color-ink: #030813;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding-top: 80px;
  color: var(--color-text);
  background: var(--color-background);
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height: 1.7;
  line-break: strict;
  word-break: normal;
  overflow-x: clip;
  overflow-wrap: break-word;
}

a {
  color: inherit;
}

.container {
  width: min(100% - (var(--content-gutter) * 2), var(--content-max-width));
  margin-inline: auto;
}

.site-header,
.site-footer {
  background: var(--color-surface);
}

.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 10;
  border-bottom: 1px solid #dfe3e8;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100% - (var(--content-gutter) * 2), var(--content-max-width));
  margin-inline: auto;
  min-height: 80px;
}

.site-logo {
  display: grid;
  gap: 1px;
  color: var(--color-ink);
  text-decoration: none;
}

.site-logo__mark { font-size: 1.28rem; font-weight: 800; letter-spacing: .03em; }
.site-logo__tagline { color: #53606e; font-size: .68rem; font-weight: 700; letter-spacing: .03em; }
.site-header nav { display: flex; gap: clamp(16px, 2.2vw, 34px); }
.site-header nav a {
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none;
}

.site-header nav a:hover,
.site-header nav a:focus-visible { color: var(--color-accent); }
.site-menu-toggle { display: none; }

.hero {
  display: grid;
  min-height: calc(100vh - 144px);
  place-items: center;
  padding-block: 80px;
}

.hero h1 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 3.5rem);
}

.hero p:not(.eyebrow) {
  margin-bottom: 0;
}

.eyebrow {
  margin: 0 0 8px;
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(74px, 10vw, 150px) max(32px, calc((100vw - 1280px) / 2)) clamp(58px, 8vw, 112px);
  color: var(--color-on-dark);
  background: #030813;
}

.home-intro::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(3, 8, 19, .78) 0%, rgba(3, 8, 19, .52) 49%, rgba(3, 8, 19, .12) 100%);
  content: "";
  pointer-events: none;
}

.home-intro__space { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; }
.home-intro__content { position: relative; z-index: 1; }

.home-intro h1 {
  margin: 0;
  font-size: clamp(2.25rem, 4.8vw, 3.125rem);
  letter-spacing: -.06em;
  line-height: 1.12;
}

.home-intro__description {
  width: 100%;
  margin: 28px 0 0;
  padding-left: 30px;
  color: #c9ced7;
  text-align: left;
}

.home-intro__description p { margin: 0; font-size: clamp(1rem, 1.4vw, 1.18rem); }
.home-intro .eyebrow { color: var(--color-highlight); }

.service-split { display: grid; grid-template-columns: minmax(0, 1fr); }
.service-panel { min-width: 0; min-height: auto; padding: clamp(52px, 7vw, 104px) max(32px, calc((100vw - 1280px) / 2)); }
.service-panel--website {
  background: var(--color-background);
}

.service-panel--website h2,
.service-panel--improvement h2,
.service-panel--security h2 {
  text-shadow: 1px 1px 0 rgba(255, 255, 255, .85), 4px 4px 9px rgba(3, 8, 19, .24);
}

.service-panel--improvement {
  background: #c9e3f0;
}

.service-panel--security {
  background: #cee7e1;
}

.service-panel__content { max-width: var(--content-max-width); }

.service-panel h2, .contact-section h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 2rem); letter-spacing: -.05em; line-height: 1.12; }
.service-panel h2 { font-size: clamp(1.5rem, 3.5vw, 2rem); white-space: nowrap; }
.service-panel__lead { margin: 24px 0 30px; font-size: 1.03rem; }
.service-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.service-points li { display: grid; gap: 5px; padding: 18px 0; border-top: 1px solid rgba(3,8,19,.22); }
.service-points .service-card {
  position: relative;
  grid-template-rows: auto auto auto 1fr auto;
  gap: 14px;
  min-width: 0;
  min-height: 415px;
  height: 100%;
  padding: 16px;
  border: 1px solid rgba(3,8,19,.16);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(3,8,19,.10);
}
.service-card__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 8px; object-fit: cover; }
.service-card__icon-panel { display: grid; width: 100%; aspect-ratio: 16 / 9; place-items: center; border-radius: 8px; background: var(--color-ink); color: var(--icon-accent); transition: background-color .75s ease, color .75s ease; }
.service-card__icon { display: block; width: clamp(114px, 37.5%, 168px); height: auto; overflow: visible; }
.service-panel--website .service-card:nth-child(1) { --icon-accent: #5BE8F5; --icon-hover: #D94A3B; }
.service-panel--website .service-card:nth-child(2) { --icon-accent: #65E7B5; --icon-hover: #E76597; }
.service-panel--website .service-card:nth-child(3) { --icon-accent: #D5F36B; --icon-hover: #896BF3; }
.service-panel--website .service-card:nth-child(4) { --icon-accent: #FFD16A; --icon-hover: #003FCC; }
.service-panel--website .service-card:nth-child(5) { --icon-accent: #FF82B4; --icon-hover: #00995C; }
.service-panel--website .service-card:nth-child(6) { --icon-accent: #BAA0FF; --icon-hover: #6F9900; }
.service-panel--improvement .service-card:nth-child(1) { --icon-accent: #5BE8F5; --icon-hover: #D94A3B; }
.service-panel--improvement .service-card:nth-child(2) { --icon-accent: #65E7B5; --icon-hover: #E76597; }
.service-panel--improvement .service-card:nth-child(3) { --icon-accent: #D5F36B; --icon-hover: #896BF3; }
.service-panel--security .service-card:nth-child(1) { --icon-accent: #FFD16A; --icon-hover: #003FCC; }
.service-panel--security .service-card:nth-child(2) { --icon-accent: #FF82B4; --icon-hover: #00995C; }
.service-panel--security .service-card:nth-child(3) { --icon-accent: #BAA0FF; --icon-hover: #6F9900; }
.service-points .service-card { transition: background-color .75s ease, color .75s ease; }
.service-points .service-card:is(:hover, :focus-within) { background: #030813; color: #fff; }
.service-points .service-card:is(:hover, :focus-within) .service-card__eyebrow { color: #FFD84D; }
.service-points .service-card:is(:hover, :focus-within) .service-card__icon-panel { background: #fff; color: var(--icon-hover); }
.service-points .service-card:is(:hover, :focus-within) .service-card__link { color: #fff; }
.service-card__eyebrow { color: #315a78; font-size: .72rem; font-weight: 700; letter-spacing: .12em; line-height: 1; }
.service-points .service-card__eyebrow { transition: color .75s ease; }
.service-points strong { font-size: .92rem; }
.service-points span { font-size: .86rem; }
.service-card__link { align-self: end; color: var(--color-ink); font-size: .82rem; font-weight: 700; text-decoration: none; }
.service-card__link::before { position: absolute; inset: 0; z-index: 1; content: ""; cursor: pointer; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(3,8,19,.16); }
.service-card:focus-within { outline: 3px solid #1b71ad; outline-offset: 3px; }
.service-card__link:hover, .service-card__link:focus-visible { color: #1b71ad; }
.service-panel :is(.service-card, .service-flow-link).is-pending { opacity: 0; transform: translate(-36px, 22px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1), background-color .75s ease, color .75s ease; }
.service-panel :is(.service-card, .service-flow-link).is-pending.is-visible { opacity: 1; transform: translate(0, 0); transition-delay: var(--reveal-delay, 0ms), var(--reveal-delay, 0ms), 0ms, 0ms; }
.service-panel .service-card__icon > * { stroke-dasharray: 82 18; }
.service-panel :is(.service-card, .service-flow-link).is-visible .service-card__icon > * { animation: communication-line-flow 3.2s linear infinite; }
.service-panel :is(.service-card, .service-flow-link).is-visible .service-card__icon > :nth-child(2) { animation-delay: -.45s; }
.service-panel :is(.service-card, .service-flow-link).is-visible .service-card__icon > :nth-child(3) { animation-delay: -.85s; }
@keyframes communication-line-flow { to { stroke-dashoffset: -100; } }
.service-panel--security h2 { white-space: normal; }
.service-flow-link {
  --icon-accent: #5BE8F5;
  --icon-hover: #D94A3B;
  display: grid;
  grid-template-columns: calc((100% + 34px - 40px) / 3 - 34px) minmax(0, 1fr);
  gap: 20px;
  margin-top: 20px;
  padding: 16px;
  border: 1px solid rgba(3,8,19,.16);
  border-radius: 14px;
  background: #fff;
  color: var(--color-ink);
  box-shadow: 0 10px 28px rgba(3,8,19,.10);
  text-decoration: none;
  transition: background-color .75s ease, color .75s ease, box-shadow .22s ease;
}
.service-flow-link__copy { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: 10px clamp(8px, 2vw, 28px); }
.service-flow-link__copy strong { font-size: clamp(1.25rem, 2vw, 1.75rem); letter-spacing: -.04em; }
.service-flow-link__copy > span { font-size: .9rem; line-height: 1.6; }
.service-flow-link .service-card__eyebrow { color: #315a78; transition: color .75s ease; }
.service-flow-link:is(:hover, :focus-visible) { background: #030813; color: #fff; box-shadow: 0 14px 32px rgba(3,8,19,.16); }
.service-flow-link:is(:hover, :focus-visible) .service-card__eyebrow { color: #FFD84D; }
.service-flow-link:is(:hover, :focus-visible) .service-card__icon-panel { background: #fff; color: var(--icon-hover); }
.service-flow-link:focus-visible { outline: 3px solid #1b71ad; outline-offset: 3px; }
.project-site-link { margin-top: 35px; padding-top: 24px; border-top: 1px solid rgba(3,8,19,.22); }
.project-site-link p { margin: 0; font-size: .9rem; }
.project-site-banner { position: relative; display: block; margin-top: 20px; overflow: hidden; border-radius: 14px; background: #fff; color: var(--color-ink); box-shadow: 0 10px 28px rgba(3,8,19,.14); text-decoration: none; transition: transform .22s ease, box-shadow .22s ease; }
.project-site-banner { width: 100%; aspect-ratio: 16 / 3; }
.project-site-banner img { position: absolute; top: 0; right: 60px; display: block; width: auto; height: 100%; object-fit: contain; }
.project-site-banner__title { position: absolute; top: 50%; left: clamp(20px, 4vw, 56px); z-index: 1; width: 60%; font-size: clamp(1.25rem, 2.6vw, 2.25rem); font-weight: 800; letter-spacing: -.04em; line-height: 1.3; text-shadow: 0 2px 12px rgba(255,255,255,.95), 0 0 24px #fff; transform: translateY(-50%); }
.project-site-banner__arrow { position: absolute; right: clamp(14px, 2vw, 28px); bottom: clamp(12px, 2vw, 24px); display: grid; width: clamp(34px, 4vw, 48px); height: clamp(34px, 4vw, 48px); place-items: center; border-radius: 50%; background: var(--color-ink); color: #fff; font-size: clamp(1rem, 2vw, 1.35rem); }
.project-site-banner:hover, .project-site-banner:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(3,8,19,.22); }
.project-site-banner:focus-visible { outline: 3px solid #1b71ad; outline-offset: 3px; }
.text-link { display: inline-flex; gap: 14px; margin-top: 35px; color: var(--color-accent); font-size: .92rem; font-weight: 700; text-decoration: none; }

.contact-section { text-align: center; }
.contact-section p:not(.eyebrow) { margin: 24px auto 0; }
.button { display: inline-flex; gap: 18px; margin-top: 34px; padding: 14px 22px; background: var(--color-ink); color: var(--color-on-dark); font-weight: 700; text-decoration: none; }
.contact-cta { box-sizing: border-box; margin-inline: calc(50% - 50vw); padding: clamp(74px, 10vw, 144px) 0; color: var(--color-on-dark); background: var(--color-ink); }
.contact-cta .eyebrow { color: var(--color-highlight); }
.contact-cta .button { background: #fff; color: var(--color-ink); }

.home-guide { padding: clamp(40px, 6vw, 72px) clamp(15px, 3vw, 32px); background: #eef2f4; }
.home-guide h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.4; }
.home-guide__references { display: flex; flex-wrap: wrap; gap: 16px 32px; margin: 28px 0 0; font-weight: 700; }
.pricing-section { padding: clamp(74px, 10vw, 144px) 32px; background: #f5f5f1; }
.pricing-section h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 2rem); letter-spacing: -.05em; line-height: 1.12; }
.pricing-section__lead { margin: 24px 0 0; }
#travel-cost { scroll-margin-top: 160px; }
.travel-cost { display: grid; grid-template-columns: minmax(0, 1fr) 400px; align-items: center; gap: 24px; margin-top: 24px; }
.travel-cost h3 { margin: 0 0 12px; font-size: 30px; line-height: 1.35; }
.travel-cost p { margin: 0; }
.travel-cost__map { display: block; width: 400px; max-width: 100%; height: auto; }
.pricing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 40px; }
.pricing-card { padding: clamp(26px, 3vw, 38px); border-top: 5px solid var(--color-highlight); background: #fff; box-shadow: 0 10px 26px rgba(3,8,19,.08); }
.pricing-card h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.pricing-card dl { margin: 26px 0 0; }
.pricing-card dl div { padding: 17px 0; border-top: 1px solid #dfe3e8; }
.pricing-card dl div:last-child { padding-bottom: 0; }
.pricing-card dt { color: #53606e; font-size: .82rem; font-weight: 700; }
.pricing-card dd { margin: 5px 0 0; font-size: .98rem; font-weight: 700; line-height: 1.7; }

.flow-hero { padding-block: clamp(90px, 13vw, 170px); color: var(--color-on-dark); background: linear-gradient(120deg, #030813 0%, #0b2945 100%); }
.flow-hero__inner { width: min(100% - (var(--content-gutter) * 2), var(--content-max-width)); margin-inline: auto; }
.flow-hero .eyebrow, .flow-contact .eyebrow { color: var(--color-highlight); }
.flow-hero h1, .flow-steps h2, .flow-contact h2 { margin: 0; letter-spacing: -.05em; line-height: 1.16; }
.flow-hero h1 { font-size: clamp(1.333rem, 5.5vw, 2rem); }
.flow-hero p:not(.eyebrow) { margin: 24px 0 0; color: #d6dbe2; font-size: clamp(1rem, 1.6vw, 1.18rem); }
.flow-intro { padding: clamp(54px, 7vw, 94px) 32px; background: #fff; }
.flow-intro p { margin: 0; font-size: clamp(1.05rem, 1.7vw, 1.22rem); }
.flow-intro__links { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 28px; }
.flow-intro__links a { font-size: .92rem; font-weight: 700; text-decoration: none; }
.flow-intro__links span { margin-left: 8px; }
.flow-steps { padding: clamp(72px, 10vw, 140px) 32px; background: #e6edf1; }
.flow-steps h2, .flow-contact h2 { font-size: clamp(1.6rem, 4.2vw, 2rem); }
.flow-steps ol { display: grid; gap: 28px; margin: 42px 0 0; padding: 0; list-style: none; }
.flow-step { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); align-items: center; background: #fff; box-shadow: 0 8px 22px rgba(3,8,19,.08); }
.flow-step:nth-child(even) { grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); }
.flow-step:nth-child(even) img { order: 2; }
.flow-step img { display: block; width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.flow-step__copy { padding: clamp(28px, 4vw, 56px); }
.flow-step__copy > span { color: #1b71ad; font-size: .82rem; font-weight: 800; letter-spacing: .08em; }
.flow-step h3 { margin: 9px 0 0; font-size: clamp(1.35rem, 2.3vw, 1.5rem); line-height: 1.3; }
.flow-step p { margin: 16px 0 0; font-size: .95rem; }
.flow-contact { text-align: center; }
.flow-contact p:not(.eyebrow) { margin: 24px auto 0; color: #c9ced7; }

.about-hero { padding: clamp(84px, 13vw, 170px) max(32px, calc((100vw - 1280px) / 2)); color: var(--color-on-dark); background: linear-gradient(120deg, #030813 0%, #0b2945 100%); }
.about-hero__inner, .about-introduction__inner, .about-strength__inner { width: 100%; margin-inline: auto; }
.about-hero .eyebrow, .about-strength .eyebrow { color: var(--color-highlight); }
.about-hero h1, .about-introduction h2, .about-services h2, .about-strength h2, .about-project h2, .works h2 { margin: 0; letter-spacing: -.05em; line-height: 1.16; }
.about-hero h1 { font-size: clamp(1.333rem, 6vw, 2rem); }
.about-hero p:not(.eyebrow) { margin: 24px 0 0; color: #d6dbe2; font-size: clamp(1rem, 1.6vw, 1.18rem); }
.about-introduction, .about-services, .about-strength, .about-project, .works { padding: clamp(72px, 11vw, 150px) max(32px, calc((100vw - 1280px) / 2)); }
.about-introduction { background: #fff; }
.about-introduction h2, .about-services h2, .about-strength h2, .about-project h2, .works h2 { font-size: clamp(1.6rem, 4.2vw, 2rem); }
.about-introduction p:not(.eyebrow), .about-strength p:not(.eyebrow) { margin: 28px 0 0; font-size: 1.04rem; }
.about-services { background: #e6edf1; }
.about-services .container, .works .container { width: 100%; }
.about-services__grid, .works__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 44px; }
.about-services article { padding: 28px; border-top: 4px solid var(--color-highlight); background: rgba(255,255,255,.78); }
.about-services h3 { margin: 0; font-size: 1.15rem; }
.about-services article p { margin: 16px 0 0; font-size: .92rem; }
.about-strength { color: var(--color-on-dark); background: #030813; }
.about-strength p:not(.eyebrow) { color: #c9ced7; }
.about-strength__notice { margin-top: 36px; padding: clamp(22px, 3vw, 32px); border-left: 5px solid var(--color-highlight); background: rgba(255,255,255,.07); }
.about-strength__notice h3 { margin: 0; font-size: 1.15rem; }
.about-strength__notice p:not(.eyebrow) { margin: 12px 0 0; }
.about-strength__notice a { color: var(--color-highlight); font-weight: 700; }
.about-project { background: #e6edf1; }
.about-project .container { width: 100%; }
.about-project__banner { margin-top: 44px; }
.about-project__card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: clamp(28px, 5vw, 72px); margin-top: 44px; padding: clamp(28px, 5vw, 56px); border-top: 5px solid var(--color-highlight); background: #fff; box-shadow: 0 10px 26px rgba(3,8,19,.1); }
.about-project__card h3 { margin: 0; font-size: clamp(1.45rem, 2.6vw, 1.5rem); }
.about-project__card p { margin: 18px 0 0; }
.about-project__card .button { flex: 0 0 auto; margin-top: 0; white-space: nowrap; }
.works { background: #fff; }
.works__lead { margin: 16px 0 0; color: #53606e; }
.works__group-title { margin: 38px 0 0; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.works__group .works__grid { margin-top: 18px; }
.works__group + .works__group { margin-top: clamp(54px, 7vw, 88px); }
.works__card { overflow: hidden; background: #030813; color: #fff; text-decoration: none; box-shadow: 0 10px 26px rgba(3,8,19,.15); transition: transform .22s ease, box-shadow .22s ease; }
.works__card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; transition: transform .3s ease; }
.works__card-copy { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px; }
.works__card-copy strong { font-size: .93rem; }
.works__card-copy small { color: var(--color-highlight); font-weight: 700; white-space: nowrap; }
.works__card:hover, .works__card:focus-visible { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(3,8,19,.25); }
.works__card:hover img, .works__card:focus-visible img { transform: scale(1.03); }

.service-detail__hero { background: linear-gradient(120deg, #061426, #1d5f8f); color: var(--color-on-dark); }
.service-detail__hero--improvement { background: #c9e3f0; color: var(--color-ink); }
.service-detail__hero--security { background: #cee7e1; color: var(--color-ink); }
.service-detail__hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: clamp(360px, 40vw, 510px); }
.service-detail__hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(74px, 11vw, 152px) clamp(36px, 5vw, 88px) clamp(74px, 11vw, 152px) max(32px, calc((100vw - 1280px) / 2)); }
.service-detail__hero-visual { min-height: 100%; }
.service-detail__hero-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-detail__hero .eyebrow { color: var(--color-highlight); }
.service-detail__hero h1 { max-width: 720px; margin: 0; font-size: clamp(1.333rem, 3.333vw, 2rem); letter-spacing: -.05em; line-height: 1.15; }
.service-detail__content { width: min(100% - 64px, 900px); margin: 0 auto; padding: clamp(56px, 9vw, 112px) 0; }
.service-detail__section { padding: 0 0 40px; margin: 0 0 40px; border-bottom: 1px solid #cbd4db; }
.service-detail__section:last-child { margin-bottom: 0; border-bottom: 0; }
.service-detail__section h2 { margin: 0 0 16px; font-size: clamp(1.3rem, 2.2vw, 1.5rem); letter-spacing: -.03em; line-height: 1.35; }
.service-detail__section p { margin: 0; font-size: 1rem; }
.service-detail__related-link { display: inline-flex; gap: 10px; margin-bottom: 28px; color: #1b71ad; font-weight: 700; text-decoration: none; }
.service-detail__contact { margin-block: 16px 32px; }
.service-detail__contact h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2rem); letter-spacing: -.04em; line-height: 1.25; }
.service-detail__contact p { margin: 18px 0 0; color: #c9ced7; }
.service-detail__contact .button { margin-top: 24px; }
.service-detail__back { display: inline-flex; margin-top: 16px; font-weight: 700; text-decoration: none; }
.service-detail__navigation { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.service-detail__navigation-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; min-height: 58px; padding: 12px 14px; border: 1px solid #b9c2cb; background: #fff; color: var(--color-ink); font-size: clamp(.74rem, 1.25vw, .88rem); font-weight: 700; line-height: 1.25; text-decoration: none; white-space: nowrap; transition: background-color .22s ease, border-color .22s ease, color .22s ease; }
.service-detail__navigation-link span { overflow: hidden; text-overflow: ellipsis; }
.service-detail__navigation-link b { flex: 0 0 auto; font-size: 1.15em; transition: transform .22s ease; }
.service-detail__navigation-link:hover, .service-detail__navigation-link:focus-visible, .service-detail__navigation-link[aria-current="page"] { border-color: var(--color-ink); background: var(--color-ink); color: var(--color-on-dark); }
.service-detail__navigation-link:hover b, .service-detail__navigation-link:focus-visible b { transform: translateX(5px); }

.service-hub-hero { padding: clamp(84px, 13vw, 168px) 32px; color: var(--color-on-dark); background: linear-gradient(120deg, #030813 0%, #123b5e 100%); }
.service-hub-hero--ai { color: var(--color-ink); background: #c9e3f0; }
.service-hub-hero--security { color: var(--color-ink); background: #cee7e1; }
.service-hub-hero .eyebrow { color: var(--color-highlight); }
.service-hub-hero--ai .eyebrow, .service-hub-hero--security .eyebrow { color: #8a5a00; }
.service-hub-hero h1 { margin: 0; font-size: clamp(1.333rem, 5vw, 2rem); letter-spacing: -.05em; line-height: 1.16; }
.service-hub-hero--website h1 { font-size: clamp(1.333rem, 4.8vw, 2rem); }
.service-hub-hero p:not(.eyebrow) { margin: 26px 0 0; font-size: clamp(1rem, 1.55vw, 1.2rem); }
.service-hub-hero .button { margin-top: 32px; }
.service-hub-hero--website .button { background: var(--color-on-dark); color: var(--color-ink); }
.service-hub { width: min(100% - 64px, var(--content-max-width)); margin-inline: auto; padding: clamp(64px, 9vw, 120px) 0; }
.service-hub__section + .service-hub__section { margin-top: clamp(76px, 10vw, 132px); }
.service-hub__section > h2, .service-hub__contact h2 { margin: 0; font-size: clamp(1.6rem, 3.8vw, 2rem); letter-spacing: -.05em; line-height: 1.2; }
.service-hub h2[id] { scroll-margin-top: 120px; }
.work-sample__notice { padding: 18px 22px; border-left: 4px solid #24767a; background: #eaf2f3; }
.work-sample__flow { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 28px 0; padding-left: 24px; font-weight: 700; }
.work-sample__layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; margin-top: 32px; align-items: start; }
.work-sample__layout h3 { margin: 0 0 22px; font-size: 1.1rem; }
.work-sample__phone { width: min(100%, 360px); margin-inline: auto; border: 6px solid #142b3d; border-radius: 28px; overflow: hidden; background: #fff; box-shadow: 0 12px 30px #142b3d18; }
.work-sample__phone-header { display: grid; gap: 7px; padding: 22px; background: #142b3d; color: #fff; }
.work-sample__phone-header span { font-size: .75rem; }
.work-sample__fields { display: grid; gap: 18px; margin: 0; padding: 22px; }
.work-sample__fields dt { margin-bottom: 7px; font-size: .85rem; font-weight: 700; }
.work-sample__fields dd { margin: 0; padding: 10px 12px; border: 1px solid #cad7dc; border-radius: 5px; background: #f8fafb; font-size: .9rem; overflow-wrap: anywhere; }
.work-sample__result, .work-sample__option { display: inline-block; padding: 3px 7px; font-size: .8rem; }
.work-sample__result { background: #d8ece8; color: #165d50; }
.work-sample__option { color: #536676; }
.work-sample__fields .work-sample__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0; border: 0; background: none; }
.work-sample__photos > span { display: grid; gap: 16px; padding: 16px 8px; border: 1px dashed #6c9095; background: #edf3f4; text-align: center; font-size: .8rem; }
.work-sample__photos small { color: #536676; }
.work-sample__phone-footer { margin: 0; padding: 12px; background: #edf3f4; text-align: center; font-size: .7rem; }
.work-sample__report { margin: 0; }
.work-sample__report img { display: block; width: 100%; height: auto; border: 1px solid #d5dfe2; }
.work-sample__report figcaption { margin-top: 14px; font-size: .9rem; }
@media (max-width: 760px) { .work-sample__layout { grid-template-columns: 1fr; gap: 40px; } }
.sales-sample__layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 36px; margin-top: 32px; align-items: start; }
.sales-sample__layout h3 { margin: 0 0 22px; font-size: 1.1rem; }
.sales-sample__table { width: 100%; border-collapse: collapse; font-size: .85rem; background: #fff; }
.sales-sample__table caption { padding: 14px 0; text-align: left; font-weight: 700; }
.sales-sample__table th, .sales-sample__table td { padding: 12px 8px; border-bottom: 1px solid #cad7dc; text-align: right; }
.sales-sample__table th:first-child, .sales-sample__table td:first-child { text-align: left; }
.sales-sample__table thead { background: #142b3d; color: #fff; }
.sales-sample__table tfoot { background: #edf3f4; font-weight: 700; }
.sales-sample__total { display: grid; gap: 8px; padding: 24px; background: #edf3f4; }
.sales-sample__total strong { font-size: 2.3rem; line-height: 1.2; }
.sales-sample__total span:last-child { font-size: .85rem; }
.sales-sample__chart { margin: 24px 0 0; }
.sales-sample__chart img { display: block; width: 100%; height: auto; }
.sales-sample__chart figcaption { margin-top: 10px; font-size: .85rem; }
.sales-sample__daily { margin: 20px 0; }
.sales-sample__daily summary { cursor: pointer; font-weight: 700; }
@media (max-width: 760px) { .sales-sample__layout { grid-template-columns: 1fr; } }
.care-sample__layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; margin-top: 32px; align-items: start; }
.care-sample__layout h3 { margin: 0 0 22px; font-size: 1.1rem; }
.care-sample__record { display: grid; gap: 12px; margin: 0 0 20px; padding: 24px; background: #fff; font-size: .9rem; }
.care-sample__record > div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 12px; }
.care-sample__record dt { font-weight: 700; }
.care-sample__record dd { margin: 0; overflow-wrap: anywhere; }
.care-sample__handovers { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.care-sample__handovers li { padding: 24px; border-left: 4px solid #24767a; background: #edf3f4; }
.care-sample__handovers p { margin: 0 0 14px; }
.care-sample__handovers p:last-child { margin-bottom: 0; }
.care-sample__meta { color: #465d6b; font-size: .85rem; }
@media (max-width: 760px) { .care-sample__layout { grid-template-columns: 1fr; } }
.notice-sample__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; align-items: start; }
.notice-sample__step h3 { margin: 0; font-size: 1.1rem; }
.notice-sample__step > p { margin: 16px 0 24px; }
.notice-sample__screen { overflow: hidden; border: 1px solid #cbd7dd; border-radius: 8px; background: #fff; font-size: .88rem; }
.notice-sample__screen-heading { margin: 0; padding: 16px 20px; background: #142b3d; color: #fff; font-weight: 700; }
.notice-sample__menu { display: grid; gap: 12px; margin: 0; padding: 20px; list-style: none; }
.notice-sample__menu li { padding: 14px; background: #f1f5f6; }
.notice-sample__menu .notice-sample__selected { border-left: 4px solid #24767a; background: #e4f0ef; }
.notice-sample__selected small { display: block; margin-top: 5px; color: #465d6b; }
.notice-sample__caption { margin: 0; padding: 0 20px 20px; font-size: .8rem; }
.notice-sample__preset { display: grid; gap: 10px; margin: 20px; padding: 14px; background: #edf3f4; }
.notice-sample__preset dt { font-size: .8rem; color: #465d6b; }
.notice-sample__preset dd { margin: 3px 0 0; font-weight: 700; }
.notice-sample__fields { display: grid; gap: 18px; margin: 0; padding: 0 20px 20px; }
.notice-sample__fields dt { margin-bottom: 8px; font-weight: 700; }
.notice-sample__fields dd { margin: 0; padding: 12px; border: 1px solid #cbd7dd; background: #f8fafb; overflow-wrap: anywhere; }
.notice-sample__photo { padding: 30px 12px; border: 1px dashed #6c9095; background: #edf3f4; text-align: center; color: #465d6b; }
.notice-sample__published { padding: 20px; }
.notice-sample__published h4 { margin: 16px 0; font-size: 1.1rem; }
.notice-sample__published p { margin: 0 0 20px; }
.notice-sample__category { color: #24767a; font-weight: 700; }
@media (max-width: 900px) { .notice-sample__steps { grid-template-columns: 1fr; } }
.service-hub__section > p:not(.eyebrow) { margin: 24px 0 0; }
.service-hub__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 36px; }
.service-hub__grid section { padding: 28px; border-top: 4px solid var(--color-highlight); background: #fff; box-shadow: 0 9px 26px rgba(3,8,19,.08); }
.service-hub__grid h3 { margin: 0; font-size: 1.12rem; line-height: 1.5; }
.service-hub__grid p { margin: 13px 0 0; font-size: .94rem; }
.service-hub__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 36px 0 0; padding: 0; list-style: none; }
.service-hub__links a { display: grid; gap: 7px; height: 100%; padding: 24px; border: 1px solid #cbd4db; background: #fff; text-decoration: none; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.service-hub__links a:hover, .service-hub__links a:focus-visible { border-color: var(--color-ink); transform: translateY(-3px); box-shadow: 0 10px 24px rgba(3,8,19,.1); }
.service-hub__links strong { font-size: 1.02rem; }
.service-hub__links span { color: #4d5b68; font-size: .92rem; }
.service-hub__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 36px; }
.service-hub__facts dl { margin: 0; padding: 26px; background: #fff; }
.service-hub__facts dt { font-weight: 800; }
.service-hub__facts dd { margin: 12px 0 0; }
.recovery-checklist { width: 100%; border-collapse: collapse; margin: 28px 0; background: #fff; }
.recovery-checklist caption { text-align: left; padding-bottom: 14px; font-weight: 700; }
.recovery-checklist th, .recovery-checklist td { padding: 18px; border: 1px solid #cad7dc; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.recovery-checklist thead { background: #142b3d; color: #fff; }
.recovery-checklist tbody th { width: 22%; background: #edf3f4; }
@media (max-width: 700px) {
  .recovery-checklist, .recovery-checklist caption, .recovery-checklist tbody, .recovery-checklist tr, .recovery-checklist th, .recovery-checklist td { display: block; }
  .recovery-checklist thead { display: none; }
  .recovery-checklist tr { margin-bottom: 20px; }
  .recovery-checklist tbody th { width: auto; }
  .recovery-checklist td { border-top: 0; }
  .recovery-checklist td::before { content: attr(data-label); display: block; margin-bottom: 8px; font-weight: 800; }
}
.service-hub__steps { display: grid; gap: 0; margin: 36px 0 0; padding: 0; list-style: none; counter-reset: service-step; }
.service-hub__steps li { display: grid; grid-template-columns: minmax(180px, .55fr) 1.45fr; gap: 24px; padding: 24px 0; border-top: 1px solid #cbd4db; counter-increment: service-step; }
.service-hub__steps strong::before { content: counter(service-step, decimal-leading-zero) ". "; color: #8a5a00; }
.service-hub__faq { display: grid; gap: 12px; margin-top: 36px; }
.service-hub__faq details { padding: 0; background: #fff; border: 1px solid #d5dce2; }
.service-hub__faq summary { box-sizing: border-box; width: 100%; padding: 20px 24px; cursor: pointer; font-weight: 800; }
.service-hub__faq p { margin: 0; padding: 0 24px 20px; }
.service-hub__project-banner { display: block; overflow: hidden; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 10px 26px rgba(3,8,19,.14); transition: transform .22s ease, box-shadow .22s ease; }
.service-hub__project-banner img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.service-hub__project-banner:hover, .service-hub__project-banner:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(3,8,19,.22); }
.service-hub__project-description { margin: 24px 0 0; }
.service-hub__contact { margin-top: clamp(78px, 10vw, 132px); }
.service-hub__contact p { margin: 22px 0 0; }
.service-hub__contact .button { margin-top: 28px; }
.not-found { padding: clamp(60px, 8vw, 110px) 32px; }
.not-found h2 { margin: 0; }
.not-found nav { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 28px; }
.not-found a { font-weight: 800; }

.legal-guide-hero { padding: clamp(84px, 13vw, 170px) max(32px, calc((100vw - 1280px) / 2)); color: var(--color-on-dark); background: linear-gradient(120deg, #030813 0%, #0b2945 100%); }
.legal-guide-hero h1 { margin: 0; font-size: clamp(2.25rem, 5vw, 4.8rem); letter-spacing: -.05em; line-height: 1.16; }
.legal-guide-hero .eyebrow { color: var(--color-highlight); }
.legal-guide-hero p:not(.eyebrow) { margin: 24px 0 0; color: #d6dbe2; font-size: clamp(1rem, 1.6vw, 1.18rem); }
.legal-guide { width: min(100% - 64px, 1280px); margin: 0 auto; padding: clamp(64px, 9vw, 120px) 0; }
.legal-guide__lead { margin: 0; font-size: clamp(1.08rem, 1.8vw, 1.28rem); }
.legal-guide__notice { margin-top: 34px; padding: 24px 28px; border-left: 5px solid var(--color-highlight); background: #fff7e7; }
.legal-guide__notice p { margin: 8px 0 0; }
.legal-guide__section { margin-top: clamp(62px, 8vw, 104px); }
.legal-guide__section > h2 { margin: 0; font-size: clamp(1.8rem, 3.7vw, 3.5rem); letter-spacing: -.05em; line-height: 1.18; }
.legal-guide__section > p:not(.eyebrow) { margin: 24px 0 0; }
.legal-guide__classification, .legal-guide__columns, .legal-guide__industries { display: grid; gap: 20px; margin-top: 34px; }
.legal-guide__classification { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.legal-guide__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.legal-guide__industries { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.legal-guide__classification section, .legal-guide__columns section, .legal-guide__industries section { padding: 25px; border-top: 4px solid var(--color-highlight); background: #fff; box-shadow: 0 8px 22px rgba(3,8,19,.08); }
.legal-guide h3 { margin: 12px 0 0; font-size: 1.15rem; line-height: 1.45; }
.legal-guide__classification p, .legal-guide__industries p { margin: 12px 0 0; font-size: .94rem; }
.legal-guide ul { margin: 14px 0 0; padding-left: 1.25em; }
.legal-guide li + li { margin-top: 7px; }
.legal-guide__label { display: inline-block; padding: 3px 8px; font-size: .73rem; font-weight: 800; letter-spacing: .04em; }
.legal-guide__label--required { background: #f2b84b; color: #030813; }
.legal-guide__label--conditional { background: #d8ecf8; color: #063457; }
.legal-guide__label--premises { background: #e7eaed; color: #384553; }
.legal-guide__label--recommended { background: #dcebdc; color: #1f4b27; }
.legal-guide__sources { display: grid; gap: 12px; }
.legal-guide__sources a { color: #1b71ad; font-weight: 700; }

.site-footer {
  border-top: 1px solid #dfe3e8;
  padding-block: 24px;
  text-align: center;
}

.site-footer .container { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 24px 48px; text-align: left; }
.site-footer__business { display: grid; gap: 6px; }
.site-footer__business span { font-size: .82rem; }
.site-footer .site-footer__project-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; justify-self: start; margin-top: 8px; padding: 11px 16px; background: linear-gradient(120deg, #061426, #1d5f8f); color: #fff; font-weight: 700; text-decoration: none; }
.site-footer nav { display: flex; flex-wrap: wrap; align-content: start; justify-content: flex-end; gap: 10px 22px; }
.site-footer a { color: inherit; font-size: .82rem; }

.contact-page-hero { padding: clamp(84px, 13vw, 170px) 32px; }
.policy-hero { padding: clamp(84px, 12vw, 150px) 32px; }
.contact-page-hero, .policy-hero { color: var(--color-on-dark); background: linear-gradient(120deg, #030813 0%, #0b2945 100%); }
.contact-page-hero .eyebrow, .policy-hero .eyebrow, .contact-complete .eyebrow, .contact-confirm > .eyebrow { color: var(--color-highlight); }
.contact-page-hero h1 { margin: 0; font-size: clamp(1.333rem, 6vw, 2rem); letter-spacing: -.05em; line-height: 1.16; }
.policy-hero h1 { margin: 0; font-size: clamp(2.4rem, 5vw, 4.8rem); letter-spacing: -.05em; line-height: 1.12; }
.contact-page-hero p:not(.eyebrow) { margin: 24px 0 0; color: #d6dbe2; font-size: clamp(1rem, 1.6vw, 1.18rem); }
.policy-hero p:not(.eyebrow) { margin: 24px 0 0; color: #d6dbe2; font-size: clamp(1rem, 1.5vw, 1.16rem); }
.contact-page { padding: clamp(24px, 3vw, 40px) 32px clamp(64px, 8vw, 110px); background: #eef2f4; }
.contact-page__inner { width: min(100%, var(--content-max-width)); margin-inline: auto; }
.policy-content { width: min(100%, 980px); margin-inline: auto; }
.contact-sales-notice { padding: 24px 28px; border-left: 5px solid #bc4a36; background: #fff4f1; }
.contact-sales-notice strong { font-size: 1.08rem; }
.contact-sales-notice p { margin: 8px 0; }
.contact-sales-notice a { font-size: .88rem; font-weight: 700; }
.contact-message { margin: 26px 0; padding: 20px 24px; }
.contact-message--error { border-left: 5px solid #bc4a36; background: #fff; }
.contact-message p { margin: 0; font-weight: 800; }
.contact-message ul { margin: 10px 0 0; }
.contact-form, .contact-confirm, .contact-complete { margin-top: 30px; padding: clamp(26px, 5vw, 56px); background: #fff; box-shadow: 0 12px 34px rgba(3, 8, 19, .09); }
.contact-form > * + *, .contact-branch > * + *, .contact-common > * + * { margin-top: 24px; }
.contact-branch, .contact-common { margin-top: 36px; padding-top: 34px; border-top: 1px solid #d9dfe4; }
.contact-branch[hidden] { display: none; }
.contact-branch h2, .contact-common h2, .contact-confirm h2, .contact-complete h2 { margin: 0; font-size: clamp(1.333rem, 3vw, 2rem); letter-spacing: -.035em; }
.contact-subtitle { margin: 34px 0 0; font-size: 1.18rem; }
.contact-fieldset { margin: 0; padding: 0; border: 0; }
.contact-fieldset legend, .contact-field > span { display: block; margin-bottom: 9px; font-weight: 800; }
.contact-fieldset b, .contact-field b, .contact-agreements b { color: #a83b2b; font-size: .72rem; }
.contact-choice-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.contact-choice-cards label { position: relative; cursor: pointer; }
.contact-choice-cards input { position: absolute; opacity: 0; }
.contact-choice-cards span { display: grid; gap: 4px; min-height: 100%; padding: 20px; border: 2px solid #d9dfe4; background: #fff; }
.contact-choice-cards input:checked + span { border-color: #1b71ad; background: #eef7fc; }
.contact-choice-cards input:focus-visible + span { outline: 3px solid rgba(27, 113, 173, .35); outline-offset: 2px; }
.contact-choice-cards strong { font-size: 1.5rem; line-height: 1.35; }
.contact-choice-cards small { color: #53606e; }
.contact-options { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.contact-options label { display: inline-flex; align-items: center; gap: 7px; padding: 9px 0; }
.contact-service-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.contact-service-options--detail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contact-service-options label { position: relative; min-width: 0; cursor: pointer; }
.contact-service-options input { position: absolute; opacity: 0; }
.contact-service-options span { display: grid; place-items: center; min-height: 72px; padding: 14px 10px; border: 2px solid #c6d0d8; background: #fff; font-weight: 800; line-height: 1.4; text-align: center; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.contact-service-options label:hover span { border-color: #6b879b; background: #f7fafb; }
.contact-service-options input:checked + span { border-color: #1b71ad; background: #e7f4fb; box-shadow: inset 0 0 0 1px #1b71ad; }
.contact-service-options input:focus-visible + span { outline: 3px solid rgba(27, 113, 173, .35); outline-offset: 2px; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.contact-reference { margin-top: 14px; }
.contact-field input[type="text"], .contact-field input[type="email"], .contact-field input[type="tel"], .contact-field input[type="url"], .contact-field select, .contact-field textarea { width: 100%; padding: 13px 14px; border: 1px solid #b9c2ca; border-radius: 0; background: #fff; color: var(--color-ink); font: inherit; }
.contact-field textarea { min-height: 120px; resize: vertical; }
.contact-field textarea:disabled { background: #f0f2f4; cursor: not-allowed; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { border-color: #1b71ad; outline: 3px solid rgba(27, 113, 173, .2); }
.contact-help { margin: 7px 0 0; color: #53606e; font-size: .86rem; }
.contact-field small.contact-help { display: block; }
.contact-agreements { display: grid; gap: 14px; padding: 24px; border: 1px solid #d7dde2; background: #f8f9fa; }
.contact-agreements p { margin: 0 0 4px; }
.contact-agreements label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; }
.contact-agreements input[type="checkbox"] { align-self: center; margin: 0; }
.contact-agreements__text { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 10px; min-width: 0; }
.contact-agreements__text b { flex: 0 0 auto; line-height: 1; }
.contact-button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 52px; padding: 14px 24px; border: 0; background: var(--color-ink); color: var(--color-on-dark); font: inherit; font-weight: 800; cursor: pointer; }
.contact-button:disabled { cursor: not-allowed; opacity: .45; }
.contact-button--secondary { border: 1px solid var(--color-ink); background: #fff; color: var(--color-ink); }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-confirm dl { display: grid; gap: 0; margin: 30px 0; }
.contact-confirm dl div { display: grid; grid-template-columns: minmax(150px, .32fr) minmax(0, 1fr); gap: 20px; padding: 18px 0; border-top: 1px solid #d9dfe4; }
.contact-confirm dt { font-weight: 800; }
.contact-confirm dd { margin: 0; overflow-wrap: anywhere; }
.contact-confirm__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.contact-confirm__actions form { margin: 0; padding: 0; box-shadow: none; }
.contact-setup { padding: 16px; border-left: 4px solid #bc4a36; background: #fff4f1; }
.contact-complete { text-align: center; }
.policy-content { padding: clamp(60px, 8vw, 110px) 32px; }
.policy-content section { padding: 30px 0; border-top: 1px solid #d9dfe4; }
.policy-content h2 { margin: 0 0 16px; font-size: clamp(1.25rem, 2.2vw, 1.75rem); }
.policy-content p, .policy-content li { line-height: 1.9; }
.policy-updated { text-align: right; }

@media (max-width: 600px) {
  .travel-cost { grid-template-columns: 1fr; }
  body { padding-top: 66px; }
  :root { --content-gutter: 15px; }

  .site-header__inner { position: relative; width: min(100% - (var(--content-gutter) * 2), var(--content-max-width)); min-height: 66px; }
  .site-menu-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 0 8px 10px; border: 0; background: transparent; color: var(--color-ink); font: inherit; font-size: .72rem; font-weight: 700; cursor: pointer; }
  .site-menu-toggle__icon { display: grid; gap: 4px; width: 18px; }
  .site-menu-toggle__icon i { display: block; width: 18px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .site-header--menu-open .site-menu-toggle__icon i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .site-header--menu-open .site-menu-toggle__icon i:nth-child(2) { opacity: 0; }
  .site-header--menu-open .site-menu-toggle__icon i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header nav { position: absolute; top: 100%; right: 0; display: none; width: min(260px, 100vw - 30px); padding: 8px 15px; border: 1px solid #dfe3e8; background: #fff; box-shadow: 0 12px 24px rgba(3, 8, 19, .16); }
  .site-header--menu-open nav { display: grid; }
  .site-header nav a { padding: 13px 0; border-bottom: 1px solid #e7eaed; font-size: .9rem; }
  .site-header nav a:last-child { border-bottom: 0; }
  .site-logo__tagline { font-size: .55rem; }
  .home-intro { padding-inline: 15px; }
  .home-intro h1 { font-size: clamp(1.5rem, 7.2vw, 2.25rem); white-space: nowrap; }
  .home-intro__description { width: 100%; padding-inline: 0; }
  .home-intro__description p { text-align: justify; }
  .home-intro::after { background: linear-gradient(90deg, rgba(3, 8, 19, .80), rgba(3, 8, 19, .42)); }
  .service-split { grid-template-columns: 1fr; }
  .service-panel { min-height: auto; padding: 44px 15px 55px; }
  .service-panel h2 { font-size: clamp(1.3rem, 7vw, 2rem); }
  .service-points { grid-template-columns: 1fr; }
  .service-card:hover { transform: none; box-shadow: 0 10px 28px rgba(3,8,19,.10); }
  .service-card__link:hover { color: var(--color-ink); }
  .project-site-banner:hover { transform: none; box-shadow: 0 10px 28px rgba(3,8,19,.14); }
  .project-site-banner { min-height: 90px; }
  .project-site-banner img { right: 24px; }
  .project-site-banner__title { left: 16px; width: calc(100% - 150px); font-size: clamp(.875rem, 3.5vw, 1.5rem); }
  .project-site-banner__arrow { right: 8px; bottom: 8px; width: 24px; height: 24px; font-size: .85rem; }
  .service-flow-link { grid-template-columns: 1fr; }
  .service-flow-link__copy { padding: 8px 4px 12px; }
  .service-detail__hero-inner { grid-template-columns: 1fr; }
  .service-detail__hero-copy { padding: 64px 15px; }
  .service-detail__hero-visual { aspect-ratio: 16 / 9; }
  .service-detail__content { width: min(100% - 30px, 900px); }
  .service-detail__navigation { grid-template-columns: 1fr; }
  .service-detail__navigation-link { padding-inline: 18px; font-size: .9rem; }
  .service-hub-hero, .service-hub, .not-found { padding-inline: 15px; }
  .service-hub { width: 100%; }
  .service-hub__grid, .service-hub__links, .service-hub__facts { grid-template-columns: 1fr; }
  .service-hub__steps li { grid-template-columns: 1fr; gap: 8px; }
  .service-hub__links a:hover, .service-hub__links a:focus-visible { transform: none; }
  .service-hub__project-banner:hover { transform: none; box-shadow: 0 10px 26px rgba(3,8,19,.14); }
  .legal-guide-hero { padding-inline: 15px; }
  .legal-guide { width: min(100% - 30px, 1280px); }
  .legal-guide__classification, .legal-guide__columns, .legal-guide__industries { grid-template-columns: 1fr; }
  .about-hero, .about-introduction, .about-services, .about-strength, .about-project, .works, .pricing-section, .flow-hero, .flow-intro, .flow-steps { padding-inline: 15px; }
  .flow-hero { padding-inline: 0; }
  .about-services__grid, .works__grid, .pricing-grid { grid-template-columns: 1fr; }
  .about-project__card { grid-template-columns: 1fr; align-items: start; }
  .about-project__card .button { justify-self: start; white-space: normal; }
  .flow-step, .flow-step:nth-child(even) { grid-template-columns: 1fr; }
  .flow-step:nth-child(even) img { order: 0; }
  .flow-step img { min-height: 0; aspect-ratio: 16 / 9; }
  .contact-section br { display: none; }
  .site-footer .container { grid-template-columns: 1fr; justify-content: center; text-align: center; }
  .site-footer .site-footer__project-link { justify-self: center; }
  .site-footer nav { justify-content: center; }
  .contact-page-hero, .policy-hero, .contact-page { padding-inline: 15px; }
  .contact-form, .contact-confirm, .contact-complete { padding: 24px 18px; }
  .contact-choice-cards, .contact-grid { grid-template-columns: 1fr; }
  .contact-service-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-confirm dl div { grid-template-columns: 1fr; gap: 7px; }
}
