/* Shared multi-page components;
original branding remains in style.css. */
[hidden] {
  display:none!important;
}

body {
  overflow-wrap:break-word;
}

input,select {
  font:inherit;
}

input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #4b94ff;
  outline-offset:4px;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.main-nav {
  gap:24px;
}

.button-blue {
  color:#fff;
  background:var(--blue);
}

.button-blue:hover {
  background:#133faf;
}

.button-outline {
  color:var(--blue);
  border-color:#bacce7;
  background:transparent;
}

.button-outline:hover {
  background:#e8f0ff;
}

.inline-link,.card-link {
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:var(--blue);
  font-size:.9375rem;
  font-weight:550;
  min-height:44px;
}

.inline-link {
  margin-top:22px;
}

.inline-link .icon,.card-link .icon {
  width:19px;
  height:19px;
}

.inline-link:hover,.card-link:hover {
  color:#0b347f;
}

.soft-section {
  background:#f3f6fb;
}

.section-intro {
  max-width:850px;
  color:var(--muted);
  line-height:1.95;
  font-size:1rem;
  margin:-12px 0 35px;
}

.section-note {
  color:#6f7b8e;
  font-size:.875rem;
  line-height:1.9;
  margin-top:27px;
}

.breadcrumbs {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  padding-top:25px;
  font-size:.8125rem;
  color:#74849b;
}

.breadcrumbs a:hover {
  color:var(--blue);
}

.breadcrumbs [aria-current] {
  color:#38506e;
}

.page-hero {
  background:#eef3fb;
  border-bottom:1px solid #e5ecf6;
}

.page-hero-inner {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr);
  gap:70px;
  align-items:center;
  padding:46px 0 62px;
}

.page-hero h1 {
  font-size:clamp(2rem,3.25vw,3rem);
  font-weight:600;
  line-height:1.45;
  letter-spacing:.025em;
}

.page-description {
  max-width:680px;
  margin-top:22px;
  font-size:1rem;
  line-height:1.95;
  color:#62748f;
}

.page-hero-visual {
  height:238px;
  border-radius:3px;
  background:#06234e url('./hero-glass.webp') 76% center / cover;
  position:relative;
  overflow:hidden;
}

.page-hero-visual:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#071c40bb,transparent 70%);
}

.page-hero-visual span {
  position:absolute;
  bottom:22px;
  left:25px;
  z-index:1;
  color:#e0ecfa;
  font-size:.75rem;
  letter-spacing:.15em;
  line-height:1.7;
}

.catalog-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  background:transparent;
  border:0;
}

.catalog-grid .catalog-card {
  border:1px solid var(--line);
  background:#fff;
  padding:30px;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.catalog-grid .catalog-card:hover {
  background:#fbfcff;
  border-color:#a8c2ef;
}

.catalog-card h3 a:hover {
  color:var(--blue);
}

.catalog-card .service-tags {
  margin-top:22px;
  margin-bottom:17px;
}

.catalog-card .card-link {
  margin-top:auto;
  justify-content:space-between;
  border-top:1px solid #edf0f7;
  padding-top:17px;
}

.catalog-card .service-top {
  margin-bottom:24px;
}

.catalog-card h3 {
  font-size:1.375rem;
}

.catalog-card p {
  font-size:1rem;
}

.catalog-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  margin-bottom:28px;
}

.filter-pills {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.filter-pills button {
  min-height:44px;
  padding:9px 19px;
  border:1px solid #dbe4f2;
  border-radius:3px;
  background:#fff;
  color:#51637f;
  font-size:.9375rem;
}

.filter-pills button[aria-pressed=true] {
  background:var(--blue);
  color:#fff;
  border-color:var(--blue);
}

.search-field input,.faq-search input,.consultation-card select {
  width:100%;
  min-height:48px;
  padding:11px 15px;
  background:#fff;
  color:var(--navy);
  border:1px solid #cbd6e5;
  border-radius:3px;
  font-size:1rem;
}

.search-field {
  width:290px;
}

input::placeholder {
  color:#788598;
  opacity:1;
}

.result-count {
  color:var(--muted);
  font-size:.875rem;
  margin-bottom:20px;
}

.empty-state {
  padding:54px 24px;
  border:1px dashed #b9c9e2;
  text-align:center;
}

.empty-state h2 {
  font-size:1.375rem;
}

.empty-state p {
  margin:14px 0 22px;
  color:var(--muted);
  font-size:1rem;
}

.choice-layout {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:100px;
}

.choice-layout p:not(.section-kicker) {
  color:var(--muted);
  font-size:1rem;
  margin-top:22px;
}

.choice-links {
  border-top:1px solid #d8e1ef;
}

.choice-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 2px;
  border-bottom:1px solid #d8e1ef;
  font-size:1.125rem;
}

