/* ========================================
   Responsive Line Break Utilities
   ======================================== */
/*
   This file provides utility classes for controlling
   line breaks across different screen sizes.

   Usage:
   <br class="br-desktop"> - Shows only on desktop
   <br class="br-mobile"> - Shows only on mobile
   <br class="br-tablet"> - Shows only on tablet
*/
/* Default: Show all breaks */
br {
  display: inline;
}

/* Desktop-only breaks (hide on mobile/tablet) */
.br-desktop {
  display: inline;
}

/* Mobile-only breaks (show only on mobile) */
.br-mobile {
  display: none;
}

/* Tablet-only breaks (show only on tablet) */
.br-tablet {
  display: none;
}

/* ========================================
   Responsive Breakpoints
   ======================================== */
/* Tablet and below (768px and below) */
@media (max-width: 768px) {
  .br-desktop {
    display: none;
  }
  .br-tablet {
    display: inline;
  }
}
/* Mobile only (640px and below) */
@media (max-width: 640px) {
  .br-tablet {
    display: none;
  }
  .br-mobile {
    display: inline;
  }
}
/* ========================================
   Text Wrapping Improvements
   ======================================== */
/* Prevent awkward breaks in hero titles */
.hero-title {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Prevent awkward breaks in section titles */
.section-title,
.section-subtitle {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Improve text wrapping in cards */
.business-card h3,
.card-title,
.case-title {
  hyphens: none;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Better line breaking for Japanese text */
body {
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
}

/* Prevent orphans in paragraphs */
p {
  orphans: 2;
  widows: 2;
}

/* ========================================
   Mobile-specific text adjustments
   ======================================== */
@media (max-width: 640px) {
  /* Slightly reduce line-height on mobile for better density */
  body {
    line-height: 1.7;
  }
  /* Adjust heading line-height */
  h1, h2, h3 {
    line-height: 1.4;
  }
  /* Better spacing for mobile paragraphs */
  p {
    margin-bottom: 1em;
  }
}
/* ========================================
   Specific Component Adjustments
   ======================================== */
/* Business intro text */
@media (max-width: 768px) {
  .business-intro {
    line-height: 1.8;
  }
}
@media (max-width: 640px) {
  .business-intro {
    font-size: 0.95rem;
    line-height: 1.75;
  }
}
/* About section text */
@media (max-width: 640px) {
  .about-text p {
    line-height: 1.75;
  }
}
/* Job detail titles */
@media (max-width: 640px) {
  .job-detail-title {
    line-height: 1.3;
    word-break: keep-all;
  }
  .job-detail-lead {
    line-height: 1.7;
  }
}
/* Message hero title */
@media (max-width: 640px) {
  .message-hero-title {
    line-height: 1.3;
  }
}
/* Article titles */
@media (max-width: 640px) {
  .article-title {
    line-height: 1.3;
  }
}
/* Contact subtitle */
@media (max-width: 640px) {
  .contact-subtitle {
    line-height: 1.5;
  }
}
/* Address blocks - remove breaks on mobile */
@media (max-width: 640px) {
  .company-info-value,
  .office-info-item p,
  .address-text {
    line-height: 1.6;
  }
}