/* ============ WASHI v59 — 和纸风雅 米白+朱红+墨色 ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Serif SC','Noto Serif JP',serif;color:#3a2f26;background:#faf5eb;line-height:1.8}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(194,69,69,.04) 1px,transparent 1px);background-size:16px 16px;z-index:0}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
h1,h2,h3,h4{font-family:'Noto Serif SC','Noto Serif JP',serif;font-weight:900;color:#2b1d15;line-height:1.3;letter-spacing:2px}
.wa-wrap{max-width:1180px;margin:0 auto;padding:0 24px;position:relative;z-index:1}

/* header */
.wa-head{background:#faf5eb;border-bottom:1px solid #e0d3b8;position:sticky;top:0;z-index:100;backdrop-filter:blur(4px)}
.wa-hin{display:flex;align-items:center;justify-content:space-between;height:80px}
.wa-logo{display:flex;align-items:center;gap:12px}
.wa-mark{width:44px;height:44px;background:#c24545;color:#faf5eb;display:grid;place-items:center;font-family:'Noto Serif JP';font-weight:900;font-size:20px;border-radius:4px;box-shadow:2px 2px 0 #8b2f2f;transform:rotate(-2deg)}
.wa-logot b{font-size:19px;font-weight:900;letter-spacing:3px;display:block}
.wa-logot small{font-size:11px;color:#8a745c;letter-spacing:2px;display:block}
.wa-nav{display:flex;align-items:center;gap:26px;font-size:14px;letter-spacing:2px}
.wa-nav a{position:relative;padding:6px 2px}
.wa-nav a::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:#c24545;transition:all .3s;transform:translateX(-50%)}
.wa-nav a:hover::after{width:100%}
.wa-call{background:#c24545;color:#faf5eb!important;padding:10px 18px;border-radius:2px;letter-spacing:1px;transition:all .2s}
.wa-call::after{display:none!important}
.wa-call:hover{background:#8b2f2f;transform:translateY(-2px)}
.wa-ham{display:none;width:40px;height:40px;flex-direction:column;gap:5px;justify-content:center;align-items:center}
.wa-ham span{width:24px;height:2px;background:#3a2f26}
.wa-mmenu{display:none;border-top:1px solid #e0d3b8;padding:14px 24px}
.wa-mmenu.open{display:flex;flex-direction:column;gap:10px}
.wa-mmenu a{padding:8px 0;border-bottom:1px dashed #d5c6a8;letter-spacing:2px;font-size:14px}

/* hero */
.wa-hero{padding:70px 0 80px;position:relative;background:linear-gradient(135deg,#faf5eb 0%,#f3e8d2 100%);border-bottom:1px solid #e0d3b8}
.wa-hero::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:repeating-linear-gradient(to bottom,#c24545 0,#c24545 20px,transparent 20px,transparent 32px)}
.wa-hin2{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}
.wa-h-l{position:relative;padding-left:40px}
.wa-vt{position:absolute;left:0;top:0;writing-mode:vertical-rl;font-size:13px;color:#c24545;letter-spacing:4px;font-family:'Noto Serif JP';padding:8px 4px;background:#faf5eb;border:1px solid #c24545}
.wa-h-block{position:relative}
.wa-h-st{display:block;font-size:12px;letter-spacing:6px;color:#8a745c;margin-bottom:18px}
.wa-h-block h1{font-size:60px;line-height:1.3;margin-bottom:20px;letter-spacing:4px;font-weight:900}
.wa-red{color:#c24545;position:relative}
.wa-red::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:8px;background:#f3d5c2;z-index:-1}
.wa-h-block p{font-size:16px;line-height:2;color:#5a4a3a;margin-bottom:30px;max-width:540px;border-left:3px solid #c24545;padding-left:20px}
.wa-hcta{display:flex;gap:14px;margin-bottom:26px;flex-wrap:wrap}
.wa-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 26px;font-size:14px;font-weight:700;letter-spacing:3px;transition:all .2s;border:1px solid transparent}
.wa-btn-red{background:#c24545;color:#faf5eb}
.wa-btn-red:hover{background:#8b2f2f;transform:translateY(-2px);box-shadow:4px 4px 0 #d5c6a8}
.wa-btn-line{background:transparent;color:#3a2f26;border:1px solid #3a2f26}
.wa-btn-line:hover{background:#3a2f26;color:#faf5eb}
.wa-btn-block{width:100%}
.wa-hmarks{display:flex;gap:14px}
.wa-hm{width:50px;height:50px;display:grid;place-items:center;background:#faf5eb;border:1px solid #c24545;color:#c24545;font-size:13px;letter-spacing:2px;font-weight:700;transform:rotate(0);transition:all .3s}
.wa-hm:nth-child(2){transform:rotate(-3deg)}
.wa-hm:nth-child(3){transform:rotate(2deg)}
.wa-hm:nth-child(4){transform:rotate(-1deg)}
.wa-hm:hover{transform:rotate(0) scale(1.06);background:#c24545;color:#faf5eb}
.wa-h-r{position:relative}
.wa-hframe{position:relative;border:1px solid #8a745c;padding:10px;background:#faf5eb;box-shadow:6px 6px 0 rgba(194,69,69,.2);transform:rotate(-2deg)}
.wa-hframe img{width:100%;height:420px;object-fit:cover;display:block}
.wa-stamp{position:absolute;top:-14px;right:-14px;width:70px;height:70px;display:grid;place-items:center;background:#c24545;color:#faf5eb;font-family:'Noto Serif JP';font-size:28px;font-weight:900;transform:rotate(8deg);border:2px solid #8b2f2f;box-shadow:2px 2px 0 rgba(0,0,0,.15)}
.wa-haside{margin-top:26px;padding:18px;background:rgba(255,255,255,.6);border-left:3px solid #c24545;font-family:'Noto Serif JP'}
.wa-haside b{display:block;color:#c24545;font-size:12px;letter-spacing:4px;margin-bottom:8px}
.wa-haside em{font-size:13px;color:#5a4a3a;font-style:normal;line-height:1.8}

/* sections */
.wa-sect{display:flex;align-items:center;gap:20px;margin-bottom:50px;padding-bottom:18px;border-bottom:1px double #c24545}
.wa-sect-center{justify-content:center;text-align:center}
.wa-sect-l{width:50px;height:50px;background:#c24545;color:#faf5eb;display:grid;place-items:center;font-family:'Noto Serif JP';font-size:22px;font-weight:900;box-shadow:3px 3px 0 #d5c6a8}
.wa-sect-s{width:44px;height:44px;font-size:18px}
.wa-sect em{display:block;font-size:11px;letter-spacing:4px;color:#8a745c;font-style:normal;margin-bottom:4px}
.wa-sect h2{font-size:32px;letter-spacing:8px}
.wa-sect i{margin-left:auto;font-size:13px;color:#8a745c;font-style:normal;letter-spacing:2px}
.wa-eyebrow{display:block;font-size:11px;letter-spacing:4px;color:#c24545;margin-bottom:10px}

/* services */
.wa-svc{padding:80px 0}
.wa-sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.wa-scard{background:rgba(255,255,255,.7);border:1px solid #e0d3b8;padding:26px 22px;position:relative;transition:all .3s;overflow:hidden}
.wa-scard::before{content:'';position:absolute;left:0;top:0;width:4px;height:0;background:#c24545;transition:height .3s}
.wa-scard:hover{transform:translateY(-4px);box-shadow:4px 8px 18px rgba(60,30,20,.08);background:#fff}
.wa-scard:hover::before{height:100%}
.wa-scnum{position:absolute;top:14px;right:18px;font-family:'Noto Serif JP';font-size:28px;color:rgba(194,69,69,.15);font-weight:900}
.wa-scard h3{font-size:18px;margin-bottom:10px;letter-spacing:3px;color:#c24545}
.wa-scard p{font-size:13px;color:#5a4a3a;line-height:1.8;margin-bottom:12px}
.wa-smore{font-size:12px;letter-spacing:2px;color:#8a745c}
.wa-smore:hover{color:#c24545}

/* ivf */
.wa-ivf{padding:80px 0;background:#f3e8d2}
.wa-ivfgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:40px}
.wa-ivfc{background:#faf5eb;border:1px solid #e0d3b8;padding:32px 26px;position:relative;transition:all .3s}
.wa-ivfc-acc{background:#2b1d15;color:#faf5eb;border-color:#2b1d15}
.wa-ivfc-acc h3,.wa-ivfc-acc p{color:#faf5eb}
.wa-ivfc-acc .wa-ivftag span{border-color:#f3d5c2;color:#f3d5c2}
.wa-ivfc:hover{transform:translateY(-4px);box-shadow:4px 8px 20px rgba(60,30,20,.1)}
.wa-ivfnum{font-family:'Noto Serif JP';font-size:48px;color:#c24545;font-weight:900;line-height:1;margin-bottom:14px;opacity:.85}
.wa-ivfc-acc .wa-ivfnum{color:#f3d5c2}
.wa-ivfc h3{font-size:20px;margin-bottom:14px;letter-spacing:2px}
.wa-ivfc p{font-size:14px;line-height:2;color:#5a4a3a}
.wa-ivftag{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.wa-ivftag span{font-size:11px;letter-spacing:2px;padding:3px 10px;border:1px solid #c24545;color:#c24545}
.wa-poem{text-align:center;font-size:18px;font-family:'Noto Serif JP';font-style:italic;color:#5a4a3a;letter-spacing:3px;padding:24px;background:#faf5eb;border-top:1px solid #c24545;border-bottom:1px solid #c24545;max-width:700px;margin:0 auto}
.wa-poem span{color:#c24545;font-size:32px;vertical-align:-8px;padding:0 8px}

/* process */
.wa-proc{padding:80px 0}
.wa-proclist{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid #c24545;border-bottom:1px solid #c24545}
.wa-proclist>div{padding:30px 18px;text-align:center;border-right:1px dashed #d5c6a8;position:relative;background:#faf5eb}
.wa-proclist>div:last-child{border-right:none}
.wa-proclist>div::before{content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:14px;height:14px;background:#c24545;border-radius:50%;border:3px solid #faf5eb}
.wa-proclist b{display:block;font-family:'Noto Serif JP';font-size:22px;color:#c24545;letter-spacing:4px;margin-bottom:10px}
.wa-proclist p{font-size:12px;color:#5a4a3a;line-height:1.7}

/* faq */
.wa-faq{padding:80px 0;background:#f3e8d2}
.wa-faqlist{max-width:800px;margin:0 auto}
.wa-fq{background:#faf5eb;border:1px solid #e0d3b8;margin-bottom:12px}
.wa-fq[open]{border-color:#c24545}
.wa-fq summary{list-style:none;padding:18px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:15px;letter-spacing:2px;font-weight:700}
.wa-fq summary::marker{display:none}
.wa-fq summary::-webkit-details-marker{display:none}
.wa-fq summary i{width:10px;height:10px;border-right:2px solid #c24545;border-bottom:2px solid #c24545;transform:rotate(45deg);transition:transform .2s}
.wa-fq[open] summary i{transform:rotate(-135deg)}
.wa-fq>div{padding:0 24px 20px;font-size:14px;line-height:2;color:#5a4a3a;border-top:1px dashed #e0d3b8;padding-top:14px}

/* news */
.wa-news{padding:80px 0}
ul.article-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;list-style:none;margin:0;padding:0;width:100%;box-sizing:border-box}
ul.article-cards>li.article-card{min-width:0;width:auto;max-width:none;margin:0;float:none;box-sizing:border-box;background:#faf5eb;border:1px solid #e0d3b8;padding:0;transition:all .3s;overflow:hidden}
ul.article-cards>li.article-card:hover{transform:translateY(-4px);box-shadow:4px 8px 18px rgba(60,30,20,.1);border-color:#c24545}
.article-card .card-thumb{width:100%;overflow:hidden;border-bottom:1px solid #e0d3b8}
.article-card .card-thumb img{display:block;width:100%;max-width:100%;height:180px;object-fit:cover;transition:transform .4s}
ul.article-cards>li.article-card:hover .card-thumb img{transform:scale(1.04)}
.article-card .card-body{padding:18px}
.article-card .card-title{overflow-wrap:anywhere;font-weight:700;font-size:15px;margin-bottom:8px;line-height:1.5;letter-spacing:1px}
.article-card .card-title a{color:#2b1d15}
.article-card .card-title a:hover{color:#c24545}
.article-card .card-date{display:block;font-size:12px;color:#c24545;margin-bottom:8px;letter-spacing:2px;font-family:'Noto Serif JP'}
.article-card .card-summary{overflow-wrap:anywhere;font-size:13px;color:#5a4a3a;line-height:1.8}

/* about */
.wa-about{padding:80px 0;background:#2b1d15;color:#faf5eb}
.wa-abin{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:center}
.wa-ab-l h2{color:#faf5eb;font-size:40px;letter-spacing:10px;margin:14px 0 18px}
.wa-ab-l p{color:#d5c6a8;font-size:15px;line-height:2;margin-bottom:24px;max-width:560px}
.wa-ablist li{padding:8px 0;color:#d5c6a8;font-size:14px;letter-spacing:1px;border-bottom:1px dashed rgba(213,198,168,.2)}
.wa-notice{background:#faf5eb;color:#2b1d15;padding:30px;border:1px solid #d5c6a8;position:relative}
.wa-notice::before{content:'告';position:absolute;top:-14px;left:20px;width:36px;height:36px;display:grid;place-items:center;background:#c24545;color:#faf5eb;font-family:'Noto Serif JP';font-weight:900}
.wa-notice h3{font-size:20px;letter-spacing:4px;margin-bottom:14px;margin-top:6px;color:#c24545}
.wa-notice p{font-size:13px;line-height:1.9;color:#5a4a3a;margin-bottom:18px}

/* contact */
.wa-contact{padding:80px 0;background:#f3e8d2}
.wa-ctin{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:flex-start}
.wa-ct-l h2{font-size:40px;letter-spacing:10px;margin:10px 0 18px}
.wa-ct-l p{color:#5a4a3a;font-size:15px;line-height:2;max-width:440px;margin-bottom:28px}
.wa-bigcall{display:inline-block;font-family:'Noto Serif JP';font-size:30px;padding:18px 30px;background:#faf5eb;color:#c24545;border:2px solid #c24545;letter-spacing:3px;transition:all .2s}
.wa-bigcall:hover{background:#c24545;color:#faf5eb}
.wa-form{background:#faf5eb;border:1px solid #e0d3b8;padding:30px}
.wa-form h3{font-size:22px;letter-spacing:6px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #c24545;color:#c24545}
.wa-form label{display:block;font-size:13px;letter-spacing:2px;margin-bottom:14px;color:#5a4a3a}
.wa-f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wa-form input,.wa-form select,.wa-form textarea{width:100%;padding:10px;border:1px solid #d5c6a8;background:#fff;font-family:'Noto Serif SC',serif;font-size:14px;margin-top:6px;color:#2b1d15}
.wa-form input:focus,.wa-form select:focus,.wa-form textarea:focus{outline:none;border-color:#c24545}
.wa-form textarea{resize:vertical}

/* DETAIL */
.wa-bread{padding:24px 0 0;font-size:13px;color:#8a745c;letter-spacing:2px}
.wa-bread a{color:#c24545}
.wa-detail{padding:20px 0 70px}
.wa-art{max-width:820px;margin:0 auto;background:#faf5eb;padding:50px;border:1px solid #e0d3b8;position:relative;box-shadow:4px 4px 0 rgba(194,69,69,.1)}
.wa-art-stamp{position:absolute;top:20px;right:20px;width:48px;height:48px;display:grid;place-items:center;background:#c24545;color:#faf5eb;font-family:'Noto Serif JP';font-size:20px;font-weight:900;transform:rotate(6deg)}
.wa-art h1{font-size:30px;letter-spacing:3px;line-height:1.4;margin-bottom:16px}
.wa-ameta{display:flex;gap:16px;font-size:12px;color:#8a745c;letter-spacing:2px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px dashed #d5c6a8}
.wa-asum{background:rgba(194,69,69,.06);border-left:3px solid #c24545;padding:18px 22px;font-size:15px;line-height:2;color:#5a4a3a;margin-bottom:24px;font-style:italic}
.wa-afig{margin-bottom:26px}
.wa-afig img{width:100%;height:auto;border:1px solid #e0d3b8}
.wa-afig figcaption{text-align:center;font-size:12px;color:#8a745c;letter-spacing:2px;margin-top:10px;font-family:'Noto Serif JP';font-style:italic}
.wa-abody{font-size:16px;line-height:2;color:#3a2f26}
.wa-abody p{margin-bottom:18px;text-indent:2em}
.wa-abody h2,.wa-abody h3,.wa-abody h4{margin:28px 0 14px;text-indent:0;letter-spacing:2px}
.wa-abody h2{font-size:24px}
.wa-abody h3{font-size:20px}
.wa-abody h4{font-size:17px}
.wa-abody img{width:100%;max-width:100%;height:auto;margin:18px 0;border:1px solid #e0d3b8}
.wa-abody ul,.wa-abody ol{padding-left:22px;margin-bottom:16px;text-indent:0}
.wa-abody li{margin-bottom:6px}
.wa-adis{background:#f3e8d2;border-left:3px solid #c24545;padding:22px;margin-top:30px}
.wa-adis h4{color:#c24545;margin-bottom:8px;font-size:15px;letter-spacing:3px}
.wa-adis p{font-size:13px;color:#5a4a3a;line-height:1.8}
.wa-anav{margin:24px 0;padding:20px 0;border-top:1px dashed #d5c6a8;border-bottom:1px dashed #d5c6a8}
.wa-anav h4{margin-bottom:12px;letter-spacing:4px;font-size:14px;color:#c24545}
.wa-atags{display:flex;gap:10px;flex-wrap:wrap}
.wa-atags a{padding:8px 14px;border:1px solid #c24545;color:#c24545;font-size:12px;letter-spacing:2px}
.wa-atags a:hover{background:#c24545;color:#faf5eb}
.wa-act{display:flex;gap:14px;flex-wrap:wrap}

/* FOOTER */
.wa-foot{background:#2b1d15;color:#d5c6a8;padding:56px 0 0;border-top:4px solid #c24545}
.wa-ftin{display:grid;grid-template-columns:1.6fr 1fr 1.4fr;gap:40px;padding-bottom:40px}
.wa-ftlogo .wa-logot b{color:#faf5eb}
.wa-ftlogo .wa-logot small{color:#8a745c}
.wa-ftl p{font-size:13px;line-height:1.9;margin:16px 0 22px;max-width:380px}
.wa-ftc h4,.wa-ftr h4{color:#faf5eb;margin-bottom:16px;letter-spacing:4px;font-size:15px}
.wa-ftc a{display:block;padding:5px 0;font-size:13px;letter-spacing:2px}
.wa-ftc a:hover{color:#f3d5c2}
.wa-ftr a{display:inline-block;margin:3px 8px 3px 0;font-size:12px;opacity:.7}
.wa-ftr a:hover{opacity:1;color:#f3d5c2}
.wa-ftb{background:#1f1510;padding:16px 0;font-size:12px;letter-spacing:2px}
.wa-ftbin{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.wa-ftbin a{color:#f3d5c2}

/* responsive */
@media (max-width:1024px){
  .wa-hin2{grid-template-columns:1fr;gap:50px}
  .wa-vt{position:static;writing-mode:horizontal-tb;display:inline-block;margin-bottom:14px}
  .wa-h-l{padding-left:0}
  .wa-sgrid{grid-template-columns:repeat(2,1fr)}
  .wa-ivfgrid{grid-template-columns:1fr}
  .wa-proclist{grid-template-columns:repeat(3,1fr)}
  .wa-proclist>div{border-bottom:1px dashed #d5c6a8}
  .wa-proclist>div:nth-child(3n){border-right:none}
  .wa-abin,.wa-ctin{grid-template-columns:1fr;gap:40px}
  .wa-ftin{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .wa-nav{display:none}
  .wa-ham{display:flex}
  .wa-hero{padding:40px 0 50px}
  .wa-h-block h1{font-size:40px;letter-spacing:2px}
  .wa-sect{flex-wrap:wrap}
  .wa-sect h2{font-size:24px;letter-spacing:4px}
  .wa-sect i{margin-left:0;width:100%}
  .wa-svc,.wa-ivf,.wa-proc,.wa-faq,.wa-news,.wa-about,.wa-contact{padding:50px 0}
  .wa-sgrid{grid-template-columns:1fr}
  .wa-proclist{grid-template-columns:repeat(2,1fr)}
  .wa-f2{grid-template-columns:1fr}
  .wa-bigcall{font-size:22px;padding:14px 20px}
  .wa-art{padding:26px 20px}
  .wa-art h1{font-size:24px}
  .wa-ftin{grid-template-columns:1fr}
  .wa-ftbin{flex-direction:column;align-items:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