.choice-links a:hover {
  color:var(--blue);
}

.choice-links .icon {
  width:21px;
}

.home-scenes {
  border-bottom:1px solid #e8edf4;
}

.scene-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:27px;
}

.scene-card {
  border-top:2px solid #adc2e5;
  padding:25px 0 5px;
  display:block;
}

.scene-card:hover {
  border-color:var(--blue);
}

.scene-number {
  font-size:.8125rem;
  color:var(--blue);
}

.scene-card h3 {
  font-size:1.3125rem;
  margin:22px 0 15px;
  font-weight:600;
}

.scene-card p {
  color:var(--muted);
  font-size:1rem;
  line-height:1.9;
}

.scene-card .inline-link {
  margin-top:17px;
}

.company-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:80px;
  align-items:center;
}

.company-visual {
  height:500px;
  position:relative;
  overflow:hidden;
  border-radius:3px;
  background:#072148;
}

.company-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:73% center;
}

.company-visual>div {
  position:absolute;
  left:30px;
  right:30px;
  bottom:30px;
  padding:20px;
  background:#05204fda;
  color:#fff;
  display:flex;
  flex-direction:column;
  gap:7px;
}

.company-visual strong {
  font-size:1.5rem;
  letter-spacing:.1em;
}

.company-visual span {
  color:#c9dafa;
  font-size:.875rem;
}

.company-copy h2 {
  margin-bottom:27px;
}

.company-copy p:not(.section-kicker) {
  font-size:1rem;
  line-height:1.95;
  color:var(--muted);
  margin-top:17px;
}

.company-copy .button {
  margin-top:30px;
}

.value-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}

.value-grid article {
  background:#fff;
  border-top:3px solid #205adb;
  padding:30px;
}

.value-grid article>span {
  color:var(--blue);
  font-size:.8125rem;
}

.value-grid h3 {
  font-size:1.375rem;
  font-weight:550;
  margin-top:22px;
  margin-bottom:17px;
}

.value-grid p {
  color:var(--muted);
  font-size:1rem;
  line-height:1.9;
}

.process-grid {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--line);
}

.process-grid li {
  padding:29px;
  position:relative;
}

.process-grid li+li {
  border-left:1px solid var(--line);
}

.step-number {
  display:inline-block;
  color:var(--blue);
  font-size:.875rem;
  padding-bottom:15px;
}

.process-grid h3 {
  font-size:1.125rem;
  font-weight:600;
  margin-bottom:10px;
}

.process-grid p {
  color:var(--muted);
  font-size:1rem;
  line-height:1.85;
}

.bottom-cta {
  background:#eaf1fd;
  padding:54px 0;
}

.bottom-cta>.container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}

.bottom-cta .section-kicker {
  margin-bottom:16px;
}

.bottom-cta h2 {
  font-size:1.875rem;
  line-height:1.5;
  font-weight:600;
}

.bottom-cta p:not(.section-kicker) {
  margin-top:17px;
  font-size:1rem;
  color:#5d7394;
}

.bottom-cta p a {
  margin-left:10px;
  color:#164db5;
  font-size:1.125rem;
  font-weight:550;
}

.bottom-cta .button {
  flex-shrink:0;
}

.multi-footer {
  padding:55px 0 25px;
}

.footer-columns {
  display:grid;
  grid-template-columns:1.5fr .8fr .8fr 1.1fr;
  gap:35px;
  padding-bottom:38px;
}

.footer-intro p {
  color:#748197;
  font-size:.875rem;
  line-height:1.9;
  margin-top:20px;
  max-width:270px;
}

