@charset "UTF-8";
:root {
  --navy: #102943;
  --deep: #0b2036;
  --ink: #153049;
  --muted: #566777;
  --line: #dce3e9;
  --paper: #f3f6f8;
  --blue: #2c658a;
  --accent: #49798d;
  --white: #fff;
  --wrap: 1200px;
  --font:
    -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 120px;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.035em;
  -webkit-font-smoothing: antialiased;
}
body,
button,
input,
select,
textarea {
  font-family: var(--font);
}
button,
input,
select,
textarea {
  font-size: 16px;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
img,
svg {
  display: block;
  max-width: 100%;
}
h1,
h2,
h3,
h4,
p {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  line-height: 1.6;
  overflow-wrap: anywhere;
}
p {
  overflow-wrap: anywhere;
}
button {
  letter-spacing: inherit;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #638fa9;
  outline-offset: 5px;
}
[hidden] {
  display: none !important;
}
::selection {
  color: white;
  background: var(--blue);
}
.wrap {
  width: min(var(--wrap), calc(100% - 96px));
  margin-inline: auto;
}
.section {
  padding-block: 108px;
}
.eyebrow {
  font-family: Arial, sans-serif;
  font-size: 11px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: 0.19em;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: 12px;
}
.eyebrow::before {
  content: '';
  height: 1px;
  width: 28px;
  background: currentColor;
  flex: none;
}
.section-title {
  font-size: 34px;
  line-height: 1.65;
  letter-spacing: 0.06em;
  font-weight: 600;
  margin-top: 16px;
}
.section-copy {
  color: var(--muted);
  line-height: 2.1;
  max-width: 550px;
}
.section-head {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  align-items: flex-end;
  margin-bottom: 48px;
}
.section-head > div {
  min-width: 0;
}
.section-head > .section-copy {
  max-width: 470px;
}
.text-link {
  font-size: 13px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 40px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ink);
}
.text-link .arrow {
  font-size: 21px;
  line-height: 1;
  font-weight: 400;
}
.button {
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
  padding: 15px 25px;
  background: var(--navy);
  color: var(--white);
  border: 1px solid var(--navy);
  font-size: 13px;
  font-weight: 600;
  transition:
    background 0.2s,
    color 0.2s;
}
.button:hover {
  background: #244963;
}
.button.light {
  color: var(--navy);
  background: white;
  border-color: white;
}
.button.outline {
  color: var(--navy);
  background: transparent;
  border-color: var(--line);
}
.button .arrow {
  font-size: 21px;
  font-weight: 400;
}
.pill {
  display: inline-block;
  letter-spacing: 0.03em;
  font-size: 11px;
  padding: 4px 10px;
  background: #e9eef2;
  color: var(--navy);
  line-height: 1.6;
}
.pill.pending {
  background: #f4f0e6;
  color: #695a30;
}
.muted {
  color: var(--muted);
}
.small {
  font-size: 12px;
  line-height: 1.9;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  left: 12px;
  top: -80px;
  background: var(--navy);
  color: white;
  padding: 12px;
  z-index: 100;
}
.skip-link:focus {
  top: 12px;
}
.preview-ribbon {
  height: 28px;
  background: var(--deep);
  color: #d7e0e8;
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.07em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}
.preview-ribbon span:first-child {
  font-family: Arial, sans-serif;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: #a7c4d3;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: #fffffff5;
  border-bottom: 1px solid #e4e9ee;
  backdrop-filter: blur(14px);
}
.header-inner {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  width: min(1344px, calc(100% - 72px));
  margin: auto;
}
.brand {
  display: inline-flex;
  flex-direction: column;
  flex: none;
  line-height: 1.3;
}
.brand-word {
  font-family: Arial, sans-serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.105em;
  white-space: nowrap;
}
.brand-jp {
  font-size: 10px;
  letter-spacing: 0.11em;
  margin-top: 5px;
  color: var(--muted);
}
.main-nav {
  display: flex;
  align-items: center;
  gap: 27px;
}
.main-nav > a {
  font-size: 12px;
  white-space: nowrap;
  position: relative;
  padding-block: 13px;
}
.main-nav > a:not(.nav-contact)::after {
  content: '';
  height: 1px;
  position: absolute;
  bottom: 3px;
  left: 0;
  right: 0;
  background: var(--navy);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s;
}
.main-nav > a:hover::after,
.main-nav > a[aria-current='page']::after {
  transform: scaleX(1);
}
.main-nav .nav-contact {
  color: white;
  background: var(--navy);
  padding: 15px 21px;
  margin-left: 4px;
  display: flex;
  gap: 18px;
  align-items: center;
}
.menu-toggle {
  display: none;
}
.hero {
  position: relative;
  min-height: 650px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-inner {
  position: relative;
  z-index: 2;
  padding: 85px 0 105px;
  pointer-events: none;
}
.hero-copy {
  width: 56%;
  pointer-events: auto;
}
.hero-copy .eyebrow {
  font-size: 10px;
}
.hero h1 {
  font-weight: 600;
  font-size: clamp(39px, 4.1vw, 60px);
  line-height: 1.65;
  letter-spacing: 0.045em;
  margin: 27px 0 24px;
  white-space: nowrap;
}
.hero-description {
  font-size: 14px;
  line-height: 2.15;
  color: #41566b;
  max-width: 450px;
  margin-bottom: 31px;
}
.hero-art {
  position: absolute;
  inset: 0 0 0 47%;
  background: var(--navy);
  overflow: hidden;
}
.hero-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 56% 50%;
  opacity: 0.99;
}
.hero-art::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #ffffff 0%, #ffffffec 2%, #ffffff60 14%, transparent 30%);
}
.hero-art-label {
  position: absolute;
  right: 38px;
  bottom: 42px;
  color: #cbd9e3;
  font-size: 10px;
  letter-spacing: 0.12em;
  z-index: 2;
  border-top: 1px solid #ffffff40;
  padding-top: 13px;
}
.hero-scroll {
  position: absolute;
  left: 48px;
  bottom: 25px;
  display: flex;
  align-items: center;
  gap: 15px;
  font:
    9px Arial,
    sans-serif;
  letter-spacing: 0.2em;
  color: var(--muted);
  z-index: 3;
}
.hero-scroll::before {
  content: '';
  width: 44px;
  height: 1px;
  background: var(--muted);
}
.hero-art-caption {
  position: absolute;
  bottom: 12px;
  right: 25px;
  color: #c3cdd7;
  font-size: 9px;
  letter-spacing: 0.03em;
  z-index: 2;
}
.concept-strip {
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.concept-inner {
  display: grid;
  grid-template-columns: 1fr 1.12fr;
  gap: 75px;
  padding-block: 53px;
  align-items: center;
}
.concept-title {
  font-size: 26px;
  font-weight: 500;
  line-height: 1.85;
}
.concept-inner p {
  font-size: 13px;
  line-height: 2.15;
  color: var(--muted);
}
.concept-title .eyebrow {
  margin-bottom: 12px;
  font-size: 10px;
}
.business-section {
  position: relative;
}
.service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 56px;
  border-bottom: 1px solid var(--line);
}
.service-item {
  display: grid;
  grid-template-columns: 44px 1fr 22px;
  gap: 13px;
  padding: 30px 0 32px;
  border-top: 1px solid var(--line);
  position: relative;
  align-items: start;
  transition: background 0.2s;
}
.service-item:hover {
  background: var(--paper);
}
.service-no {
  font:
    12px Arial,
    sans-serif;
  letter-spacing: 0.04em;
  color: var(--blue);
  padding-top: 9px;
}
.service-info h3 {
  font-size: 20px;
  letter-spacing: 0.04em;
  font-weight: 600;
  margin-top: 7px;
}
.service-info .service-en {
  font:
    9px Arial,
    sans-serif;
  letter-spacing: 0.15em;
  color: var(--muted);
}
.service-info p {
  color: var(--muted);
  font-size: 12px;
  line-height: 2;
  margin-top: 11px;
  max-width: 400px;
}
.service-item > .arrow {
  font-size: 23px;
  align-self: center;
  color: var(--blue);
}
.service-icon {
  width: 38px;
  height: 38px;
  color: var(--blue);
  margin-bottom: 10px;
}
.service-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.section-bottom {
  display: flex;
  justify-content: flex-end;
  margin-top: 34px;
}
.approach {
  background: var(--navy);
  color: white;
  overflow: hidden;
}
.approach-inner {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 95px;
}
.approach .eyebrow {
  color: #a9c5d6;
}
.approach .section-title {
  font-size: 31px;
}
.approach-intro > p {
  color: #bfceda;
  font-size: 13px;
  max-width: 360px;
  margin-top: 24px;
  line-height: 2.1;
}
.approach-word {
  font:
    40px/1.3 Arial,
    sans-serif;
  letter-spacing: 0.055em;
  font-weight: 500;
  color: #ffffff1c;
  margin-top: 42px;
}
.approach-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.approach-list li {
  border-top: 1px solid #ffffff2e;
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 15px;
  padding: 25px 0;
}
.approach-list li:last-child {
  border-bottom: 1px solid #ffffff2e;
}
.approach-list span {
  color: #9db9cb;
  font:
    11px Arial,
    sans-serif;
  padding-top: 8px;
}
.approach-list h3 {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
}
.approach-list p {
  font-size: 12px;
  line-height: 2;
  color: #c0ceda;
  margin-top: 10px;
}
.project-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
.project-card {
  min-width: 0;
}
.project-visual {
  height: 280px;
  position: relative;
  overflow: hidden;
  background: #ecf1f5;
  padding: 35px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.project-visual-label {
  font:
    10px Arial,
    sans-serif;
  letter-spacing: 0.14em;
  color: #527184;
}
.tourism-visual {
  background: #eaf0f4;
}
.tourism-flow {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  justify-content: center;
  position: relative;
}
.tourism-phone {
  width: 115px;
  height: 155px;
  background: white;
  border: 1px solid #c1cfd9;
  border-radius: 13px;
  padding: 13px 9px;
  box-shadow: 12px 12px 0 #dbe5eb;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.tourism-phone::before {
  content: '';
  position: absolute;
  top: -1px;
  width: 27px;
  height: 3px;
  background: #c5d2dd;
}
.tourism-phone strong {
  font-size: 21px;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: #42715b;
}
.tourism-phone small {
  font-size: 9px;
  color: var(--muted);
}
.tourism-targets {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tourism-targets span {
  border-bottom: 1px solid #b8c9d4;
  padding: 7px 7px 8px 0;
  font-size: 12px;
}
.tourism-targets b {
  font-family: Arial, sans-serif;
  letter-spacing: 0.1em;
  font-size: 9px;
  font-weight: 400;
  display: block;
  color: #688393;
}
.project-visual .illustration-note {
  font-size: 9px;
  color: #6c7f8d;
}
.wellness-visual {
  background: #eef2ee;
}
.wellness-visual .project-visual-label {
  color: #5c7564;
}
.wellness-orbits {
  display: flex;
  align-items: center;
  justify-content: center;
}
.wellness-orbits div {
  width: 138px;
  height: 138px;
  border: 1px solid #9eb4a5;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-direction: column;
  gap: 4px;
  color: #355441;
  font-size: 15px;
  font-weight: 500;
  background: #ffffff60;
}
.wellness-orbits div + div {
  margin-left: -14px;
  background: #f3f6f0b0;
}
.wellness-orbits small {
  font-size: 8px;
  letter-spacing: 0.13em;
  font-family: Arial, sans-serif;
  color: #5a7662;
}
.project-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 23px 0 13px;
}
.project-title {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
}
.project-title :is(h2, h3) {
  font-size: 20px;
  line-height: 1.7;
  letter-spacing: 0.04em;
}
.project-title > .arrow {
  font-size: 25px;
}
.project-card > p {
  color: var(--muted);
  font-size: 12px;
  line-height: 2;
  margin-top: 14px;
}
.project-card a:hover h3 {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.team-section {
  background: var(--paper);
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}
.member {
  border-top: 1px solid #b7c6d2;
  padding-top: 24px;
  min-width: 0;
}
.member-role {
  font-size: 11px;
  color: var(--blue);
  margin-bottom: 13px;
}
.member h3 {
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.14em;
}
.member-en {
  font:
    9px Arial,
    sans-serif;
  color: var(--muted);
  letter-spacing: 0.16em;
  margin-top: 6px;
}
.member-field {
  font-size: 12px;
  font-weight: 600;
  margin-top: 23px;
}
.member-bio {
  font-size: 12px;
  color: var(--muted);
  line-height: 2.1;
  margin-top: 10px;
}
.member-status {
  font-size: 10px;
  color: #7c6b42;
  margin-top: 13px;
  line-height: 1.8;
}
.contact-band {
  background: var(--navy);
  color: white;
}
.contact-band-inner {
  padding-block: 65px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.contact-band .eyebrow {
  color: #afc6d5;
}
.contact-band h2 {
  font-size: 29px;
  font-weight: 500;
  margin-top: 10px;
}
.contact-band p {
  color: #c5d2dc;
  font-size: 12px;
  margin-top: 12px;
}
.contact-band .button {
  min-width: 265px;
}
.site-footer {
  padding: 60px 0 24px;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  padding-bottom: 45px;
}
.footer-top .brand-word {
  font-size: 27px;
}
.footer-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 55px;
  font-size: 12px;
}
.footer-bottom {
  padding-top: 19px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  font:
    10px Arial,
    sans-serif;
  color: var(--muted);
  letter-spacing: 0.07em;
}
.footer-bottom a {
  font-family: var(--font);
  font-size: 10px;
}
.breadcrumbs {
  padding-top: 25px;
  font-size: 10px;
  color: var(--muted);
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.page-heading {
  padding: 63px 0 60px;
  border-bottom: 1px solid var(--line);
  position: relative;
  background: linear-gradient(110deg, #fff 40%, #f3f6f9 100%);
}
.page-heading .eyebrow {
  margin-bottom: 17px;
}
.page-heading h1 {
  font-size: 43px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.page-heading p {
  font-size: 14px;
  line-height: 2;
  color: var(--muted);
  margin-top: 24px;
  max-width: 680px;
}
.page-heading .page-no {
  position: absolute;
  right: max(48px, calc((100vw - var(--wrap)) / 2));
  top: 43px;
  font:
    112px/1 Arial,
    sans-serif;
  letter-spacing: -0.05em;
  color: #e6edf2;
  pointer-events: none;
}
.page-heading.has-no h1,
.page-heading.has-no p {
  max-width: 75%;
  position: relative;
}
.intro-split {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 90px;
  align-items: start;
}
.intro-split h2 {
  font-size: 30px;
  font-weight: 500;
  line-height: 1.9;
}
.intro-split p {
  color: var(--muted);
  font-size: 14px;
  line-height: 2.2;
}
.page-section {
  padding-block: 80px;
}
.page-section + .page-section {
  border-top: 1px solid var(--line);
}
.background-paper {
  background: var(--paper);
}
.detail-service {
  display: grid;
  grid-template-columns: 100px 1fr 1fr;
  gap: 48px;
  padding: 42px 0;
  border-top: 1px solid var(--line);
  align-items: start;
}
.detail-service:last-child {
  border-bottom: 1px solid var(--line);
}
.detail-service .service-index {
  font:
    38px Arial,
    sans-serif;
  color: #b8c8d3;
}
.detail-service h3 {
  font-size: 23px;
  font-weight: 500;
  margin-top: 9px;
}
.detail-service .eyebrow {
  font-size: 9px;
  letter-spacing: 0.1em;
}
.detail-service .eyebrow::before {
  display: none;
}
.detail-service p {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 22px;
  line-height: 2.1;
}
.detail-service .text-link {
  font-size: 12px;
}
.detail-service .service-icon {
  margin-top: 24px;
}
.problem-list {
  padding: 0;
  margin: 30px 0 0;
  list-style: none;
}
.problem-list li {
  padding: 19px 0;
  border-top: 1px solid var(--line);
  font-size: 15px;
  display: flex;
  gap: 15px;
}
.problem-list li:last-child {
  border-bottom: 1px solid var(--line);
}
.problem-list li::before {
  content: '/';
  color: var(--blue);
  padding-right: 3px;
}
.support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 40px;
}
.support-item {
  background: white;
  padding: 32px 26px;
  border-top: 2px solid var(--navy);
}
.support-item > span {
  font:
    12px Arial,
    sans-serif;
  color: var(--blue);
}
.support-item h3 {
  font-size: 18px;
  margin-top: 17px;
  font-weight: 500;
}
.support-item p {
  color: var(--muted);
  font-size: 12px;
  margin-top: 17px;
  line-height: 2.1;
}
.note {
  font-size: 12px;
  color: #695d3e;
  background: #f5f3ed;
  border-left: 2px solid #b7a878;
  padding: 19px 22px;
  line-height: 2;
  margin-top: 30px;
}
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: 40px;
}
.step {
  border-top: 1px solid #b4c5d2;
  padding-top: 22px;
}
.step > span {
  font:
    11px Arial,
    sans-serif;
  color: var(--blue);
  letter-spacing: 0.12em;
}
.step h3 {
  font-size: 17px;
  font-weight: 500;
  margin-top: 12px;
}
.step p {
  font-size: 12px;
  line-height: 2;
  color: var(--muted);
  margin-top: 13px;
}
.related-links {
  display: flex;
  gap: 30px;
  margin-top: 40px;
  flex-wrap: wrap;
}
.filter-bar {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.filter-button {
  border: 1px solid var(--line);
  padding: 11px 20px;
  background: white;
  color: var(--ink);
  font-size: 12px;
  min-height: 44px;
}
.filter-button[aria-pressed='true'] {
  background: var(--navy);
  color: white;
  border-color: var(--navy);
}
.filter-status {
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 34px;
}
.case-banner {
  background: var(--paper);
  padding: 38px 45px;
  border-left: 3px solid var(--blue);
  margin-bottom: 40px;
}
.case-banner .pill {
  margin-bottom: 14px;
}
.case-banner p {
  color: var(--muted);
  font-size: 13px;
}
.case-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 70px;
}
.case-meta {
  margin: 0;
  font-size: 12px;
  align-self: start;
  border-top: 1px solid var(--line);
}
.case-meta dt {
  color: var(--muted);
  margin-top: 20px;
}
.case-meta dd {
  margin: 6px 0 0;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.case-article h2 {
  font-size: 26px;
  font-weight: 500;
  margin-bottom: 23px;
}
.case-article p {
  color: var(--muted);
  font-size: 14px;
  line-height: 2.2;
}
.case-article h3 {
  font-size: 20px;
  margin-top: 40px;
  margin-bottom: 17px;
  font-weight: 500;
}
.case-article .project-visual {
  height: 310px;
  margin-top: 34px;
}
.case-article .support-grid {
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 0;
}
.case-article .support-item {
  padding: 24px;
  background: var(--paper);
}
.case-article .support-item p {
  font-size: 13px;
}
.company-table {
  margin: 0;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 200px 1fr;
  font-size: 14px;
}
.company-table dt {
  padding: 22px 24px 22px 0;
  font-weight: 500;
  border-bottom: 1px solid var(--line);
}
.company-table dd {
  padding: 22px 0;
  margin: 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}
.placeholder {
  font-size: 12px;
  display: inline-block;
  background: #f3f0e7;
  color: #75643c;
  padding: 2px 10px;
}
.experts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 40px;
}
.expert {
  padding: 28px 0;
  border-top: 1px solid var(--line);
}
.expert h3 {
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.expert .member-field {
  margin-top: 14px;
}
.expert .member-bio {
  max-width: 440px;
}
.contact-layout {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 85px;
}
.contact-intro h2 {
  font-size: 25px;
  font-weight: 500;
  line-height: 1.9;
}
.contact-intro > p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 23px;
  line-height: 2.1;
}
.contact-intro .mail-label {
  margin-top: 35px;
  font-size: 10px;
  color: var(--muted);
  font-family: Arial, sans-serif;
  letter-spacing: 0.12em;
}
.contact-intro .mail-address {
  font:
    21px/1.8 Arial,
    sans-serif;
  letter-spacing: 0.02em;
  display: inline-block;
  border-bottom: 1px solid var(--line);
  margin-top: 9px;
}
.contact-intro .note {
  font-size: 11px;
}
.form-field {
  margin-bottom: 24px;
}
.form-field > label {
  font-size: 13px;
  font-weight: 500;
  display: block;
  margin-bottom: 10px;
}
.required {
  font-size: 10px;
  background: var(--navy);
  color: white;
  padding: 2px 7px;
  margin-left: 10px;
}
.optional {
  font-size: 10px;
  color: var(--muted);
  margin-left: 10px;
}
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid #b7c5d0;
  background: white;
  color: var(--ink);
  border-radius: 0;
  line-height: 1.7;
}
.form-field textarea {
  min-height: 170px;
  resize: vertical;
}
.form-check {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 12px;
  margin-bottom: 28px;
}
.form-check input {
  width: 18px;
  height: 18px;
  margin: 4px 0 0;
  flex: none;
  accent-color: var(--navy);
}
.form-check a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.form-note {
  font-size: 11px;
  color: var(--muted);
  margin-top: 14px;
}
.confirmation {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 30px;
  margin-top: 30px;
}
.confirmation h3 {
  font-size: 20px;
  font-weight: 500;
}
.confirmation > p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 15px;
}
.confirmation dl {
  font-size: 12px;
  margin: 20px 0;
}
.confirmation dt {
  color: var(--muted);
  margin-top: 13px;
}
.confirmation dd {
  margin: 4px 0 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.legal {
  max-width: 820px;
  margin-inline: auto;
}
.legal h2 {
  font-size: 21px;
  font-weight: 500;
  margin-top: 38px;
  margin-bottom: 16px;
}
.legal p,
.legal li {
  font-size: 13px;
  line-height: 2.2;
  color: var(--muted);
}
.legal ul {
  padding-left: 20px;
}
.error-page {
  text-align: center;
  padding: 85px 24px 110px;
}
.error-number {
  font:
    100px Arial,
    sans-serif;
  color: #d6e0e8;
}
.error-page h1 {
  font-size: 24px;
  font-weight: 500;
  margin-top: 20px;
}
.error-page p {
  font-size: 13px;
  margin: 25px 0 35px;
  color: var(--muted);
}
@media (min-width: 1600px) {
  .hero-art {
    right: max(0px, calc((100vw - 1600px) / 2));
  }
  .hero h1 {
    font-size: 62px;
  }
}
@media (max-width: 1190px) {
  .main-nav {
    gap: 19px;
  }
  .header-inner {
    width: calc(100% - 48px);
  }
  .brand-word {
    font-size: 22px;
  }
  .main-nav > a {
    font-size: 11px;
  }
  .main-nav .nav-contact {
    padding-inline: 16px;
  }
  .wrap {
    width: calc(100% - 72px);
  }
  .hero {
    min-height: 610px;
  }
  .hero h1 {
    font-size: 45px;
  }
  .hero-description {
    max-width: 380px;
    font-size: 13px;
  }
  .approach-inner {
    gap: 60px;
  }
  .section-head {
    gap: 40px;
  }
  .section-head > .section-copy {
    max-width: 390px;
    font-size: 13px;
  }
  .section-title {
    font-size: 30px;
  }
  .detail-service {
    grid-template-columns: 70px 1fr 1.1fr;
    gap: 30px;
  }
  .contact-layout {
    gap: 50px;
  }
  .case-layout {
    grid-template-columns: 230px 1fr;
    gap: 45px;
  }
}
@media (max-width: 1000px) {
  .header-inner {
    height: 76px;
  }
  .brand-word {
    font-size: 23px;
  }
  .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 0;
    background: transparent;
    min-width: 62px;
    min-height: 48px;
    color: var(--navy);
    font:
      9px Arial,
      sans-serif;
    letter-spacing: 0.1em;
    padding: 0;
  }
  .menu-lines {
    display: flex;
    flex-direction: column;
    gap: 7px;
    width: 22px;
  }
  .menu-lines::before,
  .menu-lines::after {
    content: '';
    height: 1px;
    width: 100%;
    background: currentColor;
    transition: transform 0.2s;
  }
  .menu-toggle[aria-expanded='true'] .menu-lines::before {
    transform: translateY(4px) rotate(45deg);
  }
  .menu-toggle[aria-expanded='true'] .menu-lines::after {
    transform: translateY(-4px) rotate(-45deg);
  }
  .main-nav {
    display: none;
    position: absolute;
    top: 76px;
    left: 0;
    right: 0;
    background: white;
    padding: 22px 36px 30px;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 15px 22px #10294312;
  }
  .main-nav.is-open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .main-nav > a {
    font-size: 13px;
    padding-block: 15px;
    border-bottom: 1px solid var(--line);
  }
  .main-nav .nav-contact {
    margin: 20px 0 0;
    justify-content: space-between;
  }
  .hero-art {
    left: 45%;
  }
  .hero-copy {
    width: 65%;
  }
  .hero h1 {
    font-size: 43px;
  }
  .hero-description {
    max-width: 340px;
  }
  .hero-art::after {
    background: linear-gradient(90deg, #fff 0%, #ffffffd9 8%, #ffffff38 28%, transparent 46%);
  }
  .hero-art-label {
    right: 22px;
    font-size: 8px;
  }
  .concept-inner {
    gap: 40px;
  }
  .concept-title {
    font-size: 23px;
  }
  .service-grid {
    column-gap: 35px;
  }
  .service-item {
    grid-template-columns: 30px 1fr 15px;
    gap: 10px;
  }
  .service-info h3 {
    font-size: 18px;
  }
  .service-info p {
    font-size: 12px;
  }
  .project-grid {
    gap: 30px;
  }
  .project-visual {
    padding: 25px;
    height: 260px;
  }
  .tourism-flow {
    gap: 15px;
  }
  .tourism-targets span {
    font-size: 11px;
  }
  .wellness-orbits div {
    width: 118px;
    height: 118px;
    font-size: 13px;
  }
  .team-grid {
    gap: 24px;
  }
  .member h3 {
    font-size: 23px;
  }
  .intro-split {
    gap: 45px;
  }
  .intro-split h2 {
    font-size: 27px;
  }
  .support-grid {
    gap: 20px;
  }
  .support-item {
    padding: 25px 20px;
  }
  .steps {
    gap: 20px;
  }
  .case-layout {
    grid-template-columns: 200px 1fr;
    gap: 35px;
  }
  .contact-layout {
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
  }
}
@media (max-width: 720px) {
  html {
    scroll-padding-top: 100px;
  }
  .wrap {
    width: calc(100% - 40px);
  }
  body {
    font-size: 14px;
  }
  .preview-ribbon {
    height: 25px;
    font-size: 9px;
    gap: 10px;
  }
  .preview-ribbon span:first-child {
    font-size: 8px;
  }
  .header-inner {
    width: calc(100% - 40px);
    height: 72px;
  }
  .brand-word {
    font-size: 21px;
    letter-spacing: 0.09em;
  }
  .brand-jp {
    font-size: 9px;
    margin-top: 3px;
  }
  .main-nav {
    top: 72px;
    padding: 14px 20px 24px;
  }
  .menu-toggle {
    font-size: 8px;
    gap: 10px;
  }
  .hero {
    min-height: 0;
    display: block;
    padding-bottom: 0;
  }
  .hero-inner {
    padding: 47px 0 34px;
  }
  .hero-copy {
    width: 100%;
  }
  .hero-copy .eyebrow {
    font-size: 8px;
    gap: 9px;
  }
  .eyebrow::before {
    width: 23px;
  }
  .hero h1 {
    font-size: clamp(29px, 7.5vw, 43px);
    margin: 22px 0 19px;
    line-height: 1.65;
    letter-spacing: 0.035em;
  }
  .hero-description {
    max-width: 100%;
    font-size: 12px;
    line-height: 2.05;
    margin-bottom: 23px;
  }
  .hero-description br {
    display: none;
  }
  .hero .button {
    min-height: 49px;
    padding: 11px 20px;
    font-size: 12px;
    gap: 40px;
  }
  .hero-art {
    position: relative;
    inset: auto;
    width: calc(100% - 20px);
    margin-left: 20px;
    height: 280px;
  }
  .hero-art::after {
    background: linear-gradient(180deg, #ffffff0a, transparent 40%);
  }
  .hero-art img {
    object-position: 55% 52%;
  }
  .hero-art-label {
    bottom: 28px;
    right: 24px;
    font-size: 8px;
    padding-top: 9px;
  }
  .hero-art-caption {
    font-size: 8px;
    bottom: 6px;
    right: 10px;
  }
  .hero-scroll {
    display: none;
  }
  .concept-inner {
    display: block;
    padding: 34px 0 36px;
  }
  .concept-title {
    font-size: 23px;
  }
  .concept-title .eyebrow {
    font-size: 9px;
    margin-bottom: 10px;
  }
  .concept-inner > p {
    font-size: 12px;
    line-height: 2.1;
    margin-top: 20px;
  }
  .section {
    padding-block: 65px;
  }
  .section-head {
    display: block;
    margin-bottom: 30px;
  }
  .section-title {
    font-size: 26px;
    margin-top: 13px;
    line-height: 1.65;
    letter-spacing: 0.04em;
  }
  .eyebrow {
    font-size: 10px;
    gap: 10px;
  }
  .section-head > .section-copy {
    margin-top: 22px;
    max-width: none;
    font-size: 12px;
  }
  .service-grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
  .service-item {
    grid-template-columns: 28px 1fr 20px;
    padding: 24px 0 25px;
    gap: 12px;
  }
  .service-info h3 {
    font-size: 19px;
    margin-top: 5px;
  }
  .service-info .service-en {
    font-size: 8px;
  }
  .service-icon {
    width: 31px;
    height: 31px;
    margin-bottom: 9px;
  }
  .service-no {
    font-size: 11px;
    padding-top: 7px;
  }
  .service-info p {
    font-size: 12px;
    line-height: 2;
    margin-top: 10px;
    max-width: none;
  }
  .text-link {
    font-size: 12px;
    gap: 30px;
    min-height: 44px;
  }
  .section-bottom {
    margin-top: 23px;
  }
  .approach-inner {
    display: block;
  }
  .approach .section-title {
    font-size: 25px;
  }
  .approach-intro > p {
    max-width: none;
    font-size: 12px;
    margin-top: 20px;
  }
  .approach-word {
    display: none;
  }
  .approach-list {
    margin-top: 32px;
  }
  .approach-list li {
    grid-template-columns: 24px 1fr;
    gap: 15px;
    padding: 23px 0;
  }
  .approach-list h3 {
    font-size: 17px;
  }
  .approach-list p {
    font-size: 12px;
  }
  .project-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .project-visual {
    height: 252px;
    padding: 25px;
  }
  .project-tags {
    margin-top: 19px;
    gap: 6px;
  }
  .pill {
    font-size: 10px;
    padding: 4px 8px;
  }
  .project-title :is(h2, h3) {
    font-size: 19px;
  }
  .project-card > p {
    margin-top: 12px;
  }
  .tourism-flow {
    gap: 25px;
  }
  .tourism-targets span {
    font-size: 12px;
  }
  .wellness-orbits div {
    width: 133px;
    height: 133px;
    font-size: 14px;
  }
  .team-grid {
    grid-template-columns: 1fr;
    gap: 27px;
  }
  .member {
    padding-top: 22px;
  }
  .member-role {
    margin-bottom: 11px;
  }
  .member h3 {
    font-size: 24px;
  }
  .member-field {
    margin-top: 16px;
  }
  .member-bio {
    font-size: 12px;
    line-height: 2;
  }
  .member-status {
    font-size: 10px;
  }
  .contact-band-inner {
    display: block;
    padding-block: 42px;
  }
  .contact-band h2 {
    font-size: 24px;
    line-height: 1.7;
  }
  .contact-band p {
    font-size: 12px;
    margin-top: 14px;
  }
  .contact-band .button {
    margin-top: 26px;
    min-width: 0;
    width: 100%;
    min-height: 54px;
  }
  .site-footer {
    padding-top: 39px;
  }
  .footer-top {
    display: block;
    padding-bottom: 30px;
  }
  .footer-top .brand-word {
    font-size: 24px;
  }
  .footer-nav {
    margin-top: 32px;
    gap: 13px 20px;
    font-size: 11px;
  }
  .footer-nav a {
    min-height: 31px;
    display: flex;
    align-items: center;
  }
  .footer-bottom {
    display: block;
    font-size: 9px;
    line-height: 1.8;
  }
  .footer-bottom a {
    display: inline-block;
    margin-bottom: 14px;
    font-size: 10px;
  }
  .breadcrumbs {
    font-size: 9px;
    padding-top: 18px;
    gap: 9px;
  }
  .page-heading {
    padding: 39px 0 37px;
  }
  .page-heading h1 {
    font-size: 30px;
    letter-spacing: 0.04em;
    line-height: 1.65;
  }
  .page-heading p {
    font-size: 12px;
    margin-top: 20px;
    line-height: 2.1;
  }
  .page-heading .eyebrow {
    font-size: 9px;
    margin-bottom: 15px;
  }
  .page-heading .page-no {
    font-size: 65px;
    top: 43px;
    right: 20px;
  }
  .page-heading.has-no h1 {
    max-width: 82%;
    font-size: 26px;
  }
  .page-heading.has-no p {
    max-width: 100%;
  }
  .intro-split {
    display: block;
  }
  .intro-split h2 {
    font-size: 25px;
    line-height: 1.9;
    margin-bottom: 24px;
  }
  .intro-split p {
    font-size: 13px;
    line-height: 2.15;
  }
  .page-section {
    padding-block: 50px;
  }
  .detail-service {
    grid-template-columns: 35px 1fr;
    gap: 15px;
    padding: 29px 0;
  }
  .detail-service .service-index {
    font-size: 23px;
    padding-top: 5px;
  }
  .detail-service h3 {
    font-size: 21px;
  }
  .detail-service > div:last-child {
    grid-column: 2;
  }
  .detail-service .service-icon {
    margin-top: 15px;
  }
  .detail-service p {
    font-size: 12px;
    margin-bottom: 12px;
  }
  .support-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 28px;
  }
  .support-item {
    padding: 23px;
  }
  .support-item h3 {
    font-size: 18px;
    margin-top: 12px;
  }
  .support-item p {
    font-size: 12px;
    margin-top: 12px;
  }
  .problem-list {
    margin-top: 25px;
  }
  .problem-list li {
    font-size: 13px;
    padding: 16px 0;
    line-height: 1.9;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
    gap: 28px 22px;
    margin-top: 30px;
  }
  .step h3 {
    font-size: 15px;
    margin-top: 10px;
  }
  .step p {
    font-size: 11px;
    line-height: 2;
    margin-top: 10px;
  }
  .step > span {
    font-size: 10px;
  }
  .note {
    font-size: 11px;
    padding: 16px 18px;
    margin-top: 25px;
  }
  .filter-bar {
    gap: 8px;
  }
  .filter-button {
    padding: 10px 14px;
    font-size: 11px;
  }
  .filter-status {
    font-size: 10px;
    margin-bottom: 25px;
  }
  .case-banner {
    padding: 24px;
    margin-bottom: 29px;
  }
  .case-banner p {
    font-size: 12px;
    line-height: 2;
  }
  .case-layout {
    display: block;
  }
  .case-meta {
    font-size: 11px;
    margin-bottom: 35px;
  }
  .case-meta dt {
    margin-top: 15px;
  }
  .case-meta dd {
    padding-bottom: 15px;
  }
  .case-article h2 {
    font-size: 23px;
    margin-bottom: 19px;
  }
  .case-article p {
    font-size: 13px;
    line-height: 2.1;
  }
  .case-article h3 {
    font-size: 18px;
    margin-top: 30px;
  }
  .case-article .project-visual {
    height: 260px;
    margin-top: 25px;
  }
  .company-table {
    grid-template-columns: 100px 1fr;
    font-size: 12px;
  }
  .company-table dt {
    padding: 18px 10px 18px 0;
  }
  .company-table dd {
    padding-block: 18px;
    overflow-wrap: anywhere;
  }
  .experts-grid {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 30px;
  }
  .expert {
    padding: 24px 0;
  }
  .expert h3 {
    font-size: 21px;
  }
  .contact-layout {
    display: block;
  }
  .contact-intro {
    margin-bottom: 38px;
  }
  .contact-intro h2 {
    font-size: 24px;
  }
  .contact-intro > p {
    font-size: 12px;
    margin-top: 18px;
  }
  .contact-intro .mail-label {
    margin-top: 25px;
  }
  .contact-intro .mail-address {
    font-size: 20px;
  }
  .form-field > label {
    font-size: 12px;
  }
  .form-field input,
  .form-field select,
  .form-field textarea {
    font-size: 16px;
    padding: 11px 13px;
  }
  .form-field {
    margin-bottom: 22px;
  }
  .contact-form > .button {
    width: 100%;
    font-size: 12px;
  }
  .confirmation {
    padding: 22px;
  }
  .confirmation h3 {
    font-size: 18px;
  }
  .legal h2 {
    font-size: 19px;
    margin-top: 30px;
  }
  .legal p,
  .legal li {
    font-size: 12px;
  }
  .related-links {
    display: block;
    margin-top: 25px;
  }
  .related-links a {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
  }
  .error-number {
    font-size: 80px;
  }
  .error-page h1 {
    font-size: 21px;
  }
  .button {
    min-height: 52px;
  }
  .project-visual .illustration-note {
    font-size: 8px;
  }
}
@media (max-width: 359px) {
  .wrap {
    width: calc(100% - 32px);
  }
  .header-inner {
    width: calc(100% - 32px);
  }
  .brand-word {
    font-size: 19px;
  }
  .hero h1 {
    font-size: 28px;
    letter-spacing: 0.015em;
  }
  .tourism-flow {
    gap: 15px;
  }
  .tourism-phone {
    width: 102px;
  }
  .tourism-targets span {
    font-size: 10px;
  }
  .wellness-orbits div {
    width: 116px;
    height: 116px;
    font-size: 12px;
  }
  .contact-band h2 {
    font-size: 22px;
  }
  .page-heading h1 {
    font-size: 27px;
  }
  .service-info h3 {
    font-size: 18px;
  }
}
@media (max-width: 720px) {
  .hero-description {
    font-size: 13px;
  }
  .hero .button {
    font-size: 13px;
  }
  .concept-inner > p,
  .section-head > .section-copy,
  .service-info p,
  .approach-intro > p,
  .approach-list p,
  .project-card > p,
  .member-bio,
  .support-item p,
  .detail-service p,
  .contact-intro > p {
    font-size: 13px;
  }
  .contact-band p {
    font-size: 13px;
  }
  .step p {
    font-size: 12px;
  }
  .contact-form > .button {
    font-size: 13px;
  }
  .company-table {
    font-size: 13px;
  }
  .filter-button {
    font-size: 12px;
  }
  .form-field > label {
    font-size: 13px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}
@media print {
  .preview-ribbon,
  .site-header,
  .site-footer,
  .contact-band,
  .menu-toggle,
  .filter-bar {
    display: none !important;
  }
  .hero {
    min-height: 450px;
  }
  .wrap {
    width: 95%;
  }
  .section,
  .page-section {
    padding: 30px 0;
  }
  .hero h1 {
    font-size: 35px;
  }
  .hero-inner {
    padding-block: 40px;
  }
  .hero-art {
    print-color-adjust: exact;
  }
  .service-grid,
  .team-grid {
    break-inside: avoid;
  }
  body {
    font-size: 11px;
    color: #000;
  }
  .section-title {
    font-size: 23px;
  }
  a {
    color: inherit;
  }
}

/* Official user-supplied logo. Keep the original colors and proportions. */
.brand-logo {
  width: 160px;
  height: auto;
  display: block;
  max-width: 100%;
  object-fit: contain;
  flex: none;
}
.site-header .brand-jp {
  display: none;
}
.site-footer .brand-logo {
  width: 200px;
}
.site-footer .brand-jp {
  margin-top: 10px;
  font-size: 11px;
}
@media (max-width: 1000px) {
  .site-header .brand-logo {
    width: 145px;
  }
}
@media (max-width: 720px) {
  .site-header .brand-logo {
    width: 130px;
  }
  .site-footer .brand-logo {
    width: 180px;
  }
  .site-footer .brand-jp {
    font-size: 10px;
    margin-top: 8px;
  }
}

/* Three business areas; individual support pages remain available below them. */
.business-area-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.business-area-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 30px 26px 27px;
  border: 1px solid var(--line);
  border-top: 2px solid var(--navy);
  background: white;
  transition:
    background 0.2s,
    border-color 0.2s;
}
.business-area-card:hover {
  background: var(--paper);
  border-color: #93adbf;
}
.area-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}
.area-card-top .service-no {
  padding: 0;
}
.area-card-top .service-icon {
  margin: 0;
  width: 34px;
  height: 34px;
}
.area-card-en {
  font:
    9px/1.7 Arial,
    sans-serif;
  letter-spacing: 0.12em;
  color: var(--muted);
}
.business-area-card :is(h2, h3) {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.7;
  margin-top: 10px;
  letter-spacing: 0.02em;
}
.area-card-summary {
  font-size: 13px;
  color: var(--muted);
  line-height: 2;
  margin-top: 19px;
}
.area-topics {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 23px 0 28px;
}
.area-topics span {
  font-size: 11px;
  line-height: 1.7;
  background: #edf2f5;
  color: #405a70;
  padding: 4px 8px;
}
.area-card-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  font-weight: 600;
}
.area-card-link .arrow {
  font-size: 22px;
  font-weight: 400;
}
.area-services {
  margin-top: 38px;
}
@media (max-width: 1100px) and (min-width: 721px) {
  .business-area-grid {
    gap: 16px;
  }
  .business-area-card {
    padding: 25px 20px;
  }
  .business-area-card :is(h2, h3) {
    font-size: 19px;
  }
}
@media (max-width: 720px) {
  .business-area-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .business-area-card {
    padding: 25px 24px;
  }
  .area-card-top {
    margin-bottom: 20px;
  }
  .business-area-card :is(h2, h3) {
    font-size: 23px;
  }
  .area-card-summary {
    font-size: 13px;
    margin-top: 14px;
  }
  .area-topics {
    margin-block: 19px 23px;
  }
  .area-services {
    margin-top: 28px;
  }
}

