:root{
    --ivory:#F8F4EE;
    --champagne:#D8C2A6;
    --rose:#D9A7A0;--rose-deep:#BC8077;
    --sage:#A9B7A2;
    --greige:#6F665E;
    --charcoal:#2F2B28;
    --ivory-deep:#EFE8DD;
    --hairline:rgba(111,102,94,.22);
    --serif-jp:"Noto Serif JP",serif;
    --serif-en:"Playfair Display","Cormorant",serif;
    --sans:"Noto Sans JP",sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--sans);
    font-weight:400;
    color:var(--charcoal);
    background:var(--ivory);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}

  /* ===== パンくず ===== */
  .breadcrumb{
    max-width:880px;margin:0 auto;
    padding:118px clamp(24px,5vw,48px) 0;
    font-size:11px;letter-spacing:.08em;color:var(--greige);
  }
  .breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:2px;}
  .breadcrumb li:not(:first-child)::before{content:"／";margin:0 8px;color:rgba(111,102,94,.4);}
  .breadcrumb a{color:var(--greige);text-decoration:none;border-bottom:1px solid rgba(111,102,94,.3);padding-bottom:1px;transition:color .3s;}
  .breadcrumb a:hover{color:var(--charcoal);}
  .breadcrumb .cur{color:var(--charcoal);}

  /* ===== 下層ヒーロー ===== */
  .page-hero{
    max-width:880px;margin:0 auto;
    padding:44px clamp(24px,5vw,48px) clamp(40px,5vw,64px);
  }
  .page-hero .en{
    font-family:var(--serif-en);font-style:italic;
    font-size:clamp(15px,1.8vw,19px);letter-spacing:.14em;color:var(--rose);
  }
  .page-hero h1{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(27px,4vw,42px);line-height:1.5;letter-spacing:.04em;
    margin-top:14px;
  }
  .page-hero .lead{
    margin-top:26px;font-size:14.5px;line-height:2.15;color:var(--greige);
  }

  main{display:block;}
  .article{
    max-width:880px;margin:0 auto;
    padding:0 clamp(24px,5vw,48px) clamp(90px,11vw,140px);
  }

  .sec{margin-top:clamp(56px,7vw,84px);}
  .sec:first-child{margin-top:0;}
  .sec-head .en{
    font-family:var(--serif-en);font-style:italic;
    font-size:13px;letter-spacing:.22em;color:var(--rose);
  }
  .sec-head h2{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(24px,3.2vw,34px);letter-spacing:.06em;line-height:1.55;
    margin-top:10px;
  }
  .sec-head::after{
    content:"";display:block;width:52px;height:2px;background:var(--rose);
    margin-top:18px;
  }
  .sec-lead{margin-top:22px;font-size:14.5px;line-height:2.15;color:#4a443e;}

  /* ===== フォーム ===== */
  .cform{
    margin-top:34px;background:#fff;
    border:1px solid var(--hairline);border-radius:6px;
    padding:clamp(26px,4.5vw,50px);
    box-shadow:0 1px 2px rgba(47,43,40,.04);
  }
  .cform .cf-row{
    display:grid;grid-template-columns:minmax(180px,235px) 1fr;gap:8px 26px;
    padding:22px 0;border-bottom:1px dashed rgba(111,102,94,.18);
  }
  .cform .cf-row:first-child{padding-top:4px;}
  .cform .cf-label{
    font-family:var(--serif-jp);font-weight:500;
    font-size:14.5px;letter-spacing:.05em;line-height:1.8;
    padding-top:10px;
  }
  .cform .cf-row--radio .cf-label{padding-top:2px;}
  .cf-label .req,.cf-label .opt{
    display:inline-block;margin-left:10px;
    font-family:var(--sans);font-weight:400;
    font-size:10.5px;letter-spacing:.12em;line-height:1;
    border-radius:3px;padding:4px 8px;vertical-align:2px;white-space:nowrap;
  }
  .cf-label .req{color:var(--rose-deep);border:1px solid var(--rose);}
  .cf-label .opt{color:var(--greige);border:1px solid var(--hairline);}
  .cf-field input[type="text"],
  .cf-field input[type="email"],
  .cf-field input[type="tel"],
  .cf-field select,
  .cf-field textarea{
    width:100%;
    padding:13px 14px;
    border:1px solid var(--hairline);border-radius:4px;
    background:var(--ivory);
    font:inherit;font-size:14px;line-height:1.7;color:var(--charcoal);
    transition:border-color .25s,background .25s;
  }
  .cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{
    outline:none;border-color:var(--greige);background:#fff;
  }
  .cf-field textarea{min-height:170px;resize:vertical;}
  .cf-field select{
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F665E' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center;background-size:14px;
    padding-right:40px;
  }
  .cf-hint{margin-top:8px;font-size:12px;line-height:1.9;color:var(--greige);}
  /* ラジオ（CF7の .wpcf7-list-item 構造にも効く） */
  .cf-field.cf-radio{padding-top:10px;display:flex;flex-wrap:wrap;gap:8px 28px;}
  .cf-radio label{display:inline-flex;align-items:center;gap:9px;font-size:14px;cursor:pointer;}
  .cf-radio input[type="radio"]{accent-color:var(--rose-deep);width:16px;height:16px;}
  .cf-radio .wpcf7-list-item{margin:0;}
  .cf-radio .wpcf7-list-item + .wpcf7-list-item{margin-left:28px;}
  .cf-radio .wpcf7-list-item label{display:inline-flex;align-items:center;gap:9px;}
  /* 送信ボタン */
  .cf-actions{margin-top:32px;text-align:center;}
  .cform input[type="submit"],.cform button[type="submit"]{
    display:inline-flex;align-items:center;justify-content:center;
    font:inherit;font-size:14px;letter-spacing:.16em;color:var(--ivory);
    background:var(--charcoal);border:none;border-radius:999px;
    padding:18px 64px;cursor:pointer;transition:background .35s;
  }
  .cform input[type="submit"]:hover,.cform button[type="submit"]:hover{background:var(--rose-deep);}
  .cf-note{margin-top:18px;font-size:12px;line-height:1.9;color:var(--greige);text-align:center;}
  /* CF7 応答メッセージ */
  .cform .wpcf7-not-valid-tip{display:block;margin-top:7px;font-size:12px;color:#B23A3A;}
  .cform .wpcf7-response-output{
    margin:26px 0 0;border:1px solid var(--hairline)!important;border-radius:4px;
    padding:14px 18px;font-size:13.5px;line-height:1.9;
  }
  .cform .wpcf7-spinner{margin:0 12px;}
  .cform-fallback{font-size:14px;line-height:2.1;color:#4a443e;}
  .cform-fallback a{color:var(--rose-deep);}
  @media (max-width:640px){
    .cform .cf-row{grid-template-columns:1fr;gap:6px;padding:18px 0;}
    .cform .cf-label{padding-top:0;}
    .cform input[type="submit"],.cform button[type="submit"]{width:100%;}
  }

  /* ===== 電話案内 ===== */
  .tel-box{
    margin-top:34px;background:#fff;
    border:1px solid var(--hairline);border-radius:6px;
    padding:38px clamp(22px,4vw,46px) 40px;
    box-shadow:0 1px 2px rgba(47,43,40,.04);
    text-align:center;
  }
  .tel-box .tb-lead{font-size:13.5px;line-height:2.05;color:var(--greige);}
  .tel-box .tb-tel{
    margin-top:16px;display:inline-block;
    font-family:var(--serif-en);font-size:clamp(26px,4vw,34px);letter-spacing:.06em;
    color:var(--charcoal);text-decoration:none;
  }
  .tel-box .tb-tel:hover{color:var(--rose-deep);}
  .tel-box .tb-hours{margin-top:10px;font-size:12.5px;letter-spacing:.08em;color:var(--greige);}

  /* ===== 予約方法 3枚 ===== */
  .ways{margin-top:34px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .way{
    position:relative;background:#fff;border:1px solid var(--hairline);border-radius:6px;
    padding:30px 24px 26px;box-shadow:0 1px 2px rgba(47,43,40,.04);
    display:flex;flex-direction:column;
  }
  .way .tag{
    position:absolute;top:-11px;left:20px;
    font-size:10.5px;letter-spacing:.14em;line-height:1;padding:6px 10px;border-radius:3px;
    background:var(--charcoal);color:var(--ivory);
  }
  .way--web .tag{background:var(--rose-deep);}
  .way .w-en{font-family:var(--serif-en);font-style:italic;font-size:12px;letter-spacing:.16em;color:var(--rose);}
  .way h3{font-family:var(--serif-jp);font-weight:500;font-size:20px;letter-spacing:.06em;margin-top:4px;}
  .way .w-lead{margin-top:12px;font-size:13px;line-height:1.95;color:var(--greige);}
  .way ul{list-style:none;margin-top:14px;padding-top:14px;border-top:1px dashed rgba(111,102,94,.18);}
  .way li{font-size:12.5px;line-height:1.8;padding-left:16px;position:relative;color:#4a443e;}
  .way li::before{content:"";position:absolute;left:0;top:.85em;width:7px;height:1px;background:var(--rose-deep);}
  .way .w-btn{
    margin-top:auto;padding-top:20px;display:block;
  }
  .way .w-btn a{
    display:flex;align-items:center;justify-content:center;
    font-size:13px;letter-spacing:.12em;text-decoration:none;
    padding:14px 10px;border-radius:4px;transition:background .3s,color .3s;
  }
  .way--web .w-btn a{background:var(--charcoal);color:var(--ivory);}
  .way--web .w-btn a:hover{background:var(--rose-deep);}
  .way--line .w-btn a{background:#06C755;color:#fff;}
  .way--line .w-btn a:hover{background:#05a847;}
  .way--tel .w-btn a{
    border:1px solid var(--charcoal);color:var(--charcoal);
    font-family:var(--serif-en);font-size:19px;letter-spacing:.06em;padding:11px 10px;
  }
  .way--tel .w-btn a:hover{background:var(--charcoal);color:var(--ivory);}
  .way .w-hours{margin-top:8px;text-align:center;font-size:11.5px;letter-spacing:.06em;color:var(--greige);}
  @media (max-width:760px){.ways{grid-template-columns:1fr;gap:22px;}}

  /* ===== フォーム追加分（2列・希望日3列・チェックボックス） ===== */
  .cform .cf-notice{
    margin-bottom:22px;padding:14px 16px;border:1px solid var(--rose);border-radius:4px;
    background:rgba(217,167,160,.10);font-size:13px;line-height:1.95;color:#4a443e;
  }
  .cform .cf-notice a{color:var(--rose-deep);}
  .cf-field input[type="date"]{
    width:100%;padding:12px 14px;border:1px solid var(--hairline);border-radius:4px;
    background:var(--ivory);font:inherit;font-size:14px;line-height:1.7;color:var(--charcoal);
  }
  .cf-field input[type="date"]:focus{outline:none;border-color:var(--greige);background:#fff;}
  .cf-field.cf-check{padding-top:10px;display:flex;flex-wrap:wrap;gap:8px 24px;}
  .cf-check label{display:inline-flex;align-items:center;gap:9px;font-size:14px;cursor:pointer;}
  .cf-check input[type="checkbox"]{accent-color:var(--rose-deep);width:16px;height:16px;}
  .cf-check .wpcf7-list-item{margin:0;}
  .cf-check .wpcf7-list-item + .wpcf7-list-item{margin-left:24px;}
  .cf-check .wpcf7-list-item label{display:inline-flex;align-items:center;gap:9px;}
  .cf-dates{
    display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
    padding:18px 0 22px;border-bottom:1px dashed rgba(111,102,94,.18);
  }
  .cf-date{background:var(--ivory-deep);border-radius:4px;padding:14px 14px 12px;}
  .cf-date .cd-ttl{font-size:12px;letter-spacing:.08em;color:var(--greige);margin-bottom:8px;}
  .cf-date .cf-radio{padding-top:8px;gap:6px 18px;}
  .cf-date .cf-radio label{font-size:13px;}
  .cf-date .cf-radio .wpcf7-list-item + .wpcf7-list-item{margin-left:18px;}
  .cf-privacy{margin-top:18px;text-align:center;font-size:12px;line-height:1.9;color:var(--greige);}
  .cf-privacy a{color:var(--rose-deep);}
  @media (max-width:640px){
    .cf-dates{grid-template-columns:1fr;}
  }

  /* ===== ご予約に関するご案内 ===== */
  .notes{margin-top:34px;border-top:1px solid var(--hairline);}
  .note{
    display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:6px 28px;
    padding:22px 0;border-bottom:1px solid var(--hairline);
  }
  .note h3{font-family:var(--serif-jp);font-weight:500;font-size:15.5px;letter-spacing:.04em;line-height:1.8;}
  .note p{font-size:13.5px;line-height:2.05;color:#4a443e;}
  .note p a{color:var(--rose-deep);}
  .note--urgent h3{color:var(--rose-deep);}
  @media (max-width:640px){.note{grid-template-columns:1fr;padding:18px 0;}}

  /* ===== 診療科目 ===== */
  .depts{margin-top:34px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .dept{
    display:block;text-decoration:none;color:inherit;
    background:#fff;border:1px solid var(--hairline);border-radius:6px;
    padding:26px 22px 22px;box-shadow:0 1px 2px rgba(47,43,40,.04);
    transition:border-color .3s;
  }
  .dept:hover{border-color:var(--rose);}
  .dept .d-en{font-family:var(--serif-en);font-style:italic;font-size:11.5px;letter-spacing:.14em;color:var(--rose);}
  .dept h3{font-family:var(--serif-jp);font-weight:500;font-size:18px;letter-spacing:.05em;margin-top:4px;line-height:1.6;}
  .dept p{margin-top:12px;font-size:12.5px;line-height:1.95;color:var(--greige);}
  .dept .d-tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;}
  .dept .d-tags span{font-size:11px;letter-spacing:.04em;padding:4px 8px;border:1px solid var(--hairline);border-radius:3px;color:#4a443e;}
  .dept .d-more{margin-top:16px;font-size:12px;letter-spacing:.12em;color:var(--rose-deep);}
  @media (max-width:760px){.depts{grid-template-columns:1fr;}}

  /* ===== 関連ページ ===== */
  .related{margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .rel{
    display:block;text-decoration:none;color:inherit;
    border:1px solid var(--hairline);border-radius:6px;background:#fff;padding:22px 22px 20px;
    transition:border-color .3s;
  }
  .rel:hover{border-color:var(--rose);}
  .rel h3{font-family:var(--serif-jp);font-weight:500;font-size:16.5px;letter-spacing:.04em;}
  .rel p{margin-top:8px;font-size:12.5px;line-height:1.95;color:var(--greige);}
  .rel .d-more{margin-top:12px;font-size:12px;letter-spacing:.12em;color:var(--rose-deep);}
  @media (max-width:640px){.related{grid-template-columns:1fr;}}
