/* v32: concise content, product selection and direct enquiries. */
.content-v32 .section { padding-block: 64px; }
.content-v32 .section-intro { margin-bottom: 36px; gap: 32px; }
.content-v32 .section-intro h2 { font-size: 40px; line-height: 1.18; }
.content-v32 .section-copy { font-size: 18px; line-height: 1.6; }
.content-v32 .hero,
.content-v32 .hero-inner { min-height: 0; }
.content-v32 .hero-inner { padding-block: 52px 60px; }
.content-v32 .hero h1 { max-width: 900px; font-size: 56px; }
.content-v32 .hero-lead { max-width: 780px; font-size: 20px; }
.content-v32 .hero .partner-lockup__logo { width: 64px; height: 64px; flex-basis: 64px; }
.content-v32 .page-hero:not(.product-detail-hero) .shell { min-height: 0; padding-block: 64px; }
.content-v32 .page-hero:not(.product-detail-hero) h1 { font-size: 52px; }
.content-v32 .why-card,
.content-v32 .process-card { min-height: 0; padding: 24px 0; border: 0; border-top: 1px solid #bed2da; background: transparent; box-shadow: none; transform: none !important; }
.content-v32 .why-card::after { display: none; }
.content-v32 .why-card h3 { font-size: 24px; }
.content-v32 .why-card > img { margin-bottom: 22px; box-shadow: none; border-radius: 4px; }
.content-v32 .why-card h3,
.content-v32 .why-card p,
.content-v32 .why-card > img { transform: none !important; }
.content-v32 .process-card h3 { margin: 40px 0 14px; }
.content-v32 .process-card .step { font-size: 22px; }
.content-v32 .process-card .process-icon { top: 20px; right: 0; }
.content-v32 .product-card__media { height: 230px; min-height: 0; }
.content-v32 .product-card__body { padding: 24px; }
.content-v32 .product-card h3 { font-size: 26px; }
.content-v32 .product-card p { font-size: 16px; line-height: 1.55; }
.content-v32 .usecase { min-height: 0; }
.content-v32 .usecase h3 { margin-top: 65px; }
.catalog-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 28px; padding-top: 22px; border-top: 1px solid #bed2da; }
.catalog-links a { display: inline-flex; gap: 18px; align-items: center; font-weight: 600; }
.catalog-links a:hover { text-decoration: underline; }
.content-v32 .cta-section { padding-block: 48px; background: #006889; }
.content-v32 .cta-panel { min-height: 0; padding: 0; align-items: center; gap: 48px; border-radius: 0; background: transparent; }
.content-v32 .cta-panel::after { display: none; }
.content-v32 .cta-panel h2 { font-size: 40px; line-height: 1.18; }
.content-v32 .cta-info > p { font-size: 18px; margin-bottom: 22px; }

.product-v32 .product-detail-hero { color: #003b50; background: #f4f8fa; border-bottom: 1px solid #c9dbe2; }
.product-v32 .product-detail-hero .shell { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; min-height: 0; padding-block: 48px; text-align: left; }
.product-v32 .product-detail-hero h1 { margin: 18px 0; font-size: 48px; line-height: 1.15; }
.product-v32 .product-detail-hero .page-lead { color: #49616b; font-size: 19px; line-height: 1.6; }
.product-v32 .product-detail-hero .breadcrumb { justify-content: flex-start; color: #49616b; }
.product-v32 .product-detail-hero .hero-actions { justify-content: flex-start; gap: 14px; margin-top: 24px; }
.product-v32 .product-detail-hero .button--ghost { color: #00506c; border-color: #00506c; background: transparent; }
.product-v32 .product-detail-hero .button--ghost:hover { color: #fff; background: #00506c; }
.product-v32 .product-detail-hero .partner-lockup { margin: 20px 0 0; }
.product-v32 .product-detail-visual { min-height: 0; height: 350px; background: transparent; }
.product-v32 .product-detail-visual img { height: 340px; min-height: 0; width: 100%; object-fit: contain; }
.product-v32 .product-detail-visual > span { color: #fff; background: #00506c; border-color: #00506c; }
.product-v32 .product-detail-visual::before,
.product-v32 .product-detail-visual::after { display: none; }
.product-v32 .product-facts-section { padding-block: 36px; }
.product-v32 .product-source-note { margin-bottom: 24px; }
.product-v32 .product-facts-section .section-intro,
.product-v32 .product-use-section .section-intro { display: block; margin-bottom: 24px; }
.product-v32 .product-fact-grid { gap: 0; border-block: 1px solid #bed2da; }
.product-v32 .product-fact-grid > div { padding: 22px; border: 0; border-right: 1px solid #bed2da; border-radius: 0; background: transparent; }
.product-v32 .product-fact-grid > div:last-child { border-right: 0; }
.product-v32 .product-fact-grid strong { font-size: 24px; }
.product-v32 .product-fact-grid span { color: #49616b; }
.product-v32 .product-fact-grid > div { transform: none !important; box-shadow: none !important; }
.product-decision { margin: 0; border-top: 1px solid #bed2da; }
.product-decision > div { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; padding-block: 26px; border-bottom: 1px solid #bed2da; }
.product-decision dt { font-size: 18px; font-weight: 700; }
.product-decision dd { margin: 0; max-width: 840px; }
.product-decision p { margin: 0; font-size: 18px; line-height: 1.65; color: #49616b; }
.decision-link { display: inline-flex; align-items: center; gap: 18px; margin-top: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.product-v32 .product-service-layout { gap: 64px; }
.product-v32 .product-service-layout > div:first-child h2 { font-size: 36px; }
.product-v32 .product-service-layout > div:first-child p { font-size: 18px; color: #e0edf2; }
.product-v32 .product-planning-card { color: white; padding: 0; border-radius: 0; background: transparent; }
.product-v32 .product-planning-card > strong { margin: 18px 0; font-size: 26px; }
.product-v32 .product-planning-card li,
.product-v32 .product-planning-card small { color: #e0edf2; }
.product-v32 .product-planning-card li img { filter: brightness(0) invert(1); }
.product-v32 .related-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.product-v32 .related-product-card { display: grid; grid-template-columns: 130px minmax(0, 1fr); grid-template-rows: 1fr auto; column-gap: 24px; min-height: 180px; padding: 24px; }
.product-v32 .related-product-card > img { grid-row: 1 / 3; width: 130px; height: 130px; margin: 0; object-fit: contain; }
.product-v32 .related-product-card > strong { margin: auto 0 0; font-size: 24px; line-height: 1.2; }
.product-v32 .related-product-card > small { grid-column: 2; margin-top: 16px; font-size: 13px; }
.product-v32 .cta-panel { min-height: 0; padding-block: 0; }
.product-v32 .cta-panel h2 { font-size: 36px; }
.product-v32 .product-detail-faq .section-intro h2 { font-size: 36px; }

.contact-section { padding-block: 48px 64px; background: #f4f8fa; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: 64px; }
.contact-copy h1 { font-size: 44px; line-height: 1.15; margin: 18px 0 22px; }
.contact-copy > p { max-width: 440px; color: #49616b; font-size: 19px; line-height: 1.6; }
.contact-copy h2 { margin: 0 0 14px; font-size: 18px; }
.contact-details { display: grid; gap: 10px; margin-top: 34px; }
.contact-details a { width: fit-content; max-width: 100%; overflow-wrap: anywhere; color: #00506c; font-size: 20px; font-weight: 600; }
.contact-details a:hover { text-decoration: underline; }
.contact-locations { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 34px; }
.contact-locations h2 { grid-column: 1 / -1; margin: 0; }
.contact-locations p { margin: 0; font-size: 16px; color: #49616b; }
.contact-partner { width: 80px; height: 80px; object-fit: contain; margin-top: 32px; border-radius: 4px; }
.inquiry-form { min-width: 0; padding: 30px; background: #fff; border: 1px solid #c9dbe2; border-radius: 6px; }
.inquiry-form h2 { font-size: 26px; margin: 0 0 6px; }
.form-required { color: #49616b; margin: 0 0 24px; font-size: 14px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-field { display: flex; min-width: 0; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.form-grid .form-field { margin-bottom: 0; }
.form-grid + .form-field { margin-top: 20px; }
.form-field label { color: #003b50; font-size: 15px; font-weight: 600; }
.form-field input,
.form-field select,
.form-field textarea { width: 100%; min-width: 0; max-width: 100%; padding: 11px 12px; border: 1px solid #809eaa; border-radius: 4px; color: #003b50; background: white; font: inherit; font-size: 16px; line-height: 1.4; }
.form-field input,
.form-field select { min-height: 46px; }
.form-field textarea { min-height: 142px; resize: vertical; }
.form-field :focus-visible { outline: 3px solid #007c9e; outline-offset: 2px; }
.form-field [aria-invalid="true"] { border-color: #a32c37; }
.form-field small { color: #49616b; font-size: 13px; line-height: 1.5; }
.form-privacy { color: #49616b; font-size: 13px; line-height: 1.6; }
.form-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.form-actions > a { text-decoration: underline; font-size: 14px; }
.form-actions button { min-height: 48px; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.form-actions button:disabled { cursor: wait; opacity: .7; }
.form-status { margin-block: 18px; color: #00506c; font-size: 15px; line-height: 1.6; }
.form-status:empty { display: none; }
.form-status[data-state="error"] { color: #982531; }
.form-status[data-state="success"] { color: #1e6547; border-left: 3px solid #1e6547; padding-left: 14px; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-next { border-top: 1px solid #c9dbe2; }
.contact-next h2 { font-size: 28px; margin: 0 0 28px; }
.contact-next ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 0; margin: 0; list-style: none; }
.contact-next li { display: flex; align-items: baseline; gap: 14px; padding-top: 18px; border-top: 1px solid #bed2da; }
.contact-next li > span { color: #49616b; font-size: 16px; }
.contact-next h3 { font-size: 20px; margin: 0; line-height: 1.4; }

@media (max-width: 1080px) {
  .product-v32 .product-detail-hero .shell { gap: 24px; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
  .product-v32 .product-detail-hero h1 { font-size: 38px; }
  .product-v32 .product-detail-visual,
  .product-v32 .product-detail-visual img { height: 280px; }
  .contact-layout { gap: 32px; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
  .contact-copy h1 { font-size: 36px; }
  .contact-locations { grid-template-columns: 1fr; }
  .product-v32 .related-product-card { grid-template-columns: 90px minmax(0, 1fr); padding: 20px; gap: 16px; }
  .product-v32 .related-product-card > img { width: 90px; height: 110px; }
}
@media (max-width: 760px) {
  .content-v32 .section { padding-block: 44px; }
  .content-v32 .section-intro { margin-bottom: 28px; }
  .content-v32 .section-intro h2 { font-size: 32px; }
  .content-v32 .cta-panel { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .content-v32 .cta-panel h2 { font-size: 30px; }
  .content-v32 .hero h1 { font-size: 36px; }
  .content-v32 .hero-inner { padding-block: 40px 76px; }
  .content-v32 .hero-lead { font-size: 18px; }
  .content-v32 .page-hero:not(.product-detail-hero) h1 { font-size: 36px; }
  .content-v32 .page-hero:not(.product-detail-hero) .shell { padding-block: 44px 76px; }
  .product-v32 .product-detail-hero .shell { grid-template-columns: minmax(0, 1fr); padding-block: 30px; }
  .product-v32 .product-detail-hero h1 { font-size: 36px; }
  .product-v32 .product-detail-visual,
  .product-v32 .product-detail-visual img { height: 220px; }
  .product-v32 .product-service-layout { gap: 36px; }
  .product-v32 .product-service-layout > div:first-child h2,
  .product-v32 .cta-panel h2,
  .product-v32 .product-detail-faq .section-intro h2 { font-size: 30px; }
  .product-decision > div { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-block: 22px; }
  .product-decision p { font-size: 17px; }
  .product-v32 .related-product-grid { grid-template-columns: minmax(0, 1fr); }
  .product-v32 .related-product-card { min-height: 150px; }
  .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .contact-section { padding-top: 32px; }
  .contact-copy h1 { font-size: 36px; }
  .contact-copy > p { max-width: none; font-size: 18px; }
  .contact-details { margin-top: 22px; }
  .contact-locations,
  .contact-partner { display: none; }
  .inquiry-form { padding: 24px; }
  .contact-next ol { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}
@media (max-width: 520px) {
  .form-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .inquiry-form { padding: 20px; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .form-actions > a { text-align: center; }
  .product-v32 .product-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-v32 .product-fact-grid > div { padding: 18px 12px; border-bottom: 1px solid #bed2da; }
  .product-v32 .product-fact-grid strong { font-size: 20px; }
  .product-v32 .product-source-note { display: flex; flex-wrap: wrap; gap: 12px; }
}
@media (max-width: 380px) {
  .content-v32 .hero h1,
  .content-v32 .page-hero:not(.product-detail-hero) h1 { font-size: 30px; }
  .product-v32 .product-detail-hero h1 { font-size: 32px; }
  .product-v32 .product-fact-grid { grid-template-columns: minmax(0, 1fr); }
}

/* v34: a compact contact band above the footer. */
.content-v32 .cta-section {
  padding-block: 56px;
  color: #003b50;
  border-top: 3px solid #00a7d1;
  border-bottom: 1px solid #bed2da;
  background: #e9f4f7;
}
.content-v32 .cta-panel {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: start;
  gap: 48px;
  min-height: 0;
  padding: 0;
  color: #003b50;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.content-v32 .cta-panel::after { display: none; }
.content-v32 .cta-panel h2 {
  max-width: 620px;
  margin: 0;
  color: #003b50;
  font-size: 36px;
  line-height: 1.2;
  text-align: left;
  text-wrap: pretty;
}
.content-v32 .cta-info > p {
  max-width: 620px;
  margin: 0 0 24px;
  color: #405e6a;
  font-size: 18px;
  line-height: 1.6;
}
.content-v32 .cta-info > .button {
  min-height: 50px;
  color: #fff;
  border: 1px solid #00506c;
  background: #00506c;
}
.content-v32 .cta-info > .button:hover {
  color: #fff;
  border-color: #003b50;
  background: #003b50;
}
.content-v32 .cta-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px 24px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid #bed2da;
}
.content-v32 .cta-contact a {
  max-width: 100%;
  color: #00506c;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.content-v32 .cta-contact a:hover { text-decoration: underline; text-underline-offset: 4px; }
.content-v32 .cta-section a:focus-visible { outline: 3px solid #00506c; outline-offset: 4px; }
@media (max-width: 980px) {
  .content-v32 .cta-panel { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .content-v32 .cta-panel h2 { max-width: 720px; font-size: 32px; }
}
@media (max-width: 520px) {
  .content-v32 .cta-section { padding-block: 36px; }
  .content-v32 .cta-panel h2 { font-size: 28px; }
  .content-v32 .cta-info > p { font-size: 17px; }
  .content-v32 .cta-info > .button { width: 100%; justify-content: space-between; }
  .content-v32 .cta-contact { flex-direction: column; gap: 10px; }
}
