
        :root {
            --FONT_FAMILY_ZEN: 'Noto Sans JP', 'Roboto', 'Arial', 'sans-serif';
            --FONT_FAMILY: 'Noto Sans JP', 'Roboto', 'Arial', 'sans-serif';
            --COLOR_PRIMARY: #1976d2;
            --COLOR_SECONDARY: #43a047;
            --COLOR_ACCENT: #00bcd4;
            --COLOR_TEXT: #222;
            --COLOR_BG: #f7fafd;
            --COLOR_SURFACE: #fff;
            --COLOR_BORDER: #e0e0e0;
            --COLOR_SECTION: #e3f2fd;
        }
        h1, h2, h3, h4, h5 {
            font-family: var(--FONT_FAMILY_ZEN);
            color: var(--COLOR_PRIMARY);
        }
        body {
            font-family: var(--FONT_FAMILY);
            background: var(--COLOR_BG);
            color: var(--COLOR_TEXT);
        }        
        
        body { margin: 0 auto; padding: 0px 0px; line-height: 1.7; }
        body {
        padding-top: 110px; /* ヘッダー高さ分だけ下に余白 */
        }
        h1 { color: var(--COLOR_PRIMARY);  padding-bottom: 10px; }
        h2 { color: white!important; margin-top: 40px; background-color: var(--COLOR_SECONDARY); padding-left: 10px; font-size: 1em!important; padding:5px;text-align: center;}
        .breadcrumb { color: #666; }
        .breadcrumb a { color: var(--COLOR_PRIMARY); text-decoration: none; }
        .breadcrumb a:hover { text-decoration: underline; }

        .container, .container-fullwidth {
          max-width: 1100px;
          width: 100%;
          margin: 0 auto;
          padding: 20px;
          box-sizing: border-box;
        }

        .container-fullwidth {
          max-width: 100% !important;
          width: 100% !important;
          padding-right: 15px;
          padding-left: 15px;
        }
        .fa-square-check{
          color:#0a58ca;
        }

        .accordion-header{
          padding:1px;
        }

        .accordion-item {
          border:none;
        }

        .accordion-button {
            border-radius: 0!important;
        }

        .station-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; margin-top: 20px; }
        .station-card { border: 1px solid #ddd; padding: 15px; border-radius: 5px; }
        .station-card a { color:#000;text-decoration: none; font-weight: bold; }
        .station-card a:hover { text-decoration: underline; }
        .badge { background: #4CAF50; color: white; padding: 2px 8px; border-radius: 3px; font-size: 0.8em; margin-left: 5px; }
        /*.towns-list { column-count: 3; column-gap: 20px; }
        .towns-list li { break-inside: avoid; margin-bottom: 5px; }*/
        .fullwidth-visual {
          width: 100vw;
          position: relative;
          left: 50%;
          right: 50%;
          margin-left: -50vw;
          margin-right: -50vw;
        }

        .kv-overlay-title {
          position: absolute;
          top: 50%;
          left: 50%;
          width: 100%;
          transform: translate(-50%, -50%);
          color: var(--COLOR_ACCENT);
          text-shadow: 2px 2px 12px rgba(0,0,0,0.85);
          font-size: 2.8rem;
          letter-spacing: 0.08em;
          text-align: center;
          font-family: var(--FONT_FAMILY_ZEN);
          z-index: 2;
          padding: 0 1rem;
          pointer-events: none;
        }

        .h1-small{
          font-size:20px;
          text-align: center;
          color:#222;
          margin-top:20px;

        }
        .brown{
            background-color: var(--COLOR_SECTION);
            border: 1px solid var(--COLOR_BORDER);
            padding-top:30px;
            padding-bottom:30px ;
        }

        .towns-list{
            display: flex;
            flex-wrap: wrap;
            margin: 0 -1%;
            padding: 1rem 0;
        }

        .towns-list li{
            width: calc(100% / 6 - 2%);
            margin: 0.6rem 1%;
            background: #fff;
            list-style: none;
            padding: 0.4rem 0;
            text-align: center;
        }
        .step{
            border:1px solid var(--COLOR_PRIMARY);
        }

        .step-header{
            background-color: var(--COLOR_PRIMARY);
            color: #fff;
        }

        .pet-items ul{
            display: flex;
            flex-wrap: wrap;
            padding-left: 0;
        }

        .pet-items ul li{
            letter-spacing: 0px;
            list-style: none;
            margin: 0px 5px;
            position: relative;
        }

        .pet-items ul li:after {
            content: "/";
            position: relative;
            right: -10px;
        }
        .kouken{background:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 16px rgba(0,0,0,0.13);display:block;width:100%;height:auto;}

        .me {
          background-color: #fff7e6 !important;
        }

        .me th{
          background-color: #ffecc4 !important;
        }
        @media (min-width: 992px) {
            body {
                padding-top: 65px;
            }
            .breadcrumb {
                margin-bottom: 0px;
            }
        }
        @media (max-width: 768px) {

            body {
                padding-top: 90px;
            }
            .breadcrumb {
                margin-bottom: 0px;
            }
        }
        @media (max-width: 480px) {
            /*.towns-list { column-count: 1; }*/
        }
        .form-control, .form-select {
          height: 45px;
        }

        .btn-full {
          height: 50px;
          width: 100%;
          display: block;
          font-size: 1.1rem;
        }
        .cta{
          padding-top:30px;
          padding-bottom: 30px;  
        }

        .floating-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 1000;
        box-shadow: 0 2px 8px rgba(0,0,0,0.08);
        }


        .white-nowrap {
            white-space: nowrap;
        }
        .underline_text {
            background:linear-gradient(transparent 70%, #FFFF00 0%)!important;
            font-weight: bold;
        }
        
        .area-card { border: 1px solid #ddd; padding: 15px; border-radius: 5px; text-align: center!important;}
        .area-card h4 { margin: 0 10px 10px 10px; color: var(--COLOR_SECONDARY); }
        .area-card a { color: var(--COLOR_PRIMARY); text-decoration: none; display: inline-block; margin-top: 5px; }
        .area-card a:hover { text-decoration: underline; }
        .station-count { color: #666; font-size: 0.9em; }

/* カスタムボタンカラー */
.btn-primary {
  background-color: var(--COLOR_PRIMARY) !important;
  border-color: var(--COLOR_PRIMARY) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: #1565c0 !important;
  border-color: #1565c0 !important;
  color: #fff !important;
}

  .before_after_slider {
    position: relative;
    overflow: hidden;
    width: 800px;
    max-width: 100%;
    margin: 0 auto;
  }
 
  .box_before {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50%;
    height: 100%;
    border-right: 5px solid rgba(255, 255, 255, 0.7);
    box-shadow: 10px 0 15px -13px #000;
  }
 
  .box_before img {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
  }
 
  .box_before::before {
    content: '';
    z-index: 1;
    position: absolute;
    top: 0;
    right: -30px;
    bottom: 0;
    width: 45px;
    height: 45px;
    margin: auto;
    border: 5px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 10px 0 15px -13px #000;
  }
 
  .slider_range {
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: col-resize;
  }