.footer-links,.footer-contact {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.footer-columns h2 {
  font-size:.9375rem;
  font-weight:600;
  margin-bottom:16px;
}

.footer-links a {
  color:#69778d;
  font-size:.875rem;
  line-height:2.3;
}

.footer-links a:hover {
  color:var(--blue);
}

.footer-contact>a:first-of-type {
  font-size:1.375rem;
  font-weight:600;
  color:#174aaf;
  white-space:nowrap;
}

.footer-contact p {
  color:#748197;
  font-size:.8125rem;
  margin-top:9px;
}

.footer-guide {
  font-size:.875rem;
  margin-top:23px;
  color:#596e8f;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.footer-guide .icon {
  width:16px;
  height:16px;
}

.multi-footer .footer-inner {
  border-top:1px solid var(--line);
  padding-top:23px;
}

.detail-hero {
  background:#06234e;
  color:#fff;
}

.detail-hero .breadcrumbs,.detail-hero .breadcrumbs [aria-current] {
  color:#b5c8e5;
}

.detail-hero .breadcrumbs a:hover {
  color:#fff;
}

.detail-hero-inner {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:90px;
  align-items:center;
  padding:49px 0 64px;
}

.detail-hero h1 {
  font-size:clamp(2rem,3.5vw,3.25rem);
  font-weight:600;
  line-height:1.45;
}

.detail-hero .section-kicker {
  color:#8ebcff;
}

.detail-hero .section-kicker span {
  color:#c1d2eb;
}

.detail-hero .page-description {
  color:#c4d3e9;
  max-width:650px;
}

.detail-actions {
  display:flex;
  align-items:center;
  gap:27px;
  margin-top:28px;
  flex-wrap:wrap;
}

.detail-service-label {
  padding:38px 0 38px 55px;
  border-left:1px solid #52709c;
}

.detail-icon {
  width:66px;
  height:66px;
  stroke:#9cc7ff;
  fill:none;
  stroke-width:1.1;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-bottom:30px;
}

.detail-service-label strong {
  font-size:1.625rem;
  font-weight:500;
}

.detail-service-label>div {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}

.detail-service-label>div span {
  font-size:.8125rem;
  padding:4px 10px;
  border:1px solid #365988;
  color:#c2d7f7;
}

.detail-nav {
  background:#fff;
  border-bottom:1px solid var(--line);
}

.detail-nav>.container {
  display:flex;
  gap:50px;
  flex-wrap:wrap;
}

.detail-nav a {
  padding:19px 0;
  min-height:58px;
  font-size:.9375rem;
  color:#4c607d;
}

.detail-nav a:hover {
  color:var(--blue);
}

.feature-matrix {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 56px;
}

.feature-entry {
  display:flex;
  gap:24px;
  border-bottom:1px solid var(--line);
  padding:28px 0;
}

.feature-entry>span {
  font-size:.8125rem;
  color:var(--blue);
  padding-top:4px;
}

.feature-entry h3 {
  font-size:1.25rem;
  font-weight:550;
  margin-bottom:11px;
}

.feature-entry p {
  color:var(--muted);
  font-size:1rem;
  line-height:1.85;
}

.value-grid .scenario-entry h3 {
  margin-top:0;
}

.narrow-container {
  max-width:900px;
}

.faq-list {
  border-top:1px solid #d7e1ef;
}

.faq-item {
  border-bottom:1px solid #d7e1ef;
}

.faq-item summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
  cursor:pointer;
  padding:21px 0;
  font-size:1.125rem;
  font-weight:500;
}

.faq-item summary::-webkit-details-marker {
  display:none;
}

.faq-item summary>span {
  color:var(--blue);
  font-size:1.4rem;
  line-height:1.3;
  flex-shrink:0;
}

.faq-item[open] summary>span {
  transform:rotate(45deg);
}

.faq-answer {
  padding:0 45px 24px 0;
  color:var(--muted);
  font-size:1rem;
  line-height:1.95;
}

.scenario-tabs {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid #cad8eb;
  margin-bottom:42px;
  gap:14px;
}

.scenario-tabs button {
  padding:17px;
  min-height:58px;
  border:0;
  border-bottom:3px solid transparent;
  background:#f4f7fc;
  color:#596a83;
  font-size:1.0625rem;
}

.scenario-tabs button[aria-selected=true] {
  background:#eaf1ff;
  border-color:var(--blue);
  color:var(--blue);
}

.scenario-panel+.scenario-panel {
  margin-top:65px;
}

.js .scenario-panel+.scenario-panel {
  margin-top:0;
}

.scenario-layout {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:80px;
}

.scenario-layout h2 {
  font-size:2rem;
  line-height:1.55;
}

.scenario-layout .section-intro {
  margin:20px 0 28px;
}