.keep-phrase {
  display: inline-block;
}

.contact-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 22px;
}
.contact-actions .button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
#contact-summary dd {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
#contact-status {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 20px;
}
#contact-error {
  color: #922e2e;
  margin-top: 16px;
}
#contact-result {
  margin-top: 16px;
}
#contact-turnstile {
  margin-top: 18px;
  max-width: 100%;
}
@media (max-width: 720px) {
  .contact-actions {
    flex-direction: column;
  }
  .contact-actions .button {
    width: 100%;
  }
}

/* Representative message and business-page initiatives */
.representative-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 96px;
  align-items: start;
}
.representative-label {
  margin-top: 24px;
  color: var(--muted);
  font-size: 12px;
}
.representative-copy > p {
  font-size: 14px;
  color: var(--muted);
  line-height: 2.2;
}
.representative-copy > p + p {
  margin-top: 22px;
}
.representative-copy .representative-signature {
  color: var(--ink);
  font-size: 12px;
  text-align: right;
  margin-top: 30px;
}
.representative-signature strong {
  display: block;
  font-size: 23px;
  font-weight: 500;
  letter-spacing: 0.12em;
  margin-top: 6px;
}
.representative-copy > .text-link {
  margin-top: 26px;
}
.initiative-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.initiative-copy h3 {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.8;
}
.initiative-copy p {
  font-size: 13px;
  color: var(--muted);
  line-height: 2.1;
  margin-top: 20px;
}
.initiative-copy .text-link {
  margin-top: 24px;
}
@media (max-width: 1000px) {
  .representative-layout {
    gap: 48px;
  }
  .initiative-layout {
    gap: 35px;
  }
  .initiative-copy h3 {
    font-size: 21px;
  }
}
@media (max-width: 720px) {
  .representative-layout,
  .initiative-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .representative-copy > p {
    font-size: 13px;
    line-height: 2.15;
  }
  .representative-label {
    margin-top: 18px;
  }
  .representative-signature strong {
    font-size: 22px;
  }
  .initiative-copy h3 {
    font-size: 21px;
  }
  .initiative-copy p {
    font-size: 12px;
    margin-top: 16px;
  }
  .initiative-copy .text-link {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    gap: 15px;
  }
  .representative-copy > .text-link {
    display: flex;
    justify-content: space-between;
  }
}

