:root {
    --orange: #ff9900;
    --brown: #693723;
    --cream: #f8f0d3;
    --green: #36C054;
  }

  * {
    box-sizing: border-box;
  }

  html,
  body {
    margin: 0;
    padding: 0;
  }

  body {
    background: var(--cream);
    color: var(--brown);
    font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont,
      "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  }
  img {
    max-width: 100%;
    height: auto;
    display: block;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  .pageWrap {
    width: min(100%, 500px);
    min-width: 340px;
    margin: 0 auto;
  }

  /* ===============================
     header
  =============================== */
  .headerWrap{
    background: #fff;
  }
  .headerInner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .siteLogo{
    margin: 0;
    flex: 0 0 auto;
    max-width: clamp(210px, 45vw, 260px);
	padding-left: 10px;
  }
  .siteLogo img{
    width: 100%;
  }
  .headerCtaWrap{
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .headerCtaWrap img{
    width: 100%;
    max-width: clamp(120px, 45vw, 150px);
  }

  /* ===============================
     main visual
  =============================== */
  .mainWrap {
    position: relative;
	text-align: center;
    padding: 40px 15px;
	box-sizing: border-box;
  }
  .mainVisualInner{
    position: relative;
  }
  .mainVisualCopy{
	width: 100%;
	margin: 0 auto;
  }
  .mainVisualCopy img{
    width: 80%;
	margin: 0 auto;
  }
  .mainVisualOpen{
    padding: 10px 30px;
	margin-left: -30px;
  }
  .mainVisualOpen img{
    width: 100%;
	margin: 0 auto;
  }
  .mainVisualNotice{
    margin-top: clamp(8px, 2.5vw, 14px);
    padding: 0 clamp(32px, 6vw, 48px);
    display: flex;
    justify-content: center;
  }
  .noticeBtn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 520px;
    background: var(--orange);
    color: #ffffff;
    border-radius: 14px;
    padding: 12px 40px 12px 16px;
    font-family: "Noto Sans JP", system-ui, sans-serif;
    font-size: clamp(14px, 3.6vw, 16px);
    font-weight: 700;
    letter-spacing: 0.08em;
    position: relative;
  }
  .noticeBtnIcon{
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
  }
  .noticeBtn::after{
    content: "";
    position: absolute;
    right: 14px;
    width: 8px;
    height: 8px;
    border-right: 2px solid #ffffff;
    border-top: 2px solid #ffffff;
    transform: translateY(-50%) rotate(45deg);
    top: 50%;
  }

  /* ===============================
     time table
  =============================== */
  .timeTableWrap{
    padding: 10px 0;
  }
  .timeTableInner{
    margin-top: clamp(4px, 1.5vw, 10px);
  }
  .timeTableBox{
    background: #ffffff;
    border-radius: 18px;
    padding: clamp(18px, 4vw, 24px) clamp(16px, 4vw, 22px) clamp(20px, 4.5vw, 26px);
    position: relative;
  }
  .timeTableTitle{
    font-family: "Noto Sans JP", sans-serif;
    text-align: left;
    font-size: clamp(14px, 3.6vw, 16px);
    letter-spacing: 0.15em;
    margin: 0 0 10px 2px;
    line-height: 1.3;
  }
  .timeTableTable{
    width: 100%;
    border-collapse: collapse;
    font-family: "F, "Noto Sans JP", sans-serif;
    font-size: clamp(13px, 3.2vw, 14px);
  }
  .timeTableTable th,
  .timeTableTable td{
    padding: 6px 4px;
    text-align: center;
  }
  .timeTableTable thead th{
    font-weight: 700;
    padding-bottom: 8px;
	font-weight: 400;
  }
  .timeTableTable thead th:first-child{
    width: 32%;
  }
  .timeTableTable tbody th {
    font-weight: 700;
    text-align: left;
    padding-right: 8px;
    white-space: nowrap;
  }

  .timeTableTable tbody tr:first-child th,
  .timeTableTable tbody tr:first-child td {
    border-top: 1px solid #e0d7c1;
  }

  .timeTableTable tbody tr:nth-child(2) th,
  .timeTableTable tbody tr:nth-child(2) td {
    border-top: 1px solid #e0d7c1;
  }

  .timeTableTable tbody td {
    min-width: 24px;
  }

  .timeDot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--orange);
  }

  .timeDash {
    font-family: "Noto Sans JP", system-ui, sans-serif;
    font-size: 13px;
  }

  .clinicAddress {
    margin-top: 16px;
    margin-bottom: 0;
    padding-left: 2px;
    font-family: "Noto Sans JP", system-ui, sans-serif;
    font-size: clamp(12px, 3vw, 13px);
    line-height: 1.7;
  }

  .clinicAddressLinkWrap {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 4px;
  }

  .clinicAddressLink {
    color: var(--orange);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .clinicAddressPin {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
  }