.small-heading {
  font-size:1.125rem;
  font-weight:550;
  margin-bottom:19px;
}

.check-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:15px;
}

.check-list li {
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#536680;
  font-size:1rem;
}

.check-list .icon {
  width:18px;
  height:18px;
  color:var(--blue);
  margin-top:5px;
}

.recommendations {
  padding:30px;
  background:#f2f6fc;
  align-self:start;
}

.recommendations h3 {
  font-size:1.125rem;
  font-weight:550;
  padding-bottom:15px;
}

.recommended-service {
  display:flex;
  align-items:center;
  gap:14px;
  padding:19px 0;
  border-bottom:1px solid #dbe5f2;
}

.recommended-service:last-child {
  border-bottom:0;
  padding-bottom:0;
}

.recommended-service>.icon:first-child {
  color:var(--blue);
}

.recommended-service>.icon:last-child {
  margin-left:auto;
  width:18px;
}

.recommended-service span {
  font-size:1.0625rem;
}

.recommended-service small {
  display:block;
  color:#6a7a91;
  margin-top:5px;
  font-size:.8125rem;
}

.recommended-service:hover {
  color:var(--blue);
}

.scenario-flow {
  border-top:1px solid var(--line);
  margin-top:42px;
  padding-top:26px;
}

.scenario-flow h3 {
  font-size:1rem;
  font-weight:550;
}