/* Readable typography: larger body copy, restrained headings, screen only. */
@media screen {
  :root {
    --muted: #485d6e;
    --reading-body: 1rem;
    --reading-long: 1.0625rem;
    --reading-ui: 0.875rem;
    --reading-small: 0.8125rem;
  }
  body {
    font-size: var(--reading-body);
  }
  .hero-description,
  .concept-inner p,
  .section-head > .section-copy,
  .service-info p,
  .approach-intro > p,
  .approach-list p,
  .project-card > p,
  .area-card-summary,
  .page-heading p,
  .detail-service p,
  .support-item p,
  .step p,
  .case-banner p,
  .case-article .support-item p,
  .contact-intro > p,
  .contact-band p,
  .error-page p,
  .initiative-copy p,
  .confirmation > p,
  .confirmation dl,
  .form-check {
    font-size: var(--reading-body);
    line-height: 1.95;
  }
  .intro-split p,
  .case-article p,
  .member-bio,
  .representative-copy > p,
  .legal p,
  .legal li {
    font-size: var(--reading-long);
    line-height: 2;
  }
  .company-table,
  .problem-list li {
    font-size: var(--reading-body);
  }
  .text-link,
  .detail-service .text-link,
  .initiative-copy .text-link,
  .button,
  .hero .button,
  .contact-form > .button,
  .contact-actions .button,
  .area-card-link,
  .form-field > label,
  .filter-button {
    font-size: var(--reading-ui);
  }
  .main-nav {
    gap: 22px;
  }
  .main-nav > a {
    font-size: var(--reading-ui);
  }
  .member-role,
  .member-field,
  .representative-label,
  .representative-copy .representative-signature,
  .pill,
  .area-topics span,
  .small,
  .note,
  .contact-intro .note,
  .form-note,
  .form-check .small,
  .case-meta,
  .placeholder,
  .filter-status,
  .footer-nav,
  .member-status {
    font-size: var(--reading-small);
  }
  .note,
  .form-note,
  .member-status {
    line-height: 1.9;
  }
  .breadcrumbs,
  .footer-bottom,
  .footer-bottom a,
  .site-footer .brand-jp,
  .contact-intro .mail-label,
  .required,
  .optional {
    font-size: 0.75rem;
  }
  #contact-status {
    font-size: var(--reading-ui);
  }
  .business-area-card,
  .service-info,
  .support-item,
  .step,
  .initiative-copy,
  .representative-copy {
    min-width: 0;
  }
  .area-card-link,
  .text-link,
  .button {
    overflow-wrap: anywhere;
  }
  .member-field {
    line-height: 1.8;
  }
  .expert .member-bio {
    max-width: none;
  }
}
@media screen and (min-width: 1001px) and (max-width: 1190px) {
  .main-nav {
    gap: 16px;
  }
  .main-nav > a {
    font-size: 0.8125rem;
  }
  .main-nav .nav-contact {
    padding-inline: 14px;
    gap: 12px;
  }
}
@media screen and (min-width: 721px) {
  .contact-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  }
}
@media screen and (max-width: 720px) {
  :root {
    --reading-body: 0.875rem;
    --reading-long: 0.9375rem;
    --reading-ui: 0.875rem;
    --reading-small: 0.75rem;
  }
  .hero-description,
  .concept-inner > p,
  .section-head > .section-copy {
    line-height: 2;
  }
  .main-nav > a {
    font-size: var(--reading-ui);
  }
  .business-area-card {
    padding: 26px 24px;
  }
  .business-section .section-title {
    font-size: clamp(22px, 5.9vw, 26px);
  }
  .member-bio,
  .representative-copy > p {
    line-height: 2;
  }
  .step h3 {
    font-size: 1rem;
    line-height: 1.8;
  }
  .footer-nav {
    font-size: 0.8125rem;
  }
  .breadcrumbs,
  .footer-bottom,
  .footer-bottom a,
  .site-footer .brand-jp {
    font-size: 0.6875rem;
  }
  .representative-copy .representative-signature {
    font-size: 0.8125rem;
  }
  .contact-intro .mail-address {
    overflow-wrap: anywhere;
  }
}

/* Service catalog: isolated draft, activated by --services-draft. */
.catalog-section {
  padding-top: 60px;
}
.catalog-intro {
  display: flex;
  justify-content: space-between;
  gap: 48px;
  align-items: end;
  margin-bottom: 48px;
}
.catalog-intro h2,
.catalog-consult h2 {
  font-size: 30px;
  line-height: 1.7;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.catalog-intro > p {
  font-size: 16px;
  line-height: 2;
  color: var(--muted);
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}
.catalog-card {
  --catalog-color: #23775e;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: white;
  border: 1px solid var(--line);
  transition:
    transform 0.2s,
    box-shadow 0.2s;
  color: var(--ink);
}
.catalog-blue {
  --catalog-color: #2365a0;
}
.catalog-violet {
  --catalog-color: #087f9e;
}
.catalog-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 35px #10294310;
}
.catalog-card:focus-visible {
  outline: 3px solid var(--catalog-color);
  outline-offset: 5px;
}
.catalog-art {
  height: 200px;
  position: relative;
  overflow: hidden;
  background: color-mix(in srgb, var(--catalog-color) 8%, white);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--catalog-color);
}
.catalog-orbit {
  position: absolute;
  width: 168px;
  height: 168px;
  border: 1px solid currentColor;
  opacity: 0.2;
  border-radius: 50%;
  transform: translate(40px, -10px);
}
.catalog-orbit:after {
  content: '';
  position: absolute;
  inset: 25px;
  border: 1px solid currentColor;
  border-radius: 50%;
}
.catalog-art:after {
  content: '';
  height: 8px;
  width: 8px;
  border-radius: 50%;
  background: currentColor;
  position: absolute;
  left: 22%;
  top: 28%;
  box-shadow: 150px 90px 0 currentColor;
}
.catalog-symbol {
  position: relative;
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
}
.catalog-symbol .service-icon {
  width: 72px;
  height: 72px;
  margin: 0;
}
.catalog-art-label {
  position: absolute;
  left: 24px;
  bottom: 18px;
  font:
    10px Arial,
    sans-serif;
  letter-spacing: 0.18em;
}
/* Catalog layout is defined with the final catalog rules below. */
.catalog-category {
  color: var(--catalog-color);
  font-size: 12px;
  letter-spacing: 0.03em;
  margin-bottom: 16px;
}
.catalog-card h2 {
  font-size: 25px;
  line-height: 1.6;
  font-weight: 600;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}
.catalog-lead {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.85;
  margin-top: 20px;
}
.catalog-summary {
  font-size: 16px;
  line-height: 1.95;
  color: var(--muted);
  margin-top: 13px;
  margin-bottom: 28px;
}
.catalog-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: 18px;
  margin-top: auto;
  font-size: 14px;
  font-weight: 600;
}
.catalog-more .arrow {
  font-size: 24px;
  color: var(--catalog-color);
}
.catalog-consult {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
}
.catalog-consult p {
  font-size: 16px;
  color: var(--muted);
  line-height: 2;
  margin-top: 20px;
}
.catalog-consult .button {
  flex-shrink: 0;
}
.catalog-detail-draft {
  max-width: 850px;
}
.catalog-detail-draft h2 {
  font-size: 30px;
  line-height: 1.7;
  margin-top: 26px;
}
.catalog-detail-draft > p {
  font-size: 17px;
  line-height: 2;
  margin-top: 25px;
}
.catalog-outline {
  background: var(--paper);
  padding: 32px;
  margin-top: 35px;
}
.catalog-outline h3 {
  font-size: 20px;
}
.catalog-outline ol {
  padding-left: 1.5em;
  margin-top: 18px;
  font-size: 16px;
  line-height: 2.3;
}
.catalog-draft-note {
  color: var(--muted);
}
.catalog-detail-draft > .text-link {
  margin-top: 28px;
}
@media (max-width: 1100px) and (min-width: 721px) {
  .catalog-grid {
    gap: 18px;
  }
  .catalog-card-body {
    padding: 24px 20px;
  }
  .catalog-card h2 {
    font-size: 21px;
  }
  .catalog-summary {
    font-size: 15px;
  }
}
@media (max-width: 720px) {
  .catalog-section {
    padding-top: 32px;
  }
  .catalog-intro {
    display: block;
    margin-bottom: 30px;
  }
  .catalog-intro h2,
  .catalog-consult h2 {
    font-size: 25px;
  }
  .catalog-intro > p {
    font-size: 15px;
    margin-top: 22px;
  }
  .catalog-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .catalog-art {
    height: 180px;
  }
  .catalog-card-body {
    padding: 25px;
  }
  .catalog-card h2 {
    font-size: 24px;
  }
  .catalog-lead,
  .catalog-summary {
    font-size: 15px;
  }
  .catalog-category {
    font-size: 12px;
  }
  .catalog-consult {
    display: block;
  }
  .catalog-consult p {
    font-size: 15px;
  }
  .catalog-consult .button {
    margin-top: 28px;
  }
  .catalog-detail-draft h2 {
    font-size: 25px;
  }
  .catalog-detail-draft > p {
    font-size: 15px;
  }
  .catalog-outline {
    padding: 24px;
  }
  .catalog-outline ol {
    font-size: 15px;
  }
}
.catalog-symbol .service-icon {
  color: inherit;
}

