/* ===== Reset & Base ===== */
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
color: #333;
background: #fff;
line-height: 1.8;
-webkit-font-smoothing: antialiased;
}

a {
color: inherit;
text-decoration: none;
}

img {
max-width: 100%;
height: auto;
display: block;
}

/* ===== Layout ===== */
.container {
max-width: 720px;
margin: 0 auto;
padding: 0 20px;
}

/* ===== Header ===== */
.header {
padding: 20px 0;
border-bottom: 1px solid #eee;
}

.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}

.header-logo {
display: flex;
align-items: center;
gap: 12px;
}

.header-logo img {
height: 80px;
width: auto;
}

.header-logo-text {
display: flex;
flex-direction: column;
}

.header-logo-sub {
font-size: 11px;
color: #888;
letter-spacing: 0.05em;
}

.header-logo-main {
font-size: 22px;
font-weight: bold;
color: #333;
letter-spacing: 0.05em;
}

.header-logo-en {
font-size: 9px;
color: #aaa;
letter-spacing: 0.15em;
text-transform: uppercase;
}

.header-info {
text-align: right;
}

.header-address {
font-size: 13px;
color: #555;
}

.header-tel {
font-size: 26px;
font-weight: bold;
color: #333;
letter-spacing: 0.05em;
}

.header-tel a {
color: #333;
}

/* ===== Hero Image ===== */
.hero {
margin: 0 0 30px;
}

.hero img {
width: 100%;
height: auto;
object-fit: cover;
}

/* ===== Section: 診療科目 ===== */
.section {
padding: 20px 0;
}

.departments {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 30px;
}

.department-tag {
display: inline-block;
padding: 8px 20px;
border: 1px solid #ccc;
border-radius: 2px;
font-size: 15px;
color: #333;
background: #fff;
letter-spacing: 0.1em;
}

/* ===== 診療時間テーブル ===== */
.schedule-wrapper {
margin: 0 auto 16px;
max-width: 560px;
}

.schedule-table {
width: 100%;
border-collapse: collapse;
text-align: center;
font-size: 14px;
}

.schedule-table th,
.schedule-table td {
border: 1px solid #ccc;
padding: 10px 6px;
white-space: nowrap;
}

.schedule-table thead th {
background: #f7f7f7;
font-weight: normal;
font-size: 14px;
color: #555;
}

.schedule-table thead th:first-child {
background: #f7f7f7;
font-weight: bold;
color: #333;
}

.schedule-table tbody td:first-child {
font-weight: bold;
text-align: left;
padding-left: 12px;
font-size: 13px;
white-space: nowrap;
}

/* 丸マーク（診療あり） */
.mark-open {
display: inline-block;
width: 18px;
height: 18px;
border-radius: 50%;
background: #5bb7b0;
}

/* 休マーク（休診） */
.mark-closed {
color: #d44;
font-weight: bold;
font-size: 15px;
}

.schedule-note {
text-align: center;
font-size: 13px;
color: #666;
margin-top: 10px;
line-height: 1.6;
}

/* ===== 施設基準届出項目等ボタン ===== */
.facility-btn-wrapper {
text-align: center;
margin: 30px 0;
}

.facility-btn {
display: inline-block;
padding: 12px 32px;
border: none;
border-radius: 20px;
font-size: 14px;
color: #fff;
background: #888;
cursor: pointer;
transition: background 0.2s;
letter-spacing: 0.1em;
}

.facility-btn:hover {
background: #666;
}

/* ===== Google Map ===== */
.map-section {
margin: 20px 0 30px;
}

.map-container {
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border: 1px solid #ddd;
border-radius: 4px;
}

.map-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}

/* ===== アクセス情報 ===== */
.access-info {
padding: 24px 0 40px;
font-size: 14px;
color: #555;
line-height: 2;
}

.access-info .address {
font-size: 15px;
font-weight: bold;
color: #333;
margin-bottom: 8px;
}

.access-info .route {
font-size: 13px;
color: #666;
}

/* ===== Footer ===== */
.footer {
background: #f8f8f8;
border-top: 1px solid #eee;
padding: 20px 0;
text-align: center;
font-size: 12px;
color: #999;
}

/* ===== Responsive ===== */
@media (max-width: 600px) {
.header-inner {
flex-direction: column;
align-items: center;
text-align: center;
}

.header-info {
text-align: center;
}

.header-tel {
font-size: 22px;
}

.header-logo-main {
font-size: 18px;
}

.departments {
gap: 8px;
}

.department-tag {
padding: 6px 14px;
font-size: 13px;
}

.schedule-table {
font-size: 12px;
}

.schedule-table th,
.schedule-table td {
padding: 8px 4px;
}

.schedule-table tbody td:first-child {
font-size: 11px;
padding-left: 6px;
}

.mark-open {
width: 14px;
height: 14px;
}

.access-info {
font-size: 13px;
}
}

@media (max-width: 400px) {
.container {
padding: 0 12px;
}

.header-logo-main {
font-size: 16px;
}

.header-tel {
font-size: 20px;
}

.schedule-table {
font-size: 11px;
}

.schedule-table th,
.schedule-table td {
padding: 6px 2px;
}
}

/* ===== フォームセクション ===== */
.section-form {
  padding: 40px 0 60px;
}

.form-heading {
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #333;
  margin-bottom: 8px;
}
@media (min-width: 641px) {
  .form-heading {
    font-size: 21px;
  }
}
.form-heading::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: #5bb7b0;
  margin: 10px auto 0;
}

.form-body {
  margin-top: 36px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row--half {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .form-row--half {
    grid-template-columns: 1fr;
  }
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-label {
  font-size: 13px;
  color: #555;
}

.form-must {
  background: #5bb7b0;
  color: #fff;
  font-size: 11px;
  padding: 1px 5px 2px;
  margin-left: 6px;
  display: inline-block;
  vertical-align: middle;
}

.form-input,
.form-textarea {
  width: 100%;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 15px;
  padding: 10px 12px;
  color: #111;
  font-family: inherit;
  transition: border-color 0.3s;
  box-sizing: border-box;
}

.form-input:focus,
.form-textarea:focus {
  border-color: #5bb7b0;
  outline: none;
}

.form-textarea {
  resize: vertical;
}
@media (min-width: 600px) {
  .form-textarea {
    min-height: 150px;
  }
}

.form-confirm {
  text-align: center;
  font-size: 13px;
  color: #555;
}

.form-confirm p {
  margin-bottom: 8px;
}

.btn-box {
  text-align: center;
  padding-top: 8px;
}

.button-02 {
  display: inline-block;
  width: 100%;
  max-width: 240px;
  padding: 14px 0;
  border: none;
  border-radius: 4px;
  background-color: #5bb7b0;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: opacity 0.3s;
}

.button-02:hover {
  opacity: 0.8;
}

.button-02.return-btn {
  margin-top: 10px;
}

.button-02.return-btn{
  margin-top: 10px;
}

/* font-size */
.fs-001 {
  font-size: 24px;
}
@media (min-width: 641px) {
  .fs-001 {
    font-size: 36px;
  }
}
.fs-002 {
  font-size: 20px;
}
@media (min-width: 641px) {
  .fs-002 {
    font-size: 28px;
  }
}
.fs-003 {
  font-size: 18px;
}
@media (min-width: 641px) {
  .fs-003 {
    font-size: 24px;
  }
}
.fs-004,
.fs-005,
.fs-006 {
  font-size: 16px;
}
@media (min-width: 641px) {
  .fs-004 {
    font-size: 21px;
  }
}
@media (min-width: 641px) {
    .fs-005 {
        font-size: 18px;
    }
}