.scenario-flow ol {
  list-style:none;
  padding:0;
  margin:22px 0 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.scenario-flow li {
  display:flex;
  gap:12px;
  padding:16px;
  background:#f5f7fb;
  font-size:.9375rem;
}

.scenario-flow li>span {
  color:var(--blue);
  font-size:.8125rem;
  padding-top:3px;
}

.guide-layout {
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(0,2fr);
  gap:70px;
  align-items:start;
}

.guide-aside {
  background:#eef4ff;
  padding:28px;
  position:sticky;
  top:112px;
}

.guide-aside h2 {
  font-size:1.25rem;
  line-height:1.65;
}

.guide-aside ol {
  padding-left:20px;
  margin-top:20px;
  color:#566d90;
  font-size:1rem;
  line-height:2.3;
}

.guide-aside .inline-link {
  font-size:.875rem;
  gap:6px;
  margin-top:6px;
}

.faq-search {
  padding:26px;
  background:#f3f6fb;
  margin-bottom:42px;
}

.faq-search label {
  display:block;
  margin-bottom:13px;
  font-weight:550;
  font-size:1rem;
}

.faq-search p {
  margin-top:12px;
  color:var(--muted);
  font-size:.875rem;
}

.faq-group {
  margin-bottom:44px;
}

.faq-group h2 {
  font-size:1.375rem;
  margin-bottom:18px;
}

.contact-page-layout {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:70px;
}

.phone-card {
  background:#edf4ff;
  border-top:3px solid var(--blue);
  padding:38px;
  align-self:start;
}

.phone-card h2 {
  font-size:1.5rem;
}

.large-phone {
  display:inline-block;
  margin-top:15px;
  color:#1850be;
  font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:600;
  letter-spacing:.015em;
  white-space:nowrap;
}

.phone-card>p:not(.section-kicker) {
  font-size:1rem;
  color:#617594;
  line-height:1.9;
  margin-top:17px;
}

.phone-actions {
  display:flex;
  gap:13px;
  flex-wrap:wrap;
  margin-top:28px;
}

.phone-actions .button {
  font-size:.875rem;
  gap:13px;
}

.phone-card .copy-status {
  min-height:24px;
  font-size:.875rem;
  margin-top:12px;
}

.phone-card .inline-link {
  margin-top:8px;
}

.consultation-card h2 {
  font-size:1.75rem;
  margin-bottom:26px;
}

.field-label {
  font-size:.875rem;
  color:#516785;
  display:block;
  margin-bottom:10px;
}

.consultation-card select {
  padding-right:32px;
}

.service-context {
  border-left:3px solid #acc6ed;
  margin-top:21px;
  padding:4px 0 4px 19px;
}

.service-context p {
  color:#657893;
  font-size:1rem;
  line-height:1.85;
}

.service-context .inline-link {
  margin-top:9px;
  font-size:.875rem;
}

.consultation-card h3 {
  font-size:1.125rem;
  font-weight:550;
  margin-top:28px;
}

.preparation-list {
  color:#63738a;
  font-size:1rem;
  line-height:2.1;
  padding-left:21px;
}

@media(max-width:1150px) {
  .main-nav {
    gap:22px;
  }
  .catalog-grid .catalog-card {
    padding:24px;
  }
  .choice-layout,.company-layout,.scenario-layout {
    gap:50px;
  }
  .detail-hero-inner {
    gap:45px;
  }
  .detail-service-label {
    padding-left:35px;
  }
  .footer-columns {
    grid-template-columns:1.2fr .8fr .8fr 1fr;
    gap:22px;
  }
  .guide-layout {
    gap:36px;
  }
  .contact-page-layout {
    gap:36px;
  }
  .phone-card {
    padding:30px;
  }
}

@media(max-width:960px) {
  :root {
    --header:74px;
  }
  .site-header {
    min-height:var(--header);
    height:auto;
  }
  .header-inner {
    flex-wrap:wrap;
    gap:0;
  }
  .brand {
    min-height:var(--header);
  }
  .header-phone {
    display:none;
  }
  .menu-toggle {
    width:44px;
    height:44px;
    padding:10px;
    margin-right:-8px;
    background:transparent;
    border:0;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
  }
  .menu-toggle span {
    display:block;
    height:2px;
    width:23px;
    background:#1c355f;
  }
  .js .menu-toggle {
    display:flex;
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(7px) rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] span:nth-child(2) {
    opacity:0;
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-7px) rotate(-45deg);
  }
  .main-nav {
    width:100%;
    height:auto;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px 16px;
    padding-bottom:15px;
  }
  .main-nav a {
    min-height:45px;
    height:auto;
    justify-content:flex-start;
    font-size:.9375rem;
  }
  .main-nav a:after {
    display:none;
  }
  .js .main-nav {
    display:none;
    position:absolute;
    top:74px;
    left:0;
    right:0;
    background:#fff;
    border-bottom:1px solid var(--line);
    padding:15px 36px 20px;
    box-shadow:0 12px 20px #0c25400a;
  }
  .js .main-nav.is-open {
    display:grid;
  }
  .page-hero-inner {
    gap:30px;
    grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);
  }
  .page-hero-visual {
    height:210px;
  }
  .catalog-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .scene-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px;
  }
  .company-layout {
    gap:35px;
  }
  .company-visual {
    height:480px;
  }
  .value-grid {
    gap:20px;
  }
  .value-grid article {
    padding:24px;
  }
  .process-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .process-grid li:nth-child(3) {
    border-left:0;
  }
  .process-grid li:nth-child(n+3) {
    border-top:1px solid var(--line);
  }
  .footer-columns {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:35px 55px;
  }
  .multi-footer .footer-inner>span {
    display:none;
  }
  .detail-hero-inner {
    grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  }
  .detail-service-label {
    padding-left:26px;
  }
  .detail-icon {
    width:52px;
    height:52px;
  }
  .detail-service-label>div {
    gap:7px;
  }
  .feature-matrix {
    gap:0 32px;
  }
  .scenario-layout {
    gap:35px;
  }
  .scenario-layout h2 {
    font-size:1.75rem;
  }
  .recommendations {
    padding:23px;
  }
  .scenario-flow ol {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .guide-layout {
    grid-template-columns:1fr;
  }
  .guide-aside {
    position:static;
  }
  .guide-aside ol {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 25px;
  }
  .contact-page-layout {
    grid-template-columns:1fr;
    gap:45px;
  }
  .phone-card {
    padding:35px;
  }
  .large-phone {
    font-size:2.5rem;
  }
}