/* Kuchikomi AIO: service detail, based on the customer proposal. */
.aio-page {
  --aio-blue: #0c3477;
  --aio-cyan: #009db7;
  --aio-pale: #eff9fc;
  --aio-line: #dceaf1;
  color: var(--ink);
}
.aio-page h2 {
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.aio-page h3 {
  font-size: 20px;
  line-height: 1.65;
}
.aio-page h4 {
  font-size: 18px;
  line-height: 1.7;
}
.aio-page p {
  line-height: 1.95;
}
.aio-page [id] {
  scroll-margin-top: 125px;
}
.aio-page .eyebrow {
  color: var(--aio-cyan);
}
.aio-tint {
  background: var(--aio-pale);
}
.aio-hero {
  padding: 55px 0 65px;
  background: linear-gradient(120deg, #fff 45%, #f1fafc);
}
.aio-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 55px;
}
.aio-logo {
  width: 240px;
  height: auto;
  display: block;
  mix-blend-mode: multiply;
}
.aio-kicker {
  display: inline-block;
  background: #e4f5fa;
  color: var(--aio-cyan);
  border-radius: 30px;
  font-size: 13px;
  padding: 4px 23px;
  letter-spacing: 0.06em;
  margin-top: 28px;
}
.aio-hero h1 {
  font-size: clamp(32px, 3.4vw, 48px);
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--aio-blue);
  margin-top: 22px;
}
.aio-hero-description {
  font-size: 18px;
  color: var(--muted);
  margin-top: 22px;
}
.aio-hero-price {
  display: flex;
  gap: 11px;
  align-items: baseline;
  margin-top: 25px;
  color: var(--aio-blue);
}
.aio-hero-price strong {
  font-size: 44px;
  line-height: 1.3;
  font-family: Arial, sans-serif;
  letter-spacing: 0.01em;
}
.aio-hero-price span {
  font-size: 15px;
}
.aio-tax {
  font-size: 12px;
  color: var(--muted);
  margin-top: 7px;
}
.aio-hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 25px;
  flex-wrap: wrap;
}
.aio-primary {
  background: var(--aio-blue);
  color: #fff;
  border-color: var(--aio-blue);
  padding-inline: 22px;
  gap: 26px;
}
.aio-primary:hover {
  background: #174986;
  color: white;
}
.aio-text-link {
  font-size: 14px;
  display: flex;
  gap: 18px;
  align-items: center;
}
.aio-text-link:hover {
  text-decoration: underline;
}
.aio-hero-visual {
  background: #eaf7fb;
  border-radius: 45% 45% 24px 24px;
  overflow: hidden;
  padding: 25px 0 15px;
}
.aio-hero-visual img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.aio-hero-visual p {
  text-align: center;
  color: var(--aio-blue);
  font-size: 15px;
  padding: 16px 16px 6px;
  font-weight: 500;
}
.aio-local-nav {
  border-block: 1px solid var(--aio-line);
  background: #fff;
}
.aio-local-nav .wrap {
  display: flex;
  justify-content: center;
  gap: 45px;
  overflow-x: auto;
  white-space: nowrap;
}
.aio-local-nav a {
  font-size: 14px;
  padding: 20px 0;
  display: block;
  border-bottom: 2px solid transparent;
}
.aio-local-nav a:hover {
  color: var(--aio-cyan);
  border-bottom-color: var(--aio-cyan);
}
.aio-section-heading {
  margin-bottom: 42px;
}
.aio-section-heading > p:last-child:not(.eyebrow) {
  font-size: 17px;
  color: var(--muted);
  margin-top: 18px;
}
.aio-three-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.aio-problem {
  border-top: 2px solid var(--aio-line);
  padding: 25px 0;
}
.aio-problem > span {
  font:
    14px Arial,
    sans-serif;
  color: var(--aio-cyan);
  letter-spacing: 0.1em;
}
.aio-problem h3 {
  margin-top: 18px;
}
.aio-problem p {
  font-size: 16px;
  color: var(--muted);
  margin-top: 18px;
}
.aio-answer {
  margin-top: 25px;
  padding: 22px 25px;
  border-left: 3px solid var(--aio-cyan);
  background: var(--aio-pale);
  font-size: 19px;
  color: var(--aio-blue);
}
.aio-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
  list-style: none;
  padding: 0;
  counter-reset: none;
}
.aio-flow > li {
  position: relative;
  background: #fff;
  padding: 28px 24px;
  border: 1px solid var(--aio-line);
  border-radius: 3px;
}
.aio-step-number {
  display: inline-block;
  font:
    30px Arial,
    sans-serif;
  color: var(--aio-cyan);
}
.aio-step-who {
  font-size: 12px;
  color: var(--muted);
  margin-top: 16px;
}
.aio-flow h3 {
  margin: 8px 0 15px;
  font-size: 20px;
  color: var(--aio-blue);
}
.aio-flow li > p:last-child {
  font-size: 16px;
  color: var(--muted);
}
.aio-support-note {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 28px;
  border-top: 1px solid var(--aio-line);
  padding-top: 23px;
}
.aio-support-note strong {
  font-size: 16px;
  font-weight: 600;
}
.aio-support-note p {
  font-size: 15px;
  color: var(--muted);
}
.aio-feature-row {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 90px;
  align-items: center;
}
.aio-feature-row + .aio-feature-row {
  margin-top: 100px;
  padding-top: 85px;
  border-top: 1px solid var(--aio-line);
}
.aio-feature-reverse .aio-feature-copy {
  order: 2;
}
.aio-feature-reverse .aio-screen {
  order: 1;
}
.aio-feature-intro {
  font-size: 17px;
  color: var(--muted);
  margin-top: 20px;
}
.aio-feature-list {
  list-style: none;
  padding: 0;
  margin: 27px 0 0;
}
.aio-feature-list li {
  padding: 20px 0 20px 27px;
  position: relative;
  border-bottom: 1px solid var(--aio-line);
}
.aio-feature-list li:last-child {
  border-bottom: 0;
}
.aio-feature-list li:before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 23px;
  color: var(--aio-cyan);
  font-size: 15px;
  font-weight: 600;
}
.aio-feature-list h3 {
  font-size: 19px;
  color: var(--aio-blue);
  font-weight: 600;
}
.aio-feature-list p {
  font-size: 16px;
  color: var(--muted);
  margin-top: 8px;
}
.aio-screen {
  margin: 0;
  padding: 24px;
  background: #f7fbfd;
  border: 1px solid var(--aio-line);
  border-radius: 16px;
}
.aio-screen img {
  width: 100%;
  height: auto;
  display: block;
}
.aio-screen figcaption {
  font-size: 12px;
  line-height: 1.9;
  text-align: center;
  color: var(--muted);
  margin-top: 13px;
}
.aio-phone-screen {
  max-width: 445px;
  justify-self: center;
}
.aio-data-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 65px;
  align-items: center;
}
.aio-data-grid > .aio-feature-list {
  margin-top: 0;
}
.aio-ai-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 80px;
  align-items: center;
}
.aio-voice-panel {
  background: var(--aio-pale);
  border-radius: 16px;
  padding: 32px;
  color: var(--aio-blue);
}
.aio-question {
  font-size: 20px;
  font-weight: 600;
  background: white;
  border-radius: 12px;
  padding: 18px 24px;
  border: 1px solid var(--aio-line);
}
.aio-example-label {
  font-size: 12px;
  color: var(--muted);
  margin-top: 24px;
}
.aio-voice-panel ul {
  list-style: none;
  padding: 0;
  margin-top: 12px;
}
.aio-voice-panel li {
  font-size: 16px;
  line-height: 2.2;
}
.aio-voice-end {
  font-size: 17px;
  font-weight: 600;
  border-top: 1px solid var(--aio-line);
  padding-top: 20px;
  margin-top: 20px;
}
.aio-fine-print {
  font-size: 12px;
  color: var(--muted);
  margin-top: 35px;
}
.aio-price-card {
  display: grid;
  grid-template-columns: 0.9fr 1.2fr;
  max-width: 1000px;
  margin: 0 auto;
  background: white;
  border: 1px solid var(--aio-line);
  border-top: 3px solid var(--aio-blue);
  border-radius: 4px;
}
.aio-price-main {
  padding: 44px;
  color: var(--aio-blue);
}
.aio-plan-label {
  display: inline-block;
  padding: 4px 16px;
  background: var(--aio-pale);
  font-size: 13px;
  border-radius: 20px;
}
.aio-price-main h3 {
  margin-top: 23px;
  font-size: 17px;
  font-weight: 500;
}
.aio-price-value {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 13px;
}
.aio-price-value strong {
  font:
    600 64px/1.2 Arial,
    sans-serif;
  letter-spacing: -0.03em;
}
.aio-price-value span {
  font-size: 23px;
}
.aio-price-main > p:not(.aio-price-value) {
  font-size: 14px;
  margin-top: 8px;
}
.aio-plan-note {
  display: block;
  border-top: 1px solid var(--aio-line);
  padding-top: 22px;
  margin-top: 26px;
  font-size: 14px;
}
.aio-price-included {
  padding: 42px;
  border-left: 1px solid var(--aio-line);
}
.aio-price-included > h3 {
  font-size: 19px;
}
.aio-price-included .aio-feature-list {
  margin-top: 10px;
}
.aio-price-included .aio-feature-list li {
  padding-block: 15px;
}
.aio-price-included .aio-feature-list li:before {
  top: 18px;
}
.aio-price-included .aio-feature-list p {
  font-size: 15px;
}
.aio-price-term {
  grid-column: 1/-1;
  border-top: 1px solid var(--aio-line);
  padding: 17px 28px;
  text-align: center;
  color: var(--aio-blue);
  font-size: 14px;
}
.aio-onboarding {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 38px;
  list-style: none;
  padding: 0;
}
.aio-onboarding li {
  border-top: 1px solid var(--aio-line);
  padding-top: 25px;
}
.aio-onboarding span {
  font:
    24px Arial,
    sans-serif;
  color: var(--aio-cyan);
}
.aio-onboarding h3 {
  margin-top: 18px;
  color: var(--aio-blue);
}
.aio-onboarding p {
  font-size: 16px;
  color: var(--muted);
  margin-top: 12px;
}
.aio-faq-wrap {
  max-width: 1000px;
}
.aio-faq details {
  border-top: 1px solid var(--aio-line);
  background: white;
}
.aio-faq details:last-child {
  border-bottom: 1px solid var(--aio-line);
}
.aio-faq summary {
  position: relative;
  cursor: pointer;
  padding: 25px 54px 25px 26px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.8;
  list-style: none;
}
.aio-faq summary::-webkit-details-marker {
  display: none;
}
.aio-faq summary:after {
  content: '＋';
  position: absolute;
  right: 24px;
  top: 25px;
  color: var(--aio-cyan);
}
.aio-faq details[open] summary:after {
  content: '−';
}
.aio-faq details > p {
  padding: 0 54px 27px 26px;
  font-size: 16px;
  color: var(--muted);
}
.aio-page a:focus-visible,
.aio-faq summary:focus-visible {
  outline: 3px solid var(--aio-cyan);
  outline-offset: 4px;
}
.aio-cta {
  background: var(--aio-blue);
  color: white;
  padding: 75px 0;
  text-align: center;
}
.aio-cta .eyebrow {
  justify-content: center;
  color: #97e0ed;
}
.aio-cta .eyebrow:before {
  display: none;
}
.aio-cta > div > p:not(.eyebrow) {
  font-size: 17px;
  margin-top: 22px;
}
.aio-cta .button {
  margin-top: 30px;
}
.aio-back {
  padding-block: 35px;
}
.aio-back .text-link {
  font-size: 14px;
}
@media (max-width: 1100px) and (min-width: 721px) {
  .aio-hero-grid {
    gap: 30px;
  }
  .aio-flow {
    gap: 12px;
  }
  .aio-flow > li {
    padding: 22px 16px;
  }
  .aio-flow h3 {
    font-size: 18px;
  }
  .aio-local-nav .wrap {
    gap: 30px;
  }
  .aio-feature-row,
  .aio-data-grid,
  .aio-ai-grid {
    gap: 42px;
  }
  .aio-price-main,
  .aio-price-included {
    padding: 32px;
  }
}
@media (max-width: 720px) {
  .aio-page h2 {
    font-size: 26px;
    line-height: 1.65;
  }
  .aio-page h3 {
    font-size: 19px;
  }
  .aio-page [id] {
    scroll-margin-top: 92px;
  }
  .aio-hero {
    padding: 30px 0 38px;
  }
  .aio-hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .aio-logo {
    width: 200px;
  }
  .aio-kicker {
    margin-top: 20px;
    font-size: 12px;
  }
  .aio-hero h1 {
    font-size: 29px;
    line-height: 1.7;
    margin-top: 18px;
    letter-spacing: 0;
  }
  .aio-hero-description {
    font-size: 16px;
    margin-top: 17px;
  }
  .aio-hero-price {
    margin-top: 20px;
    gap: 8px;
  }
  .aio-hero-price strong {
    font-size: 42px;
  }
  .aio-hero-price span {
    font-size: 13px;
  }
  .aio-tax {
    font-size: 12px;
    line-height: 1.8;
  }
  .aio-hero-actions {
    gap: 20px;
  }
  .aio-hero-actions .button {
    width: 100%;
    justify-content: space-between;
    font-size: 15px;
  }
  .aio-text-link {
    font-size: 14px;
  }
  .aio-hero-visual {
    border-radius: 30px;
    padding: 15px 0 10px;
  }
  .aio-hero-visual p {
    font-size: 14px;
    padding-top: 10px;
  }
  .aio-local-nav .wrap {
    gap: 25px;
    justify-content: flex-start;
  }
  .aio-local-nav a {
    font-size: 13px;
    padding: 17px 0;
  }
  .aio-section-heading {
    margin-bottom: 28px;
  }
  .aio-section-heading > p:last-child:not(.eyebrow) {
    font-size: 15px;
    margin-top: 16px;
  }
  .aio-three-grid,
  .aio-onboarding {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .aio-problem {
    padding: 21px 0;
  }
  .aio-problem h3 {
    margin-top: 12px;
  }
  .aio-problem h3 br {
    display: none;
  }
  .aio-problem p,
  .aio-onboarding p {
    font-size: 15px;
    margin-top: 10px;
  }
  .aio-answer {
    font-size: 17px;
    padding: 20px;
    margin-top: 15px;
  }
  .aio-answer strong {
    display: block;
  }
  .aio-flow {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .aio-flow > li {
    padding: 20px 15px;
  }
  .aio-step-number {
    font-size: 26px;
  }
  .aio-step-who {
    font-size: 11px;
  }
  .aio-flow h3 {
    font-size: 17px;
    line-height: 1.7;
  }
  .aio-flow li > p:last-child {
    font-size: 14px;
  }
  .aio-support-note {
    display: block;
    padding-top: 20px;
    margin-top: 22px;
  }
  .aio-support-note strong {
    font-size: 15px;
    line-height: 1.9;
    display: block;
  }
  .aio-support-note p {
    font-size: 14px;
    margin-top: 9px;
  }
  .aio-feature-row,
  .aio-data-grid,
  .aio-ai-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .aio-feature-row + .aio-feature-row {
    margin-top: 50px;
    padding-top: 45px;
  }
  .aio-feature-reverse .aio-feature-copy,
  .aio-feature-reverse .aio-screen {
    order: initial;
  }
  .aio-feature-intro {
    font-size: 15px;
    margin-top: 17px;
  }
  .aio-feature-list {
    margin-top: 18px;
  }
  .aio-feature-list li {
    padding-block: 17px;
  }
  .aio-feature-list li:before {
    top: 20px;
  }
  .aio-feature-list h3,
  .aio-feature-list h4 {
    font-size: 17px;
  }
  .aio-feature-list p {
    font-size: 15px;
  }
  .aio-screen {
    padding: 15px;
    border-radius: 12px;
  }
  .aio-screen figcaption {
    font-size: 11px;
    line-height: 1.85;
  }
  .aio-voice-panel {
    padding: 24px;
  }
  .aio-question {
    font-size: 18px;
    padding: 16px;
  }
  .aio-voice-panel li {
    font-size: 15px;
  }
  .aio-voice-end {
    font-size: 16px;
  }
  .aio-fine-print {
    font-size: 12px;
    line-height: 1.9;
    margin-top: 25px;
  }
  .aio-price-card {
    grid-template-columns: 1fr;
  }
  .aio-price-main,
  .aio-price-included {
    padding: 28px;
  }
  .aio-price-included {
    border-left: 0;
    border-top: 1px solid var(--aio-line);
  }
  .aio-price-value strong {
    font-size: 60px;
  }
  .aio-price-term {
    font-size: 13px;
    padding: 18px 22px;
  }
  .aio-onboarding {
    gap: 27px;
  }
  .aio-onboarding li {
    padding-top: 20px;
  }
  .aio-onboarding h3 {
    margin-top: 14px;
  }
  .aio-faq summary {
    font-size: 15px;
    padding: 22px 42px 22px 18px;
  }
  .aio-faq summary:after {
    right: 16px;
    top: 22px;
  }
  .aio-faq details > p {
    font-size: 15px;
    padding: 0 20px 22px 18px;
  }
  .aio-cta {
    padding: 50px 0;
  }
  .aio-cta > div > p:not(.eyebrow) {
    font-size: 15px;
  }
  .aio-cta .button {
    font-size: 14px;
    width: 100%;
    justify-content: space-between;
    padding-inline: 20px;
  }
  .aio-back {
    padding-block: 28px;
  }
}

/* Canly agency service detail: official visual assets, scoped styling. */
.meo-page {
  --aio-cyan: #2785da;
  --aio-blue: #123a70;
  --aio-pale: #eef7ff;
}
.meo-hero {
  background:
    radial-gradient(ellipse at 90% 80%, #d8f6f9, transparent 55%),
    linear-gradient(130deg, #fff 40%, #edf6ff);
  padding: 55px 0 65px;
}
.meo-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px;
  align-items: center;
}
.meo-distributor {
  font-size: 12px;
  color: #657789;
  margin-bottom: 25px;
}
.meo-logo {
  width: 330px;
  height: auto;
  margin-bottom: 26px;
}
.meo-hero h1 {
  font-size: clamp(29px, 2.8vw, 41px);
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: 0;
}
.meo-hero h1 em {
  font-style: normal;
  color: #237bce;
}
.meo-lead {
  font-size: 16px;
  color: #526779;
  margin-top: 22px;
}
.meo-pills {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.meo-pills span {
  background: white;
  border: 1px solid #bcd9ef;
  border-radius: 24px;
  color: #236eb1;
  padding: 5px 14px;
  font-size: 13px;
}
.meo-from {
  margin-top: 25px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.meo-from > span {
  font-size: 13px;
}
.meo-from strong {
  font:
    600 54px/1.3 Arial,
    sans-serif;
  color: #123a70;
}
.meo-from small {
  font: 500 15px/1.5 var(--font);
  margin-left: 12px;
}
.meo-subprice {
  font-size: 13px;
  margin: 8px 0 24px;
}
.meo-button {
  border-radius: 5px;
  background: #247fce;
  border-color: #247fce;
  font-size: 15px;
  gap: 35px;
}
.meo-hero-art {
  margin: 0;
  background: white;
  border-radius: 25px;
  padding: 15px;
  box-shadow: 0 20px 60px #2774ac18;
  border: 1px solid #dbeaf5;
  overflow: hidden;
}
.meo-hero-art > img {
  width: 100%;
  height: auto;
  border-radius: 15px;
}
.meo-hero-art figcaption,
.meo-story figcaption {
  font-size: 11px;
  color: #76879a;
  line-height: 1.8;
  text-align: center;
  margin-top: 10px;
}
.meo-art-caption {
  padding: 28px 20px 18px;
  text-align: center;
}
.meo-art-caption > span {
  font-size: 21px;
  display: block;
}
.meo-art-caption > strong {
  font-size: 27px;
  color: #237bce;
  display: block;
  margin-top: 8px;
}
.meo-art-caption p {
  font-size: 14px;
  color: #657789;
  margin-top: 10px;
}
.meo-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 35px;
}
.meo-card {
  background: white;
  border: 1px solid #dfebf3;
  border-radius: 14px;
  padding: 30px;
  box-shadow: 0 8px 30px #174d7210;
}
.meo-card h3 {
  font-size: 19px;
  color: #1d67a9;
  margin-bottom: 16px;
}
.meo-card p {
  font-size: 15px;
  color: #576f82;
}
.meo-card p + p {
  margin-top: 14px;
}
.meo-page .aio-soft {
  background: #f1f7fb;
}
.meo-stories {
  background: #fff;
}
.meo-story {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 70px;
  align-items: center;
  padding: 55px 0;
  border-bottom: 1px solid #dfeaf3;
}
.meo-story:nth-child(odd) > div {
  order: 2;
}
.meo-story > div > p {
  font-size: 17px;
  color: #576f82;
  margin-top: 22px;
}
.meo-number {
  font:
    50px/1 Arial,
    sans-serif;
  color: #bddcef;
  display: block;
  margin-bottom: 24px;
}
.meo-story figure {
  margin: 0;
  border: 1px solid #dfeaf3;
  border-radius: 18px;
  padding: 22px;
  background: #f5faff;
}
.meo-story img {
  width: 100%;
  height: auto;
  border-radius: 10px;
}
.meo-page .aio-note {
  font-size: 12px;
  color: #657789;
  margin-top: 30px;
}
.meo-page #meo-price .meo-card-grid {
  grid-template-columns: 1fr 1fr;
}
.meo-page #meo-price .meo-card {
  padding: 35px;
  border-top: 4px solid #2785da;
}
.meo-page #meo-price h3 {
  font-size: 27px;
  margin-top: 18px;
}
.meo-page #meo-price h3 span {
  font-size: 14px;
  display: block;
}
.meo-contact {
  background: #123a70;
  color: white;
  text-align: center;
}
.meo-contact p {
  margin: 20px 0 28px;
}
.meo-contact .button {
  background: white;
  color: #123a70;
}
.meo-contact a:last-child {
  display: block;
  margin-top: 22px;
  font-size: 14px;
}
.meo-source-note {
  font-size: 11px;
  color: #718397;
  padding-block: 25px;
}
@media (max-width: 900px) {
  .meo-hero-grid {
    gap: 25px;
  }
  .meo-card-grid {
    grid-template-columns: 1fr 1fr;
  }
  .meo-story {
    gap: 35px;
  }
  .meo-card {
    padding: 24px;
  }
}
@media (max-width: 720px) {
  .meo-hero {
    padding: 30px 0 40px;
  }
  .meo-hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .meo-distributor {
    font-size: 11px;
    margin-bottom: 20px;
  }
  .meo-logo {
    width: 290px;
    margin-bottom: 25px;
  }
  .meo-hero h1 {
    font-size: 28px;
  }
  .meo-lead {
    font-size: 15px;
  }
  .meo-from strong {
    font-size: 49px;
  }
  .meo-from small {
    font-size: 13px;
  }
  .meo-button {
    width: 100%;
    font-size: 14px;
  }
  .meo-art-caption {
    padding: 20px 10px 12px;
  }
  .meo-art-caption > strong {
    font-size: 24px;
  }
  .meo-card-grid,
  .meo-page #meo-price .meo-card-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 25px;
  }
  .meo-card {
    padding: 25px;
  }
  .meo-story {
    grid-template-columns: 1fr;
    gap: 25px;
    padding: 35px 0;
  }
  .meo-story:nth-child(odd) > div {
    order: initial;
  }
  .meo-story > div > p {
    font-size: 15px;
    margin-top: 17px;
  }
  .meo-story figure {
    padding: 13px;
  }
  .meo-number {
    font-size: 36px;
    margin-bottom: 15px;
  }
  .meo-page #meo-price .meo-card {
    padding: 27px;
  }
  .meo-page #meo-price h3 {
    font-size: 25px;
  }
  .meo-contact h2 {
    font-size: 25px;
  }
  .meo-source-note {
    font-size: 10px;
  }
}

.meo-device-scene {
  position: relative;
  height: 390px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 15px;
}
.meo-device-scene > img:first-child {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.meo-device-scene .meo-phone {
  position: relative;
  height: 355px;
  width: auto;
  filter: drop-shadow(0 12px 16px #143c6730);
}
@media (max-width: 720px) {
  .meo-device-scene {
    height: 315px;
  }
  .meo-device-scene .meo-phone {
    height: 295px;
  }
}

.meo-live-screen {
  position: absolute;
  height: 337px;
  width: auto;
  border-radius: 24px;
  object-fit: cover;
}
.meo-device-scene .meo-phone {
  z-index: 1;
}
@media (max-width: 720px) {
  .meo-live-screen {
    height: 280px;
    border-radius: 21px;
  }
}

.meo-device-scene .meo-live-screen {
  position: relative;
  z-index: 1;
  height: 355px;
  width: auto;
  max-width: none;
  border: 5px solid #243544;
  border-radius: 26px;
  box-shadow: 0 10px 22px #143c6740;
  object-fit: contain;
  background: #243544;
}
@media (max-width: 720px) {
  .meo-device-scene .meo-live-screen {
    height: 295px;
    border-width: 4px;
    border-radius: 23px;
  }
}

/* Chappy Ads: original HTML/CSS explanatory artwork; no competitor assets. */
.chappy-page {
  --cp: #087f9e;
  --cpdark: #103d77;
  --cppale: #eef9fc;
  color: var(--ink);
}
.chappy-page h2 {
  font-size: clamp(26px, 2.8vw, 37px);
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.chappy-page h3 {
  font-size: 21px;
  line-height: 1.7;
}
.chappy-page p {
  line-height: 1.95;
}
.chappy-page .eyebrow {
  color: var(--cp);
}
.chappy-hero {
  padding: 60px 0 70px;
  background:
    radial-gradient(ellipse at 90% 80%, #e4f8fb, transparent 50%),
    linear-gradient(120deg, #fff 25%, #edf8fc);
}
.chappy-hero-grid {
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  gap: 65px;
  align-items: center;
}
.chappy-eyebrow {
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--cp);
  margin-bottom: 15px;
}
.chappy-wordmark {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 27px;
  font-weight: 700;
  color: var(--cpdark);
  letter-spacing: 0.03em;
}
.chappy-face {
  display: block;
  background: var(--cp);
  color: white;
  position: relative;
  width: 44px;
  height: 40px;
  text-align: center;
  border-radius: 16px;
  font: 700 20px/24px Arial;
  letter-spacing: 7px;
  padding-left: 7px;
  transform: rotate(-6deg);
}
.chappy-face:after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 8px;
  border: 7px solid transparent;
  border-left-color: var(--cp);
}
.chappy-face i {
  position: absolute;
  font: 20px/1 Arial;
  bottom: 5px;
  left: 12px;
  letter-spacing: 0;
  font-style: normal;
}
.chappy-hero h1 {
  font-size: clamp(29px, 3.2vw, 43px);
  line-height: 1.65;
  letter-spacing: 0;
  font-weight: 600;
  color: var(--cpdark);
  margin-top: 30px;
}
.chappy-lead {
  font-size: 17px;
  color: #637083;
  margin-top: 25px;
}
.chappy-free {
  display: flex;
  gap: 17px;
  align-items: baseline;
  flex-wrap: wrap;
  margin: 27px 0 22px;
}
.chappy-free > span {
  font-size: 14px;
}
.chappy-free strong {
  font: 600 53px/1 Arial;
  color: var(--cp);
}
.chappy-free small {
  font: 18px var(--font);
  margin-left: 5px;
}
.chappy-free > span:last-child {
  font-size: 12px;
  color: #637083;
}
.chappy-button {
  background: var(--cp);
  border-color: var(--cp);
  border-radius: 6px;
  font-size: 14px;
}
.chappy-button:hover {
  background: #086c88;
}
.chappy-demo {
  margin: 0;
  background: #fff;
  border: 1px solid #d5eaf1;
  box-shadow: 0 25px 65px #123f7315;
  border-radius: 24px;
  padding: 24px;
  transform: rotate(1deg);
}
.chappy-demo-top {
  font-size: 11px;
  display: flex;
  gap: 8px;
  align-items: center;
  color: #718091;
  border-bottom: 1px solid #e2f0f5;
  padding-bottom: 18px;
}
.chappy-demo-top > span:last-child {
  margin-left: auto;
  font-size: 9px;
}
.chappy-dot {
  width: 8px;
  height: 8px;
  background: #02afcf;
  border-radius: 50%;
}
.chappy-user {
  background: #e4f6fa;
  border-radius: 18px 18px 4px 18px;
  margin: 24px 0 25px auto;
  width: max-content;
  max-width: 100%;
  padding: 16px 23px;
  font-size: 15px;
  color: #165478;
  line-height: 1.9;
}
.chappy-answer {
  display: flex;
  gap: 15px;
  padding: 0 0 24px;
}
.chappy-spark {
  font-size: 30px;
  color: var(--cp);
}
.chappy-answer strong {
  font-size: 15px;
}
.chappy-answer p {
  font-size: 13px;
  margin-top: 12px;
  color: #667586;
}
.chappy-answer-lines {
  display: grid;
  gap: 8px;
  margin-top: 17px;
}
.chappy-answer-lines span {
  height: 5px;
  border-radius: 5px;
  background: #edf0f4;
  width: 100%;
}
.chappy-answer-lines span:nth-child(2) {
  width: 88%;
}
.chappy-answer-lines span:last-child {
  width: 66%;
}
.chappy-ad {
  border: 1px solid #c4e4ed;
  border-radius: 13px;
  padding: 14px;
  background: #f5fbfd;
}
.chappy-ad-label {
  font-size: 10px;
  color: #658897;
  display: block;
  margin-bottom: 11px;
}
.chappy-ad-inner {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 17px;
  align-items: center;
}
.chappy-ad small {
  font-size: 10px;
  color: #397a90;
}
.chappy-ad strong {
  display: block;
  font-size: 15px;
  color: var(--cpdark);
  margin-top: 5px;
}
.chappy-ad p {
  font-size: 11px;
  color: var(--cp);
  margin-top: 12px;
}
.chappy-landscape {
  position: relative;
  overflow: hidden;
  height: 94px;
  background: linear-gradient(150deg, #f2e2cf, #f6cda6);
  border-radius: 10px;
}
.chappy-landscape > span {
  position: absolute;
  top: 6px;
  right: 12px;
  color: white;
  font-size: 25px;
}
.chappy-landscape i {
  position: absolute;
  width: 40px;
  height: 40px;
  border-radius: 5px 5px 18px 18px;
  background: #bc7e5e;
  bottom: 14px;
  left: 16px;
  transform: rotate(-12deg);
  box-shadow: inset 0 5px #e4b08d;
}
.chappy-landscape b {
  position: absolute;
  width: 30px;
  height: 40px;
  border-radius: 8px 8px 16px 16px;
  background: #6e90a0;
  bottom: 12px;
  right: 12px;
  transform: rotate(8deg);
  box-shadow: inset 0 5px #a6c7cb;
}
.chappy-demo figcaption {
  font-size: 10px;
  line-height: 1.8;
  color: #85909c;
  margin-top: 18px;
}
.chappy-heading {
  margin-bottom: 38px;
}
.chappy-heading h2 {
  margin-top: 15px;
}
.chappy-heading > p:last-child:not(.eyebrow) {
  font-size: 16px;
  color: #637083;
  margin-top: 20px;
}
.chappy-mobile {
  display: none;
}
.chappy-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.chappy-steps li {
  padding: 27px 30px;
  background: var(--cppale);
  border-radius: 15px;
  position: relative;
}
.chappy-step-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  background: #fff;
  border: 1px solid #cce6ee;
  border-radius: 17px;
  color: var(--cp);
  font: 30px/1 Arial;
  margin-bottom: 25px;
}
.chappy-steps small {
  font-size: 11px;
  color: var(--cp);
  letter-spacing: 0.06em;
}
.chappy-steps h3 {
  margin: 9px 0 15px;
  color: var(--cpdark);
}
.chappy-steps p {
  font-size: 15px;
  color: #637083;
}
.chappy-point {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 30px;
  padding: 25px 30px;
  border: 1px solid #cde5ee;
  border-radius: 12px;
}
.chappy-point > span {
  color: var(--cp);
  font-size: 14px;
  white-space: nowrap;
}
.chappy-point p {
  font-size: 14px;
  color: #637083;
}
.chappy-tint {
  background: var(--cppale);
}
.chappy-support {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
}
.chappy-support > div {
  border-top: 1px solid #cbe5ee;
  padding-top: 25px;
}
.chappy-support span {
  font: 30px Arial;
  color: #62b5c9;
}
.chappy-support h3 {
  margin: 16px 0;
  color: var(--cpdark);
}
.chappy-support p {
  font-size: 15px;
  color: #637083;
}
.chappy-price-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 65px;
  align-items: center;
}
.chappy-price-grid h2 {
  margin-top: 18px;
}
.chappy-price-grid > div > p:last-child {
  font-size: 16px;
  color: #637083;
  margin-top: 23px;
}
.chappy-price-card {
  padding: 35px;
  border: 1px solid #c8e3ec;
  border-top: 4px solid var(--cp);
  border-radius: 12px;
  background: #fff;
}
.chappy-price-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.chappy-price-card strong {
  font: 600 70px/1 Arial;
  color: var(--cp);
}
.chappy-price-card strong small {
  font: 20px var(--font);
  margin-left: 10px;
}
.chappy-price-card dl {
  margin: 25px 0 20px;
  padding-top: 22px;
  border-top: 1px solid #deedf2;
}
.chappy-price-card dt {
  font-size: 14px;
  font-weight: 600;
}
.chappy-price-card dd {
  margin: 8px 0 0;
  color: #637083;
  font-size: 14px;
}
.chappy-price-card > p {
  font-size: 12px;
  color: #7d8694;
}
.chappy-price-card > .button {
  margin-top: 23px;
  width: 100%;
}
.chappy-faq {
  background: #fafbfc;
}
.chappy-faq .wrap {
  max-width: 1000px;
}
.chappy-faq details {
  border-top: 1px solid #d4e6ed;
}
.chappy-faq details:last-child {
  border-bottom: 1px solid #d4e6ed;
}
.chappy-faq summary {
  padding: 24px 35px 24px 0;
  cursor: pointer;
  position: relative;
  font-size: 17px;
  list-style: none;
  line-height: 1.8;
}
.chappy-faq summary::-webkit-details-marker {
  display: none;
}
.chappy-faq summary:after {
  content: '＋';
  position: absolute;
  right: 4px;
  top: 24px;
  color: var(--cp);
}
.chappy-faq details[open] summary:after {
  content: '−';
}
.chappy-faq details > p {
  padding: 0 25px 25px 0;
  font-size: 15px;
  color: #637083;
}
.chappy-cta {
  padding: 75px 0;
  text-align: center;
  background: var(--cpdark);
  color: #fff;
}
.chappy-cta .eyebrow {
  justify-content: center;
  color: #a7e6f2;
}
.chappy-cta .eyebrow:before {
  display: none;
}
.chappy-cta h2 {
  margin-top: 20px;
}
.chappy-cta p:not(.eyebrow) {
  margin-top: 20px;
  font-size: 16px;
}
.chappy-cta .button {
  margin-top: 28px;
  border-radius: 6px;
  font-size: 14px;
}
.chappy-back {
  display: block;
  margin-top: 25px;
  font-size: 13px;
  color: #c4e9f1;
}
.chappy-notes {
  font-size: 11px;
  line-height: 1.8;
  color: #788597;
  padding-block: 28px;
}
.chappy-notes p + p {
  margin-top: 9px;
}
@media (max-width: 1000px) {
  .chappy-hero-grid {
    gap: 30px;
  }
  .chappy-steps {
    gap: 18px;
  }
  .chappy-steps li {
    padding: 25px 22px;
  }
  .chappy-demo {
    padding: 20px;
  }
  .chappy-ad-inner {
    grid-template-columns: 80px 1fr;
  }
  .chappy-ad strong {
    font-size: 14px;
  }
  .chappy-price-grid {
    gap: 35px;
  }
}
@media (max-width: 720px) {
  .chappy-hero {
    padding: 30px 0 40px;
  }
  .chappy-hero-grid,
  .chappy-price-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .chappy-wordmark {
    font-size: 25px;
  }
  .chappy-hero h1 {
    font-size: 29px;
    margin-top: 25px;
  }
  .chappy-lead {
    font-size: 15px;
    margin-top: 20px;
  }
  .chappy-lead br {
    display: none;
  }
  .chappy-free {
    gap: 13px;
  }
  .chappy-free strong {
    font-size: 48px;
  }
  .chappy-free > span:last-child {
    width: 100%;
  }
  .chappy-button {
    width: 100%;
    font-size: 13px;
    gap: 15px;
    padding-inline: 18px;
  }
  .chappy-demo {
    transform: none;
    padding: 18px;
    border-radius: 18px;
  }
  .chappy-demo-top {
    font-size: 10px;
    gap: 5px;
  }
  .chappy-demo-top > span:last-child {
    font-size: 8px;
  }
  .chappy-user {
    font-size: 14px;
    padding: 14px 18px;
  }
  .chappy-answer {
    gap: 12px;
  }
  .chappy-answer strong {
    font-size: 13px;
  }
  .chappy-answer p {
    font-size: 12px;
  }
  .chappy-ad-inner {
    grid-template-columns: 70px 1fr;
    gap: 12px;
  }
  .chappy-ad strong {
    font-size: 13px;
  }
  .chappy-landscape {
    height: 88px;
  }
  .chappy-landscape i {
    left: 8px;
    width: 32px;
  }
  .chappy-landscape b {
    right: 6px;
    width: 25px;
    height: 33px;
  }
  .chappy-demo figcaption {
    font-size: 10px;
  }
  .chappy-page h2 {
    font-size: 26px;
  }
  .chappy-mobile {
    display: block;
  }
  .chappy-heading > p:last-child:not(.eyebrow) {
    font-size: 15px;
  }
  .chappy-steps,
  .chappy-support {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .chappy-steps li {
    padding: 24px;
  }
  .chappy-step-icon {
    width: 43px;
    height: 43px;
    font-size: 25px;
    margin-bottom: 15px;
  }
  .chappy-steps h3 {
    font-size: 20px;
  }
  .chappy-point {
    display: block;
    padding: 23px;
  }
  .chappy-point p {
    font-size: 13px;
    margin-top: 10px;
  }
  .chappy-support {
    gap: 26px;
  }
  .chappy-support > div {
    padding-top: 20px;
  }
  .chappy-support h3 {
    font-size: 20px;
    margin: 12px 0;
  }
  .chappy-price-card {
    padding: 26px;
  }
  .chappy-price-card strong {
    font-size: 64px;
  }
  .chappy-faq summary {
    font-size: 15px;
  }
  .chappy-faq details > p {
    font-size: 14px;
  }
  .chappy-cta {
    padding: 50px 0;
  }
  .chappy-cta p:not(.eyebrow) {
    font-size: 14px;
  }
  .chappy-cta .button {
    font-size: 13px;
    width: 100%;
    gap: 20px;
    padding-inline: 18px;
  }
  .chappy-notes {
    font-size: 10px;
  }
}

/* Adopted user-supplied logo: display its artwork at original proportions. */
.chappy-logo-window {
  position: relative;
  width: 370px;
  max-width: 100%;
  aspect-ratio: 1340/460;
  overflow: hidden;
}
.chappy-logo-window img {
  position: absolute;
  width: 108.06%;
  max-width: none;
  height: auto;
  left: -4.48%;
  top: -67.39%;
  mix-blend-mode: multiply;
}
.chappy-free strong {
  color: #ff7415;
}
.chappy-eyebrow {
  color: #0783a1;
}
.chappy-button {
  background: #103d77;
  border-color: #103d77;
  box-shadow: 0 6px 18px #103d7712;
}
.chappy-button:hover {
  background: #15548e;
}
.chappy-step-icon {
  border-top: 3px solid #00afd0;
}
.chappy-support span {
  color: #00a6c5;
}
.chappy-price-card {
  border-top-color: #00afd0;
}
.chappy-price-card strong {
  color: #ff7415;
}
.chappy-dot {
  background: #ff7415;
}
.chappy-cta {
  background: linear-gradient(115deg, #103d77, #075d80);
}
@media (max-width: 720px) {
  .chappy-logo-window {
    width: 310px;
  }
  .chappy-hero h1 {
    margin-top: 24px;
  }
}

/* Completed service catalog: extensible product data and real brand logos. */
.catalog-aio {
  --catalog-color: #0b819b;
}
.catalog-cyan {
  --catalog-color: #087f9e;
}
.catalog-card {
  border-radius: 12px;
  overflow: hidden;
}
.catalog-brand-art {
  height: 190px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--catalog-color) 7%, white), #fff);
  padding: 28px;
}
.catalog-brand-art:after {
  display: none;
}
.catalog-logo-window {
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.catalog-logo-window img {
  width: 100%;
  height: auto;
  max-height: 110px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.catalog-logo-chappy-ads {
  display: block;
  aspect-ratio: 1340/460;
  overflow: hidden;
}
.catalog-logo-chappy-ads img {
  position: absolute;
  width: 108.06%;
  max-width: none;
  max-height: none;
  height: auto;
  left: -4.48%;
  top: -67.39%;
  object-fit: initial;
}
.catalog-logo-canly-meo-agent img {
  width: 100%;
  max-height: 65px;
}
.catalog-art-label {
  font-size: 9px;
  opacity: 0.7;
  left: 28px;
  bottom: 17px;
}
.catalog-card-body {
  flex: 1;
  flex-direction: column;
  padding: 28px;
  display: grid;
  grid-template-rows: auto auto auto 1fr auto auto auto auto;
  align-content: start;
}
.catalog-card h2 {
  font-size: 23px;
  line-height: 1.55;
  min-height: 72px;
}
.catalog-category {
  font-size: 11px;
  letter-spacing: 0;
  margin-bottom: 14px;
}
.catalog-lead {
  font-size: 16px;
  margin-top: 16px;
  min-height: 60px;
}
.catalog-summary {
  font-size: 15px;
  margin: 10px 0 22px;
  line-height: 1.95;
}
.catalog-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  font-size: 13px;
  line-height: 1.8;
}
.catalog-feature-list li {
  padding: 6px 0 6px 20px;
  position: relative;
}
.catalog-feature-list li:before {
  content: '✓';
  color: var(--catalog-color);
  position: absolute;
  left: 0;
}
.catalog-price {
  padding: 20px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  min-height: 163px;
}
.catalog-price > span {
  font-size: 11px;
  color: var(--muted);
}
.catalog-price > p {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin: 7px 0 9px;
}
.catalog-price strong {
  font:
    600 34px/1.2 Arial,
    sans-serif;
  letter-spacing: -0.02em;
  color: var(--catalog-color);
}
.catalog-price p span {
  font-size: 11px;
}
.catalog-price small {
  font-size: 11px;
  line-height: 1.8;
  color: var(--muted);
  display: block;
}
.catalog-provider {
  font-size: 10px;
  line-height: 1.8;
  color: #738394;
  margin: 17px 0;
  min-height: 36px;
}
.catalog-more {
  font-size: 13px;
  margin-top: 0;
  border-top: 0;
  padding-top: 10px;
  gap: 12px;
}
.catalog-price-disclaimer {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.9;
  margin-top: 25px;
}
.catalog-consult h2 {
  font-weight: 600;
}
.catalog-intro > p {
  max-width: 530px;
}
@media (min-width: 721px) and (max-width: 1100px) {
  .catalog-card-body {
    padding: 22px;
  }
  .catalog-brand-art {
    padding: 23px;
  }
  .catalog-card h2 {
    font-size: 21px;
  }
  .catalog-lead {
    font-size: 15px;
  }
  .catalog-summary {
    font-size: 14px;
  }
  .catalog-provider {
    min-height: 54px;
  }
}
@media (max-width: 720px) {
  .catalog-brand-art {
    height: 175px;
    padding: 30px 38px;
  }
  .catalog-logo-window {
    max-width: 285px;
  }
  .catalog-card-body {
    display: flex;
    padding: 26px;
  }
  .catalog-card h2 {
    font-size: 24px;
    min-height: 0;
  }
  .catalog-lead {
    min-height: 0;
    font-size: 16px;
    margin-top: 15px;
  }
  .catalog-summary {
    font-size: 15px;
    margin: 13px 0 20px;
  }
  .catalog-feature-list {
    font-size: 14px;
  }
  .catalog-price {
    min-height: 0;
    width: 100%;
  }
  .catalog-price strong {
    font-size: 36px;
  }
  .catalog-provider {
    min-height: 0;
    font-size: 10px;
  }
  .catalog-more {
    width: 100%;
    font-size: 14px;
  }
  .catalog-price-disclaimer {
    font-size: 11px;
  }
  .catalog-consult .button {
    width: 100%;
  }
}

/* Public navigation: corporate areas -> specific services -> consultation. */
.hero-services-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-size: 14px;
  font-weight: 600;
  margin: 20px 0 0 25px;
  border-bottom: 1px solid #9babba;
  padding-bottom: 5px;
}
.service-entry-section {
  background: #f3f7fa;
}

.catalog-business-link {
  font-size: 13px;
  color: var(--muted);
  margin: -15px 0 28px;
}
.catalog-business-link a {
  border-bottom: 1px solid #a1b2c0;
  padding-bottom: 4px;
}
.service-entry-section .section-title {
  max-width: 750px;
}
.service-entry-section .section-head {
  align-items: start;
}
.service-entry-section .section-copy {
  max-width: 420px;
}
@media (min-width: 721px) and (max-width: 1100px) {
  .hero-services-link {
    margin-left: 0;
    display: flex;
    width: max-content;
  }
}
@media (max-width: 720px) {
  .hero-services-link {
    margin-left: 0;
    margin-top: 18px;
    display: flex;
    width: max-content;
    font-size: 13px;
  }

  .catalog-business-link {
    margin: 0 0 25px;
    font-size: 12px;
  }
  .service-entry-section .section-title {
    font-size: 25px;
  }
  .service-entry-section .section-copy {
    font-size: 14px;
  }
}

/* L-tsuna detail; original code-native diagrams and supplied logos. */
.ltsuna-page {
  --lt-navy: #073d75;
  --lt-blue: #009de6;
  --lt-green: #00ae74;
  --lt-pale: #eff9fa;
  --lt-line: #d6e9ed;
  color: var(--ink);
}
.ltsuna-page h2 {
  font-size: clamp(27px, 2.8vw, 38px);
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.ltsuna-page h3 {
  font-size: 20px;
  line-height: 1.7;
}
.ltsuna-page p {
  line-height: 1.95;
}
.ltsuna-page [id] {
  scroll-margin-top: 115px;
}
.ltsuna-page .eyebrow {
  color: #008fa6;
}
.lt-hero {
  padding: 45px 0 65px;
  background:
    radial-gradient(ellipse at 85% 75%, #d6f6e7, transparent 45%),
    linear-gradient(120deg, #fff 25%, #eef9fe);
}
.lt-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 60px;
  align-items: center;
}
.lt-kicker {
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #35728a;
  margin-bottom: 10px;
}
.lt-logo {
  width: 420px;
  max-width: 100%;
  height: auto;
  margin-left: -20px;
}
.lt-hero h1 {
  font-size: clamp(31px, 3.1vw, 43px);
  line-height: 1.7;
  color: var(--lt-navy);
  font-weight: 600;
  letter-spacing: 0;
  margin-top: 18px;
}
.lt-lead {
  font-size: 17px;
  color: #577184;
  margin-top: 24px;
}
.lt-pill-row {
  display: flex;
  gap: 10px;
  margin: 25px 0;
}
.lt-pill-row span {
  font-size: 13px;
  color: #137794;
  border: 1px solid #bce3e8;
  border-radius: 20px;
  padding: 5px 22px;
  background: #fff;
}
.lt-button {
  background: var(--lt-navy);
  border-color: var(--lt-navy);
  border-radius: 6px;
  font-size: 14px;
}
.lt-button:hover {
  background: #096f91;
}
.lt-mobile {
  display: none;
}
.lt-scene {
  position: relative;
  min-height: 650px;
  display: grid;
  place-items: center;
}
.lt-scene-orbit {
  position: absolute;
  width: 450px;
  height: 450px;
  border-radius: 50%;
  border: 1px solid #c0e4e7;
  box-shadow: 0 0 0 38px #d9f1f43b;
}
.lt-scene-orbit:after {
  content: '';
  position: absolute;
  inset: 30px;
  border-radius: 50%;
  border: 1px dashed #b4e4d3;
}
.lt-phone {
  position: relative;
  background: #fff;
  border: 7px solid #123b54;
  border-radius: 38px;
  width: 295px;
  margin: 0;
  padding: 12px 12px 14px;
  box-shadow: 0 20px 50px #164a6826;
  transform: rotate(3deg);
}
.lt-phone-top {
  display: flex;
  justify-content: space-between;
  font: 11px Arial;
  color: #355c72;
  padding: 4px 9px 12px;
}
.lt-account {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 0 15px;
  border-bottom: 1px solid #e2eef1;
}
.lt-avatar {
  display: grid;
  place-items: center;
  background: linear-gradient(140deg, #00a8e8, #00b56a);
  border-radius: 12px;
  width: 34px;
  height: 34px;
  color: white;
  font: bold 23px Arial;
}
.lt-account strong {
  font-size: 12px;
  display: block;
}
.lt-account small {
  font-size: 9px;
  color: #7d929c;
  display: block;
}
.lt-phone-chat {
  background: #eef7f8;
  padding: 14px 11px;
}
.lt-message {
  border-radius: 12px;
  background: #fff;
  padding: 12px;
  border: 1px solid #dcebef;
}
.lt-message > small {
  color: #08a489;
  font-size: 9px;
  display: block;
}
.lt-message > strong {
  display: block;
  font-size: 12px;
  margin: 5px 0 10px;
}
.lt-message p {
  font-size: 10px;
  color: #6b7f8c;
  margin: 8px 0;
}
.lt-event-art {
  position: relative;
  height: 82px;
  background: linear-gradient(145deg, #def1eb, #cceff7);
  border-radius: 8px;
  overflow: hidden;
}
.lt-event-art span {
  position: absolute;
  top: 9px;
  right: 24px;
  font-size: 25px;
  color: #fff;
}
.lt-event-art i,
.lt-event-art b {
  position: absolute;
  width: 80px;
  height: 65px;
  bottom: -25px;
  left: 20px;
  background: #86c0ac;
  transform: rotate(25deg);
  border-radius: 15px;
}
.lt-event-art b {
  left: 90px;
  bottom: -10px;
  background: #72b9ce;
  transform: rotate(-30deg);
}
.lt-demo-action {
  display: block;
  font-size: 10px;
  color: #008b9c;
  padding-top: 8px;
  border-top: 1px solid #e4edef;
  text-align: center;
}
.lt-user-message {
  background: #ccebdc;
  border-radius: 10px 10px 2px 10px;
  font-size: 10px;
  padding: 10px;
  margin: 12px 0 12px 18px;
}
.lt-mini-message {
  font-size: 10px;
  line-height: 1.8;
  background: #fff;
  padding: 11px;
  border-radius: 10px;
  max-width: 190px;
}
.lt-rich-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #dcebed;
  margin-top: 12px;
  border-radius: 10px;
  overflow: hidden;
}
.lt-rich-menu > span {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #f5fbfc;
  color: #0497b2;
  padding: 6px;
  font-size: 20px;
  line-height: 1.2;
}
.lt-rich-menu small {
  font-size: 9px;
  color: #476a7d;
  margin-top: 5px;
}
.lt-phone figcaption {
  font-size: 8px;
  line-height: 1.7;
  color: #82949b;
  text-align: center;
  margin-top: 11px;
}
.lt-floating {
  position: absolute;
  background: #fff;
  border: 1px solid #d7eceb;
  border-radius: 30px;
  padding: 12px 22px;
  color: #087b99;
  box-shadow: 0 8px 25px #164a6810;
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 25px;
}
.lt-floating i {
  font-style: normal;
  color: #00b773;
}
.lt-floating-one {
  left: 0;
  top: 90px;
}
.lt-floating-two {
  right: 0;
  bottom: 90px;
}
.lt-local-nav {
  background: white;
  border-block: 1px solid var(--lt-line);
}
.lt-local-nav .wrap {
  display: flex;
  justify-content: center;
  gap: 50px;
  white-space: nowrap;
  overflow-x: auto;
}
.lt-local-nav a {
  display: block;
  padding: 20px 0;
  font-size: 14px;
}
.lt-local-nav a:hover {
  color: #008a9d;
}
.lt-concept-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 65px;
}
.lt-concept h2 {
  margin-top: 18px;
}
.lt-concept-grid > div > p:not(.eyebrow) {
  font-size: 16px;
  color: #5b7180;
}
.lt-concept-grid > div > p + p {
  margin-top: 20px;
}
.lt-concept-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 32px;
  padding: 22px 0;
  border-block: 1px solid var(--lt-line);
}
.lt-concept-steps span {
  font-size: 22px;
  color: var(--lt-navy);
  font-weight: 600;
}
.lt-concept-steps small {
  font-size: 11px;
  color: #6f8a98;
  display: block;
  font-weight: 400;
  margin-top: 5px;
}
.lt-concept-steps i {
  font-style: normal;
  color: #00a98c;
}
.lt-tint {
  background: var(--lt-pale);
}
.lt-section-head {
  margin-bottom: 42px;
}
.lt-section-head h2 {
  margin-top: 17px;
}
.lt-section-head > p:last-child:not(.eyebrow) {
  font-size: 16px;
  color: #5e7784;
  margin-top: 20px;
}
.lt-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.lt-feature {
  background: #fff;
  border: 1px solid var(--lt-line);
  border-radius: 13px;
  padding: 30px;
}
.lt-feature-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}
.lt-feature svg {
  width: 40px;
  height: 40px;
  fill: none;
  stroke: #029fb6;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.lt-feature-top span {
  font: 14px Arial;
  color: #9bbbc5;
}
.lt-feature h3 {
  color: var(--lt-navy);
  margin-bottom: 17px;
}
.lt-feature p {
  font-size: 15px;
  color: #5b7484;
}
.lt-fine {
  font-size: 12px;
  color: #6e8795;
  margin-top: 27px;
}
.lt-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.lt-timeline > li > span {
  display: block;
  padding: 12px 18px;
  background: linear-gradient(110deg, #008ed0, #00ae88);
  color: #fff;
  font-size: 14px;
  border-radius: 7px;
}
.lt-timeline > li > div {
  border-left: 1px solid var(--lt-line);
  padding: 25px 0 0 18px;
  margin-left: 10px;
}
.lt-timeline small {
  font-size: 11px;
  color: #0695a4;
}
.lt-timeline h3 {
  font-size: 18px;
  color: var(--lt-navy);
  margin: 13px 0 15px;
}
.lt-timeline p {
  font-size: 14px;
  color: #617b8b;
}
.lt-usecases {
  background: var(--lt-navy);
  color: #fff;
}
.lt-usecases .eyebrow {
  color: #87e0dc;
}
.lt-usecase-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 75px;
  align-items: center;
}
.lt-usecase-grid h2 {
  margin-top: 17px;
}
.lt-usecase-grid > div > p {
  font-size: 16px;
  color: #d4e7ed;
  margin-top: 24px;
}
.lt-usecase-list > div {
  border-top: 1px solid #46728f;
  padding: 25px 0;
}
.lt-usecase-list span {
  font-size: 13px;
  color: #86e1cc;
}
.lt-usecase-list p {
  font-size: 16px;
  margin-top: 12px;
  color: #e5f1f4;
}
.lt-support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 85px;
}
.lt-support-grid h2 {
  margin-top: 18px;
}
.lt-support-lead {
  font-size: 16px;
  color: #5b7484;
  margin-top: 23px;
  max-width: 450px;
}
.lt-support-grid .button {
  margin-top: 30px;
}
.lt-support-list > div {
  padding: 24px 0 24px 45px;
  border-top: 1px solid var(--lt-line);
  position: relative;
}
.lt-support-list > div > span {
  position: absolute;
  top: 29px;
  left: 0;
  color: #03a8a0;
  font: 18px Arial;
}
.lt-support-list h3 {
  font-size: 19px;
  color: var(--lt-navy);
}
.lt-support-list p {
  font-size: 15px;
  color: #5e7784;
  margin-top: 10px;
}
.lt-support-list > div.lt-price-note {
  padding: 24px;
  background: #eff9fa;
  border: 1px solid var(--lt-line);
  border-radius: 10px;
  margin-top: 20px;
}
.lt-price-note h3 {
  font-size: 17px;
}
.lt-price-note p {
  font-size: 14px;
}
.lt-faq {
  background: #f7fafb;
}
.lt-faq .wrap {
  max-width: 1000px;
}
.lt-faq details {
  border-top: 1px solid var(--lt-line);
}
.lt-faq details:last-child {
  border-bottom: 1px solid var(--lt-line);
}
.lt-faq summary {
  font-size: 16px;
  line-height: 1.9;
  padding: 24px 36px 24px 0;
  position: relative;
  cursor: pointer;
  list-style: none;
}
.lt-faq summary::-webkit-details-marker {
  display: none;
}
.lt-faq summary:after {
  content: '＋';
  position: absolute;
  right: 0;
  top: 24px;
  color: #0097ae;
}
.lt-faq details[open] summary:after {
  content: '−';
}
.lt-faq details > p {
  padding: 0 20px 24px 0;
  font-size: 15px;
  color: #5c7584;
}
.lt-cta {
  padding: 70px 0;
  background: linear-gradient(115deg, #f1faff, #edfaf2);
}
.lt-cta-inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 85px;
  align-items: center;
  max-width: 1000px;
}
.lt-cta img {
  width: 270px;
  height: auto;
}
.lt-cta h2 {
  margin-top: 17px;
}
.lt-cta p:not(.eyebrow) {
  font-size: 16px;
  color: #5c7584;
  margin-top: 22px;
}
.lt-cta .button {
  margin-top: 27px;
}
.lt-footer-note {
  padding-block: 25px;
  font-size: 11px;
  color: #7b8d98;
  line-height: 1.8;
  display: flex;
  align-items: center;
  gap: 45px;
}
.lt-footer-note a {
  white-space: nowrap;
  border-bottom: 1px solid #a7bac3;
}
@media (min-width: 721px) and (max-width: 1100px) {
  .lt-hero-grid {
    gap: 20px;
  }
  .lt-logo {
    width: 370px;
  }
  .lt-scene {
    min-height: 620px;
  }
  .lt-scene-orbit {
    width: 340px;
    height: 340px;
  }
  .lt-floating {
    font-size: 13px;
    padding: 10px 17px;
    gap: 16px;
  }
  .lt-feature {
    padding: 25px;
  }
  .lt-feature h3 {
    font-size: 18px;
  }
  .lt-support-grid,
  .lt-usecase-grid {
    gap: 45px;
  }
  .lt-timeline {
    gap: 15px;
  }
  .lt-timeline h3 {
    font-size: 17px;
  }
}
@media (max-width: 720px) {
  .ltsuna-page h2 {
    font-size: 26px;
  }
  .ltsuna-page [id] {
    scroll-margin-top: 90px;
  }
  .lt-mobile {
    display: block;
  }
  .lt-hero {
    padding: 28px 0 35px;
  }
  .lt-hero-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .lt-kicker {
    font-size: 11px;
  }
  .lt-logo {
    width: 340px;
    margin-left: -12px;
  }
  .lt-hero h1 {
    font-size: 28px;
    margin-top: 15px;
    line-height: 1.65;
  }
  .lt-lead {
    font-size: 15px;
    margin-top: 20px;
  }
  .lt-lead br:first-child {
    display: none;
  }
  .lt-pill-row {
    margin: 21px 0;
    gap: 8px;
  }
  .lt-pill-row span {
    font-size: 12px;
    padding: 5px 20px;
  }
  .lt-button {
    width: 100%;
    font-size: 13px;
    gap: 20px;
    padding-inline: 18px;
  }
  .lt-scene {
    min-height: 600px;
  }
  .lt-phone {
    width: 270px;
    transform: rotate(2deg);
  }
  .lt-scene-orbit {
    width: 290px;
    height: 290px;
    box-shadow: 0 0 0 20px #d9f1f43b;
  }
  .lt-floating {
    font-size: 12px;
    gap: 14px;
    padding: 10px 14px;
  }
  .lt-floating-one {
    top: 20px;
    left: 0;
  }
  .lt-floating-two {
    bottom: 18px;
    right: 0;
  }
  .lt-local-nav .wrap {
    gap: 25px;
    justify-content: flex-start;
  }
  .lt-local-nav a {
    font-size: 12px;
    padding: 17px 0;
  }
  .lt-concept-grid,
  .lt-support-grid,
  .lt-usecase-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .lt-concept-grid > div > p:not(.eyebrow) {
    font-size: 15px;
  }
  .lt-concept-steps {
    gap: 9px;
    padding: 20px 0;
  }
  .lt-concept-steps span {
    font-size: 19px;
  }
  .lt-concept-steps small {
    font-size: 10px;
  }
  .lt-section-head {
    margin-bottom: 28px;
  }
  .lt-section-head > p:last-child:not(.eyebrow) {
    font-size: 15px;
  }
  .lt-feature-grid {
    grid-template-columns: 1fr;
    gap: 17px;
  }
  .lt-feature {
    padding: 26px;
  }
  .lt-feature-top {
    margin-bottom: 20px;
  }
  .lt-feature h3 {
    font-size: 20px;
    margin-bottom: 14px;
  }
  .lt-feature p {
    font-size: 15px;
  }
  .lt-timeline {
    grid-template-columns: 1fr 1fr;
    gap: 24px 17px;
  }
  .lt-timeline > li > span {
    font-size: 13px;
    padding: 10px 15px;
  }
  .lt-timeline > li > div {
    padding: 20px 0 0 12px;
    margin-left: 5px;
  }
  .lt-timeline h3 {
    font-size: 17px;
    margin: 10px 0 12px;
  }
  .lt-timeline p {
    font-size: 13px;
  }
  .lt-timeline small {
    font-size: 10px;
  }
  .lt-fine {
    font-size: 11px;
    line-height: 1.9;
  }
  .lt-usecase-grid > div > p {
    font-size: 15px;
  }
  .lt-usecase-list p {
    font-size: 15px;
  }
  .lt-support-lead {
    font-size: 15px;
  }
  .lt-support-list p {
    font-size: 14px;
  }
  .lt-faq summary {
    font-size: 15px;
  }
  .lt-faq details > p {
    font-size: 14px;
  }
  .lt-cta {
    padding: 45px 0;
  }
  .lt-cta-inner {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .lt-cta img {
    width: 175px;
    margin: auto;
  }
  .lt-cta p:not(.eyebrow) {
    font-size: 15px;
  }
  .lt-footer-note {
    display: block;
    font-size: 10px;
  }
  .lt-footer-note a {
    display: inline-block;
    margin-top: 18px;
    font-size: 12px;
  }
}
/* Platinumaps: unpublished reseller service page */
.pm-page {
  --pm-purple: #5354a1;
  --pm-teal: #348e96;
  --pm-tint: #f4f5fa;
  --pm-line: #dfe4ee;
  color: var(--ink);
}
.pm-page h2 {
  font-size: clamp(28px, 2.9vw, 39px);
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: 0.015em;
}
.pm-page h3 {
  font-size: 21px;
  line-height: 1.7;
}
.pm-page .eyebrow {
  color: var(--pm-purple);
}
.pm-page [id] {
  scroll-margin-top: 115px;
}
.pm-hero {
  padding: 65px 0 75px;
  background: linear-gradient(125deg, #fff 28%, #f0f3fb 70%, #eaf6f2);
}
.pm-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1.12fr;
  gap: 55px;
  align-items: center;
}
.pm-kicker {
  color: #577187;
  font-size: 13px;
  margin-bottom: 27px;
}
.pm-logo {
  width: 305px;
  height: auto;
  max-width: 90%;
  margin-bottom: 31px;
}
.pm-hero h1 {
  font-size: clamp(32px, 3.1vw, 43px);
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0.005em;
  color: #1d3654;
}
.pm-lead {
  font-size: 17px;
  line-height: 2;
  margin-top: 27px;
  color: #587083;
}
.pm-role {
  font-size: 12px;
  line-height: 1.9;
  color: #6b7b8e;
  border-left: 2px solid #adb8d6;
  padding-left: 15px;
  margin: 24px 0;
}
.pm-button {
  background: var(--pm-purple);
  border-color: var(--pm-purple);
  border-radius: 5px;
  font-size: 14px;
}
.pm-button:hover {
  background: #353c7d;
}
.pm-map-art {
  position: relative;
  transform: rotate(-3deg);
  border: 10px solid white;
  border-radius: 31px;
  box-shadow: 0 25px 65px #23385c1c;
  margin: 20px 0 30px;
}
.pm-map-art svg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}
.pm-map-tag {
  position: absolute;
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #273658;
  border-radius: 20px;
  padding: 9px 18px;
  background: #fff;
  box-shadow: 0 5px 15px #2949581a;
  transform: rotate(3deg);
}
.pm-tag-one {
  top: 36%;
  left: 7%;
  color: #6257ba;
}
.pm-tag-two {
  top: 70%;
  left: 37%;
  color: #c17243;
}
.pm-tag-three {
  top: 47%;
  right: 2%;
  color: #268a80;
}
.pm-map-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -43px;
  text-align: center;
  font-size: 10px;
  color: #7b8c97;
  transform: rotate(3deg);
}
.pm-local-nav {
  border-block: 1px solid var(--pm-line);
}
.pm-local-nav .wrap {
  display: flex;
  justify-content: center;
  gap: 55px;
  overflow-x: auto;
  white-space: nowrap;
}
.pm-local-nav a {
  display: block;
  padding: 20px 0;
  font-size: 14px;
}
.pm-local-nav a:hover {
  color: var(--pm-purple);
}
.pm-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
  margin-bottom: 45px;
}
.pm-intro h2 {
  margin-top: 18px;
}
.pm-intro > p {
  font-size: 17px;
  color: #587083;
  line-height: 2.1;
}
.pm-use-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
.pm-use-grid article {
  border: 1px solid var(--pm-line);
  border-radius: 14px;
  overflow: hidden;
}
.pm-use-grid img {
  width: 100%;
  height: 255px;
  object-fit: contain;
  background: white;
}
.pm-use-grid article > div {
  padding: 26px 32px 30px;
  border-top: 1px solid #f1f3f6;
}
.pm-use-grid span {
  font-size: 12px;
  color: var(--pm-purple);
}
.pm-use-grid h3 {
  margin: 12px 0;
}
.pm-use-grid p {
  font-size: 15px;
  color: #607487;
  line-height: 2;
}
.pm-credit {
  font-size: 10px;
  text-align: right;
  color: #84909e;
  margin-top: 12px;
}
.pm-feature-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
  margin-top: 45px;
  padding-top: 35px;
  border-top: 1px solid var(--pm-line);
}
.pm-feature-strip > div {
  border-left: 2px solid #c4c8e4;
  padding-left: 23px;
}
.pm-feature-strip span {
  font-size: 12px;
  color: var(--pm-purple);
}
.pm-feature-strip h3 {
  font-size: 19px;
  margin: 10px 0;
}
.pm-feature-strip p {
  font-size: 14px;
  color: #64778a;
}
.pm-note {
  font-size: 12px;
  color: #718193;
  margin-top: 27px;
}
.pm-support-section {
  background: #243953;
  color: white;
}
.pm-support-section .eyebrow {
  color: #a4d5dc;
}
.pm-section-head h2 {
  margin-top: 18px;
}
.pm-section-head > p:last-child:not(.eyebrow) {
  font-size: 17px;
  color: #61758a;
  line-height: 2;
  margin-top: 23px;
}
.pm-support-section .pm-section-head > p:last-child {
  color: #d3dce7;
}
.pm-support-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 45px;
}
.pm-support-grid article {
  padding: 26px 22px;
  background: #ffffff0a;
  border-top: 2px solid #89b5c8;
  border-radius: 2px 2px 12px 12px;
}
.pm-support-grid b {
  font: 24px Arial;
  color: #93c2d7;
}
.pm-support-grid h3 {
  font-size: 19px;
  margin: 20px 0 16px;
}
.pm-support-grid p {
  font-size: 14px;
  color: #d3dce7;
  line-height: 2;
}
.pm-support-bottom {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 55px;
  padding-top: 32px;
  border-top: 1px solid #516278;
  margin-top: 35px;
}
.pm-support-bottom strong {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.9;
}
.pm-support-bottom p {
  font-size: 14px;
  color: #c7d6e4;
  line-height: 2;
}
.pm-case-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.pm-case-region {
  display: inline-block;
  color: var(--pm-purple);
  font-size: 13px;
  margin: 25px 0 12px;
}
.pm-case-title > p:not(.eyebrow) {
  color: #5c7388;
  font-size: 16px;
  line-height: 2;
  margin: 24px 0;
}
.pm-case-title .text-link {
  font-size: 13px;
}
.pm-case-panel {
  padding: 45px;
  border-radius: 18px;
  background: linear-gradient(140deg, #eff6f8, #f3f2fa);
  border: 1px solid #dfe7ee;
}
.pm-case-label {
  font: 11px Arial;
  letter-spacing: 0.14em;
  color: #657e96;
}
.pm-case-panel h3 {
  font-size: 25px;
  margin-top: 15px;
}
.pm-case-panel p {
  color: #6c7f91;
  font-size: 15px;
  margin-top: 20px;
  line-height: 2;
}
.pm-case-route {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 36px 0;
}
.pm-case-route i {
  font-style: normal;
  font-size: 28px;
  color: #4b77a5;
}
.pm-case-route i:nth-of-type(2) {
  color: #edac79;
}
.pm-case-route i:nth-of-type(3) {
  color: #5aa695;
}
.pm-case-route span {
  height: 0;
  border-top: 2px dashed #9ab1be;
  flex: 1;
  transform: rotate(-8deg);
}
.pm-case-panel small {
  display: block;
  color: #7f8d9e;
  font-size: 10px;
  margin-top: 15px;
}
.pm-pricing-section {
  background: var(--pm-tint);
}
.pm-cost-grid {
  display: grid;
  grid-template-columns: 1fr 40px 1fr;
  gap: 24px;
  margin-top: 40px;
  align-items: stretch;
}
.pm-cost-grid article {
  padding: 35px;
  background: white;
  border: 1px solid var(--pm-line);
  border-radius: 12px;
  position: relative;
}
.pm-cost-number {
  position: absolute;
  top: 24px;
  right: 24px;
  font: 32px Arial;
  color: #d2d7e6;
}
.pm-cost-label {
  font-size: 12px;
  color: #687d91;
  margin-bottom: 12px;
}
.pm-cost-grid h3 {
  font-size: 23px;
  margin-bottom: 20px;
  max-width: 90%;
}
.pm-cost-grid article > p:not(.pm-cost-label) {
  font-size: 15px;
  line-height: 2;
  color: #5b7389;
}
.pm-cost-grid .text-link {
  margin-top: 25px;
  font-size: 13px;
}
.pm-cost-grid small {
  display: block;
  font-size: 11px;
  line-height: 1.95;
  color: #788a9d;
  margin-top: 24px;
}
.pm-cost-grid article.pm-cost-support {
  border-top: 4px solid var(--pm-purple);
}
.pm-cost-grid .pm-estimate {
  color: var(--pm-purple) !important;
  font-weight: 600;
  font-size: 18px !important;
}
.pm-cost-grid ul {
  font-size: 14px;
  line-height: 2.2;
  color: #5b7389;
  padding-left: 22px;
  margin-top: 18px;
}
.pm-cost-plus {
  display: grid;
  place-items: center;
  color: #a1adc3;
  font-size: 25px;
}
.pm-total {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  margin-top: 32px;
  padding: 30px 0;
  border-block: 1px solid #d7dcea;
}
.pm-total h3 {
  font-size: 21px;
}
.pm-total p {
  font-size: 14px;
  line-height: 2;
  color: #5d7389;
}
.pm-faq .wrap {
  max-width: 1000px;
}
.pm-faq h2 {
  margin: 18px 0 35px;
}
.pm-faq details {
  border-top: 1px solid var(--pm-line);
}
.pm-faq details:last-child {
  border-bottom: 1px solid var(--pm-line);
}
.pm-faq summary {
  font-size: 16px;
  cursor: pointer;
  padding: 24px 38px 24px 0;
  list-style: none;
  position: relative;
}
.pm-faq summary::-webkit-details-marker {
  display: none;
}
.pm-faq summary:after {
  content: '＋';
  position: absolute;
  right: 0;
  top: 24px;
  color: var(--pm-purple);
}
.pm-faq details[open] summary:after {
  content: '−';
}
.pm-faq details p {
  font-size: 15px;
  color: #5d7389;
  padding: 0 30px 27px 0;
  line-height: 2;
}
.pm-cta {
  background: linear-gradient(100deg, #edf1fa, #edf7f4);
}
.pm-cta .wrap {
  display: flex;
  gap: 50px;
  align-items: center;
  justify-content: space-between;
}
.pm-cta h2 {
  margin: 18px 0 22px;
}
.pm-cta p:not(.eyebrow) {
  font-size: 16px;
  color: #627a8e;
  line-height: 2;
}
.pm-cta .button {
  flex: none;
}
.pm-footer-note {
  display: flex;
  gap: 40px;
  justify-content: space-between;
  align-items: center;
  padding-block: 30px;
}
.pm-footer-note p {
  font-size: 10px;
  color: #8090a0;
}
.pm-footer-note a {
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 1000px) {
  .pm-hero-grid {
    gap: 30px;
    grid-template-columns: 1fr 1fr;
  }
  .pm-hero h1 {
    font-size: 33px;
  }
  .pm-lead {
    font-size: 15px;
  }
  .pm-support-grid {
    grid-template-columns: 1fr 1fr;
  }
  .pm-case-grid {
    gap: 40px;
  }
  .pm-case-panel {
    padding: 30px;
  }
  .pm-case-panel h3 {
    font-size: 22px;
  }
}
@media (max-width: 720px) {
  .pm-hero {
    padding: 32px 0 55px;
  }
  .pm-hero-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .pm-kicker {
    font-size: 12px;
    margin-bottom: 22px;
  }
  .pm-logo {
    width: 270px;
    margin-bottom: 25px;
  }
  .pm-hero h1 {
    font-size: clamp(28px, 7.5vw, 34px);
    line-height: 1.75;
  }
  .pm-lead {
    font-size: 15px;
    margin-top: 24px;
  }
  .pm-desktop {
    display: none;
  }
  .pm-role {
    font-size: 11px;
  }
  .pm-button {
    font-size: 13px;
  }
  .pm-map-art {
    margin: 12px 7px 22px;
    border-width: 7px;
    border-radius: 24px;
  }
  .pm-map-tag {
    font-size: 10px;
    padding: 6px 10px;
  }
  .pm-map-caption {
    font-size: 8px;
    bottom: -36px;
    white-space: nowrap;
  }
  .pm-local-nav .wrap {
    justify-content: flex-start;
    gap: 28px;
  }
  .pm-local-nav a {
    font-size: 12px;
    padding: 18px 0;
  }
  .pm-intro {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 30px;
  }
  .pm-intro > p {
    font-size: 15px;
  }
  .pm-use-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .pm-use-grid img {
    height: 205px;
  }
  .pm-use-grid article > div {
    padding: 22px;
  }
  .pm-use-grid h3 {
    font-size: 20px;
  }
  .pm-use-grid p {
    font-size: 14px;
  }
  .pm-feature-strip {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-top: 30px;
    padding-top: 25px;
  }
  .pm-feature-strip h3 {
    font-size: 19px;
  }
  .pm-note {
    font-size: 11px;
  }
  .pm-section-head > p:last-child:not(.eyebrow) {
    font-size: 15px;
  }
  .pm-support-grid {
    grid-template-columns: 1fr;
    gap: 19px;
    margin-top: 30px;
  }
  .pm-support-grid article {
    padding: 23px;
  }
  .pm-support-grid h3 {
    margin: 12px 0;
  }
  .pm-support-bottom {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .pm-support-bottom strong {
    font-size: 19px;
  }
  .pm-case-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .pm-case-title > p:not(.eyebrow) {
    font-size: 15px;
  }
  .pm-case-panel {
    padding: 28px 23px;
  }
  .pm-case-panel h3 {
    font-size: 21px;
  }
  .pm-cost-grid {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 30px;
  }
  .pm-cost-grid article {
    padding: 27px 23px;
  }
  .pm-cost-grid h3 {
    font-size: 21px;
  }
  .pm-cost-number {
    font-size: 27px;
    top: 21px;
    right: 18px;
  }
  .pm-cost-grid .pm-estimate {
    font-size: 17px !important;
  }
  .pm-cost-grid small {
    font-size: 11px;
  }
  .pm-cost-plus {
    font-size: 23px;
  }
  .pm-total {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 25px 0;
  }
  .pm-total h3 {
    font-size: 20px;
  }
  .pm-faq summary {
    font-size: 15px;
  }
  .pm-faq details p {
    font-size: 14px;
  }
  .pm-cta .wrap {
    display: block;
  }
  .pm-cta p:not(.eyebrow) {
    font-size: 15px;
  }
  .pm-cta .button {
    margin-top: 28px;
  }
  .pm-footer-note {
    display: block;
  }
  .pm-footer-note a {
    display: inline-block;
    margin-top: 20px;
  }
}
/* Preventive care and gentle core fitness — unpublished detail */
.cf-page {
  --cf-green: #245c4d;
  --cf-light: #f2f6ee;
  --cf-cream: #f9f7f0;
  --cf-line: #dce6dc;
  --cf-muted: #5f756c;
  color: #243d35;
  font-size: 17px;
  letter-spacing: 0.025em;
}
.cf-page h2 {
  font-size: clamp(29px, 2.9vw, 40px);
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0.015em;
}
.cf-page h3 {
  font-size: 22px;
  line-height: 1.7;
  font-weight: 600;
}
.cf-page p {
  line-height: 2;
}
.cf-page .eyebrow {
  color: #527e64;
}
.cf-page [id] {
  scroll-margin-top: 120px;
}
.cf-hero {
  padding: 60px 0 70px;
  background: linear-gradient(115deg, #fcfbf7, #f2f6ef);
}
.cf-hero-grid {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
  gap: 45px;
  align-items: center;
}
.cf-kicker {
  font-size: 13px;
  color: #68816e;
  margin-bottom: 20px;
  letter-spacing: 0.09em;
}
.cf-hero h1 {
  font-size: clamp(35px, 3.2vw, 45px);
  font-weight: 600;
  line-height: 1.75;
  color: var(--cf-green);
  letter-spacing: 0.025em;
}
.cf-hero h1 > span {
  display: block;
  font-size: 17px;
  letter-spacing: 0.08em;
  margin-bottom: 24px;
}
.cf-mobile {
  display: none;
}
.cf-lead {
  font-size: 17px;
  color: #61796e;
  margin-top: 26px;
}
.cf-hero-actions {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 20px;
  margin-top: 30px;
}
.cf-button {
  background: var(--cf-green);
  border-color: var(--cf-green);
  border-radius: 5px;
  font-size: 15px;
}
.cf-button:hover {
  background: #173f34;
}
.cf-secondary {
  font-size: 14px;
  color: #426e5e;
  border-bottom: 1px solid #a6bfae;
  padding-bottom: 3px;
  display: inline-block;
}
.cf-secondary:hover {
  color: #123b2b;
}
.cf-hero-visual {
  position: relative;
  margin: 0;
  padding: 10px 0 20px;
}
.cf-hero-visual img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.23;
  object-fit: cover;
  object-position: 52% 50%;
  border-radius: 80px 16px 80px 16px;
  box-shadow: 0 15px 35px #244c3412;
}
.cf-hero-visual figcaption {
  font-size: 10px;
  color: #7b8b7c;
  text-align: right;
  margin-top: 12px;
}
.cf-visual-note {
  position: absolute;
  left: -25px;
  bottom: 32px;
  border: 1px solid #e7ebde;
  background: #fffdf7f2;
  padding: 18px 25px;
  border-radius: 16px;
  box-shadow: 0 8px 25px #324f3110;
}
.cf-visual-note span {
  font-size: 13px;
  display: block;
  color: #7c8c79;
}
.cf-visual-note strong {
  display: block;
  font-size: 21px;
  font-weight: 500;
  color: var(--cf-green);
  margin-top: 3px;
}
.cf-quickfacts {
  background: var(--cf-green);
  color: white;
}
.cf-quickfacts .wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding-block: 22px;
}
.cf-quickfacts p {
  font-size: 15px;
  text-align: center;
  border-right: 1px solid #ffffff33;
}
.cf-quickfacts p:last-child {
  border: 0;
}
.cf-quickfacts span {
  font-size: 11px;
  display: inline-block;
  margin-right: 20px;
  color: #c4d8c6;
}
.cf-local-nav {
  border-bottom: 1px solid var(--cf-line);
}
.cf-local-nav .wrap {
  display: flex;
  justify-content: center;
  gap: 50px;
  overflow-x: auto;
  white-space: nowrap;
}
.cf-local-nav a {
  padding: 21px 0;
  font-size: 14px;
}
.cf-local-nav a:hover {
  color: #4c8e67;
}
.cf-about-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 85px;
}
.cf-about h2 {
  margin-top: 20px;
}
.cf-about-copy > p {
  font-size: 17px;
  color: var(--cf-muted);
}
.cf-about-copy .cf-large-copy {
  font-size: 23px;
  line-height: 1.9;
  color: var(--cf-green);
  margin-bottom: 25px;
}
.cf-definition {
  border-top: 1px solid var(--cf-line);
  margin-top: 30px;
  padding-top: 25px;
}
.cf-definition h3 {
  font-size: 18px;
  margin-bottom: 13px;
}
.cf-definition p {
  font-size: 15px;
  color: var(--cf-muted);
}
.cf-definition a {
  display: inline-block;
  font-size: 11px;
  line-height: 1.9;
  color: #6d8773;
  margin-top: 15px;
  text-decoration: underline;
}
.cf-program {
  background: var(--cf-light);
}
.cf-section-head h2 {
  margin-top: 18px;
}
.cf-section-head > p:last-child:not(.eyebrow) {
  font-size: 17px;
  color: var(--cf-muted);
  margin-top: 24px;
  max-width: 900px;
}
.cf-program-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-top: 45px;
}
.cf-program-grid article {
  padding: 28px;
  background: #fffdf8;
  border: 1px solid var(--cf-line);
  border-radius: 16px;
}
.cf-program-icon {
  width: 105px;
  height: 105px;
  background: #edf3e9;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-bottom: 23px;
}
.cf-program-icon svg {
  width: 78px;
  height: 78px;
  fill: none;
  stroke: #4e7a5f;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cf-program-icon .cf-icon-accent {
  stroke: #a3b46b;
}
.cf-step-label {
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #7d936b;
}
.cf-program-grid h3 {
  font-size: 21px;
  margin: 13px 0 18px;
}
.cf-program-grid p {
  font-size: 16px;
  line-height: 2;
  color: var(--cf-muted);
}
.cf-comfort {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 35px;
  padding: 28px 0;
  border-block: 1px solid #cad9c5;
}
.cf-comfort strong {
  font-size: 19px;
  line-height: 1.9;
  font-weight: 500;
}
.cf-comfort p {
  font-size: 15px;
  color: var(--cf-muted);
}
.cf-guide-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 65px;
  align-items: center;
  margin-bottom: 45px;
}
.cf-guide-head h2 {
  margin-top: 18px;
}
.cf-guide-head > p {
  font-size: 17px;
  color: var(--cf-muted);
}
.cf-guide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
.cf-location {
  background: var(--cf-green);
  color: white;
  padding: 40px;
  border-radius: 16px;
}
.cf-location-tag {
  display: block;
  font-size: 12px;
  letter-spacing: 0.07em;
  color: #9cbca4;
  margin-bottom: 20px;
}
.cf-location h3 {
  font-size: 29px;
  margin-bottom: 10px;
}
.cf-location h3 span {
  font-size: 19px;
  white-space: nowrap;
}
.cf-location > p:not(.cf-small-note) {
  font-size: 15px;
  color: #d1dfd3;
}
.cf-location dl {
  display: grid;
  grid-template-columns: 90px 1fr;
  border-top: 1px solid #ffffff33;
  margin: 30px 0 0;
}
.cf-location dt,
.cf-location dd {
  font-size: 16px;
  line-height: 1.9;
  margin: 0;
  padding: 15px 0;
  border-bottom: 1px solid #ffffff2a;
}
.cf-location dt {
  font-size: 12px;
  color: #b3cbb8;
}
.cf-location .cf-small-note {
  color: #bfcebf;
}
.cf-small-note {
  font-size: 12px;
  line-height: 1.95;
  margin-top: 22px;
  color: #7b8b78;
}
.cf-participate {
  padding: 38px 32px;
  border: 1px solid var(--cf-line);
  border-radius: 16px;
  background: #fffdf8;
}
.cf-participate .cf-location-tag {
  color: #7c9569;
  margin-bottom: 12px;
}
.cf-participate h3 {
  font-size: 27px;
  margin-bottom: 20px;
}
.cf-participate > p:not(.cf-small-note) {
  font-size: 16px;
  color: var(--cf-muted);
}
.cf-participate .button {
  margin-top: 26px;
  font-size: 14px;
}
.cf-next-dates {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--cf-line);
}
.cf-next-dates > span {
  font-size: 12px;
  color: #7c916a;
}
.cf-next-dates > p {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.cf-next-dates strong {
  font-size: 18px;
  font-weight: 500;
  white-space: nowrap;
}
.cf-next-dates small {
  font-size: 11px;
  line-height: 1.9;
  display: block;
  color: #84937c;
  margin-top: 12px;
}
.cf-partnership {
  background: var(--cf-cream);
}
.cf-partnership-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.cf-partnership h2 {
  margin-top: 20px;
}
.cf-partnership-grid > div > p:not(.eyebrow) {
  font-size: 17px;
  color: var(--cf-muted);
  margin-top: 22px;
}
.cf-partnership .button {
  margin-top: 30px;
}
.cf-community-panel {
  background: #fffdf7;
  border: 1px solid #e3e8da;
  padding: 30px;
  border-radius: 20px;
}
.cf-community-panel > span {
  font-size: 13px;
  color: #879773;
  display: block;
  margin-bottom: 14px;
}
.cf-community-panel > div {
  padding: 24px 0 24px 46px;
  position: relative;
  border-top: 1px solid #e0e7d8;
}
.cf-community-panel b {
  font: 19px Arial;
  color: #a0b280;
  position: absolute;
  left: 0;
  top: 30px;
}
.cf-community-panel h3 {
  font-size: 20px;
}
.cf-community-panel p {
  font-size: 15px;
  color: var(--cf-muted);
  margin-top: 12px;
}
.cf-faq .wrap {
  max-width: 1000px;
}
.cf-faq h2 {
  margin: 18px 0 35px;
}
.cf-faq details {
  border-top: 1px solid var(--cf-line);
}
.cf-faq details:last-child {
  border-bottom: 1px solid var(--cf-line);
}
.cf-faq summary {
  font-size: 17px;
  line-height: 1.9;
  padding: 25px 36px 25px 0;
  position: relative;
  cursor: pointer;
  list-style: none;
}
.cf-faq summary::-webkit-details-marker {
  display: none;
}
.cf-faq summary:after {
  content: '＋';
  position: absolute;
  right: 0;
  top: 25px;
  color: #638958;
}
.cf-faq details[open] summary:after {
  content: '−';
}
.cf-faq details > p {
  font-size: 16px;
  color: var(--cf-muted);
  padding: 0 25px 27px 0;
}
.cf-cta {
  background: linear-gradient(110deg, #edf4e9, #faf8ed);
  text-align: center;
}
.cf-cta .eyebrow {
  justify-content: center;
}
.cf-cta h2 {
  margin: 20px 0 24px;
}
.cf-cta p:not(.eyebrow) {
  font-size: 17px;
  color: var(--cf-muted);
}
.cf-cta .wrap > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-top: 30px;
}
.cf-footer-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-block: 30px;
}
.cf-footer-note p {
  font-size: 11px;
  max-width: 700px;
  color: #7f8e80;
}
.cf-footer-note a {
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .cf-hero-grid {
    gap: 30px;
    grid-template-columns: 1fr 1fr;
  }
  .cf-hero h1 {
    font-size: 34px;
  }
  .cf-hero h1 > span {
    font-size: 15px;
  }
  .cf-lead {
    font-size: 16px;
  }
  .cf-about-grid {
    gap: 45px;
  }
  .cf-program-grid article {
    padding: 24px;
  }
  .cf-program-grid h3 {
    font-size: 19px;
  }
  .cf-program-grid p {
    font-size: 15px;
  }
  .cf-guide-grid {
    gap: 20px;
  }
  .cf-location {
    padding: 30px;
  }
  .cf-participate {
    padding: 30px;
  }
  .cf-partnership-grid {
    gap: 40px;
  }
}
@media (max-width: 720px) {
  .cf-page {
    font-size: 16px;
  }
  .cf-hero {
    padding: 30px 0 35px;
  }
  .cf-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cf-kicker {
    font-size: 12px;
    margin-bottom: 15px;
  }
  .cf-hero h1 {
    font-size: 32px;
    line-height: 1.7;
  }
  .cf-hero h1 > span {
    font-size: 15px;
    margin-bottom: 21px;
    letter-spacing: 0.04em;
  }
  .cf-mobile {
    display: initial;
  }
  .cf-desktop {
    display: none;
  }
  .cf-lead {
    font-size: 16px;
    margin-top: 23px;
  }
  .cf-hero-actions {
    gap: 18px;
    margin-top: 25px;
  }
  .cf-button {
    font-size: 15px;
  }
  .cf-secondary {
    font-size: 13px;
  }
  .cf-hero-visual {
    padding: 10px 0 35px;
  }
  .cf-hero-visual img {
    border-radius: 45px 12px 45px 12px;
    aspect-ratio: 1.25;
  }
  .cf-hero-visual figcaption {
    font-size: 9px;
  }
  .cf-visual-note {
    left: -4px;
    bottom: 27px;
    padding: 12px 18px;
  }
  .cf-visual-note span {
    font-size: 11px;
  }
  .cf-visual-note strong {
    font-size: 18px;
  }
  .cf-quickfacts .wrap {
    grid-template-columns: 1fr;
    padding-block: 13px;
  }
  .cf-quickfacts p {
    font-size: 14px;
    border-right: 0;
    display: flex;
    align-items: baseline;
    text-align: left;
    padding: 4px 0;
    gap: 20px;
  }
  .cf-quickfacts span {
    font-size: 11px;
    min-width: 32px;
    margin: 0;
  }
  .cf-local-nav .wrap {
    justify-content: flex-start;
    gap: 28px;
  }
  .cf-local-nav a {
    font-size: 12px;
    padding: 17px 0;
  }
  .cf-about-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cf-about-copy > p {
    font-size: 16px;
  }
  .cf-about-copy .cf-large-copy {
    font-size: 21px;
    margin-bottom: 20px;
  }
  .cf-definition p {
    font-size: 15px;
  }
  .cf-definition a {
    font-size: 11px;
  }
  .cf-section-head > p:last-child:not(.eyebrow) {
    font-size: 16px;
  }
  .cf-program-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 30px;
  }
  .cf-program-grid article {
    padding: 26px;
  }
  .cf-program-grid h3 {
    font-size: 21px;
  }
  .cf-program-grid p {
    font-size: 16px;
  }
  .cf-program-icon {
    width: 90px;
    height: 90px;
    margin-bottom: 20px;
  }
  .cf-program-icon svg {
    width: 69px;
    height: 69px;
  }
  .cf-comfort {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 25px 0;
  }
  .cf-comfort strong {
    font-size: 19px;
  }
  .cf-comfort p {
    font-size: 15px;
  }
  .cf-guide-head {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 30px;
  }
  .cf-guide-head > p {
    font-size: 16px;
  }
  .cf-guide-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .cf-location {
    padding: 29px 23px;
  }
  .cf-location h3 {
    font-size: 25px;
  }
  .cf-location h3 span {
    display: block;
    font-size: 18px;
    margin-top: 5px;
  }
  .cf-location > p:not(.cf-small-note) {
    font-size: 14px;
  }
  .cf-location dl {
    grid-template-columns: 72px 1fr;
  }
  .cf-location dd {
    font-size: 15px;
  }
  .cf-participate {
    padding: 27px 23px;
  }
  .cf-participate h3 {
    font-size: 26px;
  }
  .cf-participate .button {
    font-size: 14px;
    padding: 17px 19px;
    width: 100%;
  }
  .cf-next-dates > p {
    gap: 8px;
    display: block;
  }
  .cf-next-dates strong {
    font-size: 18px;
    display: block;
    margin-top: 5px;
  }
  .cf-partnership-grid {
    grid-template-columns: 1fr;
    gap: 33px;
  }
  .cf-partnership-grid > div > p:not(.eyebrow) {
    font-size: 16px;
  }
  .cf-community-panel {
    padding: 26px 22px;
  }
  .cf-community-panel h3 {
    font-size: 19px;
  }
  .cf-community-panel p {
    font-size: 15px;
  }
  .cf-faq summary {
    font-size: 16px;
  }
  .cf-faq details > p {
    font-size: 15px;
    padding-right: 8px;
  }
  .cf-cta {
    text-align: left;
  }
  .cf-cta .eyebrow {
    justify-content: flex-start;
  }
  .cf-cta p:not(.eyebrow) {
    font-size: 16px;
  }
  .cf-cta h2 {
    font-size: 29px;
  }
  .cf-cta .wrap > div {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 22px;
  }
  .cf-footer-note {
    display: block;
  }
  .cf-footer-note a {
    display: inline-block;
    margin-top: 20px;
  }
}
/* Six-service navigation: compact on the home page, detailed in the catalog. */
.catalog-teal {
  --catalog-color: #008b94;
}
.catalog-purple {
  --catalog-color: #635bb5;
}
.catalog-green {
  --catalog-color: #245c4d;
}
.catalog-logo-l-tsuna {
  max-width: 310px;
}
.catalog-logo-l-tsuna img {
  max-height: 125px;
}
.catalog-logo-platinumaps {
  max-width: 275px;
}
.catalog-logo-platinumaps img {
  max-height: 60px;
}
.catalog-service-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
}
.catalog-green .catalog-art:after {
  display: none;
}
.catalog-green .catalog-art-label {
  background: #ffffffdb;
  padding: 5px 10px;
  border-radius: 4px;
  font-size: 9px;
}
.catalog-purple .catalog-logo-window img,
.catalog-teal .catalog-logo-window img {
  mix-blend-mode: normal;
}
.service-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.service-teaser {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid #dce5e9;
  border-radius: 10px;
  padding: 23px;
  background: #fff;
  min-width: 0;
  transition:
    box-shadow 0.2s,
    transform 0.2s;
}
.service-teaser:hover {
  box-shadow: 0 9px 25px #10294312;
  transform: translateY(-2px);
}
.teaser-art {
  height: 56px;
  width: 180px;
  max-width: 85%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 19px;
  overflow: hidden;
}
.teaser-art img {
  width: 100%;
  max-height: 56px;
  object-fit: contain;
  object-position: left center;
}
.teaser-art-canly-meo-agent {
  width: 153px;
}
.teaser-art-canly-meo-agent img {
  max-height: 34px;
}
.teaser-art-chappy-ads {
  width: 190px;
}
.teaser-art-chappy-ads img {
  width: 108.06%;
  max-height: none;
  flex: none;
  object-fit: initial;
}
.teaser-art-l-tsuna {
  width: 180px;
}
.teaser-art-platinumaps {
  width: 190px;
}
.teaser-art-preventive-care-fitness {
  width: 83px;
  border-radius: 7px;
}
.teaser-art-preventive-care-fitness img {
  height: 56px;
  object-fit: cover;
  object-position: 50% 40%;
}
.teaser-category {
  font-size: 11px;
  color: #638292;
  line-height: 1.75;
  margin-bottom: 6px;
}
.service-teaser h3 {
  font-size: 19px;
  line-height: 1.65;
  font-weight: 600;
}
.teaser-lead {
  font-size: 13px;
  color: #667b8b;
  line-height: 1.9;
  margin-top: 8px;
  margin-bottom: 18px;
}
.teaser-more {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: #305d78;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #e5ebef;
}
.teaser-more .arrow {
  font-size: 20px;
}
.service-teaser-section .section-head {
  margin-bottom: 35px;
}
@media (max-width: 1000px) {
  .service-teaser {
    padding: 20px;
  }
  .service-teaser h3 {
    font-size: 17px;
  }
  .teaser-art {
    max-width: 95%;
  }
}
@media (max-width: 720px) {
  .service-teaser-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .service-teaser {
    padding: 16px 13px;
    border-radius: 8px;
  }
  .teaser-art {
    height: 40px;
    width: 125px;
    max-width: 100%;
    margin-bottom: 14px;
  }
  .teaser-art img {
    max-height: 40px;
  }
  .teaser-art-canly-meo-agent img {
    max-height: 25px;
  }
  .teaser-art-chappy-ads img {
    max-height: none;
  }
  .teaser-art-preventive-care-fitness {
    width: 59px;
  }
  .teaser-art-preventive-care-fitness img {
    height: 40px;
  }
  .teaser-category {
    font-size: 10px;
    line-height: 1.7;
    margin-bottom: 6px;
  }
  .service-teaser h3 {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: 0;
  }
  .teaser-lead {
    font-size: 11px;
    line-height: 1.85;
    margin-top: 8px;
    margin-bottom: 13px;
  }
  .teaser-more {
    font-size: 10px;
    padding-top: 9px;
  }
  .teaser-more .arrow {
    font-size: 17px;
  }
  .catalog-logo-l-tsuna {
    max-width: 295px;
  }
  .catalog-logo-platinumaps {
    max-width: 260px;
  }
}