@media(max-width:600px) {
  .js .main-nav {
    padding:13px 20px 18px;
  }
  .breadcrumbs {
    padding-top:20px;
    font-size:.75rem;
  }
  .page-hero-inner {
    grid-template-columns:1fr;
    padding:35px 0 41px;
    gap:25px;
  }
  .page-hero h1 {
    font-size:2rem;
  }
  .page-hero-visual {
    display:none;
  }
  .page-description {
    font-size:1rem;
    margin-top:20px;
  }
  .catalog-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .catalog-grid .catalog-card {
    padding:27px;
  }
  .catalog-card .service-top {
    margin-bottom:20px;
  }
  .catalog-card .service-tags {
    margin-top:18px;
  }
  .catalog-toolbar {
    gap:19px;
  }
  .filter-pills {
    gap:7px;
    width:100%;
  }
  .filter-pills button {
    padding:9px 12px;
    font-size:.875rem;
    flex-grow:1;
  }
  .search-field {
    width:100%;
  }
  .choice-layout,.company-layout {
    grid-template-columns:1fr;
    gap:32px;
  }
  .company-visual {
    height:290px;
  }
  .company-visual>div {
    left:22px;
    right:22px;
    bottom:22px;
    padding:15px 19px;
  }
  .company-visual strong {
    font-size:1.25rem;
  }
  .value-grid {
    grid-template-columns:1fr;
    gap:20px;
  }
  .value-grid h3 {
    font-size:1.25rem;
  }
  .process-grid li {
    padding:22px 19px;
  }
  .process-grid h3 {
    font-size:1.0625rem;
  }
  .process-grid p {
    font-size:.9375rem;
  }
  .scene-grid {
    gap:24px;
  }
  .scene-card h3 {
    font-size:1.1875rem;
  }
  .scene-card p {
    font-size:.9375rem;
  }
  .scene-card .inline-link {
    font-size:.875rem;
    gap:9px;
  }
  .bottom-cta {
    padding:43px 0;
  }
  .bottom-cta>.container {
    flex-direction:column;
    align-items:flex-start;
    gap:25px;
  }
  .bottom-cta h2 {
    font-size:1.625rem;
  }
  .bottom-cta p a {
    display:inline-block;
    margin-left:6px;
  }
  .multi-footer {
    padding:40px 0 25px;
  }
  .footer-columns {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 20px;
    padding-bottom:28px;
  }
  .footer-intro,.footer-contact {
    grid-column:1/-1;
  }
  .footer-intro p {
    margin-top:13px;
    max-width:100%;
  }
  .footer-columns h2 {
    font-size:.9375rem;
  }
  .footer-links a {
    line-height:2.55;
  }
  .footer-contact>a:first-of-type {
    font-size:1.5rem;
  }
  .footer-contact .footer-guide {
    margin-top:15px;
  }
  .detail-hero-inner {
    grid-template-columns:1fr;
    padding:36px 0 44px;
    gap:0;
  }
  .detail-service-label {
    display:none;
  }
  .detail-hero h1 {
    font-size:2rem;
  }
  .detail-hero .section-kicker {
    letter-spacing:.065em;
  }
  .detail-actions {
    gap:20px;
  }
  .detail-nav>.container {
    gap:0;
    justify-content:space-between;
  }
  .detail-nav a {
    font-size:.8125rem;
    padding:17px 0;
  }
  .feature-matrix {
    grid-template-columns:1fr;
  }
  .feature-entry {
    gap:20px;
    padding:25px 0;
  }
  .feature-entry h3 {
    font-size:1.1875rem;
  }
  .section-intro {
    margin-top:0;
    margin-bottom:22px;
  }
  .faq-item summary {
    font-size:1rem;
    gap:15px;
  }
  .faq-answer {
    padding-right:10px;
  }
  .scenario-tabs {
    gap:5px;
    margin-bottom:32px;
  }
  .scenario-tabs button {
    padding:13px 5px;
    font-size:.875rem;
  }
  .scenario-layout {
    grid-template-columns:1fr;
    gap:30px;
  }
  .scenario-layout h2 {
    font-size:1.625rem;
  }
  .scenario-flow {
    margin-top:30px;
  }
  .scenario-flow ol {
    gap:10px;
  }
  .scenario-flow li {
    flex-direction:column;
    gap:5px;
    padding:14px;
    font-size:.9375rem;
  }
  .guide-aside {
    padding:24px;
  }
  .guide-aside ol {
    grid-template-columns:1fr;
    gap:3px;
  }
  .faq-search {
    padding:22px;
    margin-bottom:30px;
  }
  .faq-group {
    margin-bottom:35px;
  }
  .faq-group h2 {
    font-size:1.25rem;
  }
  .phone-card {
    padding:27px 22px;
  }
  .large-phone {
    font-size:clamp(1.75rem,7.8vw,2rem);
  }
  .phone-actions {
    gap:10px;
  }
  .phone-actions .button {
    padding:10px 13px;
    gap:9px;
  }
  .consultation-card h2 {
    font-size:1.5rem;
  }
  .contact-page-layout {
    gap:38px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
}