/* News: data-driven announcements, readable articles, and a compact homepage feed. */
.home-news {
  padding-block: 76px;
  border-bottom: 1px solid var(--line);
}
.home-news-inner {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 70px;
  align-items: start;
}
.home-news-heading .section-title {
  font-size: 29px;
}
.home-news-heading .text-link {
  margin-top: 26px;
}
.news-rows {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.news-rows li {
  border-bottom: 1px solid var(--line);
}
.news-row {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr) 22px;
  gap: 18px;
  align-items: center;
  padding: 25px 0;
  min-height: 110px;
}
.news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  font-size: 13px;
  color: var(--muted);
}
.news-meta time {
  font-family: Arial, sans-serif;
  font-size: 14px;
  letter-spacing: 0.07em;
}
.news-category {
  display: inline-block;
  border: 1px solid #cfdae3;
  border-radius: 3px;
  padding: 3px 9px;
  font-size: 12px;
  color: var(--blue);
  line-height: 1.6;
}
.news-row-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.85;
}
.news-row-arrow {
  font-size: 23px;
  color: var(--blue);
  transition: transform 0.2s;
}
.news-row:hover .news-row-title,
.news-card a:hover h2 {
  color: var(--blue);
}
.news-row:hover .news-row-arrow {
  transform: translate(2px, -2px);
}
.news-index-heading p:last-child {
  max-width: 730px;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.news-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: white;
}
.news-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.news-cover {
  height: 205px;
  background: #edf4f8;
  overflow: hidden;
}
.news-cover > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-cover-chappy {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #eef9fc, #f6f8fc);
}
.news-logo-window {
  position: relative;
  width: 80%;
  max-width: 510px;
  aspect-ratio: 1340 / 460;
  overflow: hidden;
}
.news-logo-window img {
  position: absolute;
  width: 108.06%;
  max-width: none;
  height: auto;
  left: -4.48%;
  top: -67.39%;
  mix-blend-mode: multiply;
}
.news-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 17px;
  padding: 26px;
}
.news-card h2 {
  font-size: 21px;
  line-height: 1.8;
  letter-spacing: 0.015em;
}
.news-card-body > p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.95;
}
.news-read-more {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 20px;
  margin-top: auto;
  font-size: 14px;
  font-weight: 600;
  color: var(--blue);
}
.news-read-more span {
  font-size: 23px;
}
.news-article {
  padding: 55px 0 90px;
}
.news-article-header {
  max-width: 1000px;
}
.news-article-header h1 {
  margin-top: 25px;
  font-size: 38px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.025em;
}
.news-deck {
  font-size: 20px;
  color: var(--muted);
  margin-top: 24px;
  line-height: 1.9;
}
.news-updated {
  font-size: 13px;
  color: var(--muted);
  margin-top: 18px;
}
.news-article-visual {
  max-width: 1000px;
  margin-top: 36px;
  margin-bottom: 50px;
}
.news-article-visual .news-cover {
  height: 340px;
  border-radius: 10px;
}
.news-body,
.news-article-bottom {
  max-width: 820px;
}
.news-body {
  font-size: 17px;
  line-height: 2.1;
}
.news-body p + p {
  margin-top: 22px;
}
.news-body .news-intro {
  font-size: 19px;
  font-weight: 500;
}
.news-body h2 {
  font-size: 25px;
  font-weight: 600;
  line-height: 1.8;
  margin: 48px 0 20px;
  padding-left: 18px;
  border-left: 3px solid var(--blue);
}
.news-body ul,
.news-body ol {
  padding-left: 1.5em;
  margin: 24px 0;
}
.news-body li + li {
  margin-top: 12px;
}
.news-body a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 5px;
}
.news-inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
  margin-top: 28px;
}
.news-callout {
  padding: 27px 30px;
  margin: 34px 0;
  background: var(--paper);
  border-radius: 8px;
}
.news-callout h3 {
  font-size: 20px;
  margin-bottom: 12px;
}
.news-body .news-note {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.9;
  margin-top: 30px;
}
.news-publisher {
  margin-top: 40px;
  font-size: 14px;
  color: var(--muted);
}
.news-publisher a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.news-article-cta {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 28px;
  margin: 34px 0;
}
.news-article-cta > p {
  font-weight: 600;
  margin-bottom: 20px;
}
.news-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.news-cta-buttons .button {
  font-size: 14px;
  gap: 20px;
  min-width: 0;
}
.news-related {
  margin-top: 65px;
}
.news-related h2 {
  font-size: 21px;
  margin-bottom: 25px;
}
@media (max-width: 1100px) {
  .home-news-inner {
    grid-template-columns: 255px minmax(0, 1fr);
    gap: 40px;
  }
  .news-row {
    grid-template-columns: minmax(0, 1fr) 22px;
    gap: 12px;
  }
  .news-row .news-meta {
    grid-column: 1 / -1;
  }
  .news-row-arrow {
    grid-column: 2;
    grid-row: 2;
  }
  .news-grid {
    gap: 20px;
  }
  .news-card-body {
    padding: 22px;
  }
  .news-card h2 {
    font-size: 19px;
  }
}
@media (max-width: 720px) {
  .home-news {
    padding-block: 52px;
  }
  .home-news-inner {
    display: block;
  }
  .home-news-heading {
    margin-bottom: 30px;
  }
  .home-news-heading .section-title {
    font-size: 25px;
  }
  .home-news-heading .text-link {
    margin-top: 14px;
  }
  .news-row {
    padding-block: 22px;
    min-height: 0;
  }
  .news-row-title {
    font-size: 16px;
  }
  .news-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .news-card h2 {
    font-size: 20px;
  }
  .news-card-body {
    padding: 24px;
  }
  .news-cover {
    height: 195px;
  }
  .news-article {
    padding-top: 28px;
    padding-bottom: 60px;
  }
  .news-article-header h1 {
    font-size: 27px;
    line-height: 1.7;
    margin-top: 22px;
  }
  .news-deck {
    font-size: 17px;
    margin-top: 20px;
  }
  .news-article-visual {
    margin-block: 28px 32px;
  }
  .news-article-visual .news-cover {
    height: 210px;
  }
  .news-body {
    font-size: 16px;
    line-height: 2.05;
  }
  .news-body .news-intro {
    font-size: 17px;
  }
  .news-body h2 {
    font-size: 21px;
    padding-left: 13px;
    margin-top: 36px;
  }
  .news-callout {
    padding: 23px;
  }
  .news-callout h3 {
    font-size: 18px;
  }
  .news-article-cta {
    padding: 23px;
  }
  .news-cta-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .news-cta-buttons .button {
    width: 100%;
    font-size: 13px;
    padding-inline: 18px;
  }
}
