/* 配色はここで一括調整。SWELL移行時は主色・文字色・背景色に対応させます。 */
:root{--primary:#603c55;--accent:#87506f;--logo-pink:#c78cb7;--ink:#352e34;--muted:#6b5d66;--paper:#fff;--wash:#fcf7fa;--line:#e9dce5;--max:1120px;--gutter:clamp(20px,5vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}p,h1,h2,h3{margin-top:0}p{margin-bottom:1.25rem}h1,h2,h3{color:var(--primary);font-weight:700;letter-spacing:.025em}h2{font-size:clamp(26px,3.2vw,36px);line-height:1.65;margin-bottom:1.5rem}h3{font-size:24px;line-height:1.65}.container{width:min(calc(100% - var(--gutter)*2),var(--max));margin-inline:auto}.section{padding-block:clamp(56px,7vw,100px)}.eyebrow{font-family:Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.16em;line-height:1.6;color:var(--accent);margin-bottom:1.25rem}.skip-link{position:absolute;top:8px;left:8px;transform:translateY(-200%);z-index:10;background:var(--primary);color:white;padding:10px 18px}.skip-link:focus{transform:none}:focus-visible{outline:3px solid #a56610;outline-offset:5px}section[id],article[id]{scroll-margin-top:110px}
/* ロゴは受領した原画像をそのまま使用します。 */
.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:104px}.wordmark{font-size:25px;font-weight:700;line-height:1.4;white-space:nowrap;color:var(--primary)}.wordmark span{display:block;font:10px/2.5 Arial,sans-serif;letter-spacing:.13em}.header-inner nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600}.nav-contact{background:var(--primary);color:#fff;padding:13px 22px;border-radius:4px}.nav-contact span{margin-left:20px}.hero{padding-bottom:0;background:linear-gradient(90deg,#fff 58%,var(--wash) 58%)}.hero-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:70px;align-items:center}.dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:10px;vertical-align:middle}h1{font-size:clamp(36px,4.4vw,58px);line-height:1.45;letter-spacing:.02em;margin-bottom:28px}h1 span{color:var(--accent)}.hero-lead{font-size:20px;font-weight:700;line-height:1.85}.body-copy{color:var(--muted);max-width:32rem}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:54px;padding:13px 24px;border-radius:4px;font-size:16px;font-weight:700;border:1px solid transparent}.primary{background:var(--primary);color:white}.text-link{font-size:14px;border-bottom:1px solid var(--line);padding-block:8px}.text-link span{margin-left:20px}.hero-directory{border-top:3px solid var(--accent);padding:34px 28px 16px;background:#fff}.directory-intro{font-size:23px;line-height:1.8;font-weight:600;color:var(--primary);margin-bottom:24px}.directory-row{display:grid;grid-template-columns:28px 1fr 14px;gap:16px;align-items:center;padding:23px 0;border-top:1px solid var(--line)}.service-number{font:14px/1.5 Arial,sans-serif;letter-spacing:.04em;color:var(--accent)}.directory-row small{display:block;font:11px/1.8 Arial,sans-serif;letter-spacing:.13em;color:var(--muted);margin-bottom:4px}.directory-row strong{font-size:16px;line-height:1.8;display:block}.directory-row>span:last-child{color:var(--accent)}.directory-footer{font:11px/1.8 Arial,sans-serif;letter-spacing:.16em;color:var(--muted);margin:20px 0 0}.hero-bottom{display:flex;justify-content:space-between;gap:24px;font:11px/1.7 Arial,sans-serif;letter-spacing:.12em;color:var(--muted);margin-top:64px;padding-bottom:26px}.hero-bottom a span{margin-left:20px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);font-size:16px}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;padding:28px}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.card-label{font:11px/1.8 Arial,sans-serif;letter-spacing:.12em;color:var(--muted)}.service-card>p{font-size:16px;color:var(--muted);line-height:2}.card-link{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:22px;border-top:1px solid var(--line);color:var(--accent);font-size:14px;font-weight:700}.about{background:var(--wash)}.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:90px}.about-intro{color:var(--muted);font-size:17px}.about-copy>p{line-height:2}.profile{margin:28px 0 0;border-top:1px solid var(--line)}.profile>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.profile dt{color:var(--muted)}.profile dd{margin:0;overflow-wrap:anywhere}.contact{background:var(--primary);color:white;text-align:center}.contact .eyebrow{color:#f1cee6}.contact h2{color:#fff;font-size:clamp(26px,3.2vw,38px)}.contact-inner>p:not(.eyebrow){color:#f2e8ee}.contact-button{background:white;color:var(--primary);min-width:280px;margin-top:10px}.contact .contact-note{font-size:13px;margin-top:14px;line-height:1.8}.mobile-break{display:none}.site-footer{padding-block:36px}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:24px}.footer-inner>p{font-size:12px;color:var(--muted);margin:0}.back-top{font-size:13px}.back-top span{margin-left:20px}@media(hover:hover){a:hover{color:var(--accent)}.primary:hover,.nav-contact:hover{background:var(--accent);color:#fff}.directory-row:hover,.card-link:hover{opacity:.75}}
/* タブレット：長い説明のサービスカードは1列に。 */
@media(max-width:1000px){.hero-grid{gap:30px;grid-template-columns:1.1fr 1fr}.hero-directory{padding:25px 20px 16px}.directory-intro{font-size:21px}.directory-row{gap:10px}.directory-row strong{font-size:14px}.header-inner nav{gap:18px}.services-grid{grid-template-columns:1fr}.service-card{padding:30px}.card-top{margin-bottom:14px}.service-card>p{font-size:16px}.about-grid{gap:40px}.hero-bottom{margin-top:48px}}
/* スマホ：縦積みにし、ナビゲーションも折り返して表示。 */
@media(max-width:700px){html{scroll-padding-top:24px}section[id],article[id]{scroll-margin-top:24px}.header-inner{min-height:0;flex-direction:column;align-items:flex-start;padding-block:20px;gap:18px}.wordmark{font-size:22px}.header-inner nav{width:100%;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}.nav-contact{padding:10px 12px}.nav-contact span{margin-left:8px}.hero{background:var(--wash);padding-top:48px}.hero-grid{grid-template-columns:1fr;gap:38px}.hero .eyebrow{font-size:11px;letter-spacing:.1em}.hero-lead{font-size:18px}h1{font-size:clamp(34px,8vw,46px);margin-bottom:24px}.hero-directory{padding:25px}.directory-row strong{font-size:16px}.hero-bottom>span{display:none}.hero-bottom{justify-content:flex-end;margin-top:30px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px}.service-card{padding:24px}.about-grid{grid-template-columns:1fr;gap:20px}.about-copy>p{font-size:16px}.contact-inner>p br{display:none}.mobile-break{display:block}.contact-button{min-width:0;width:100%;max-width:350px}.footer-inner{flex-wrap:wrap}.footer-inner .wordmark{width:100%}.profile>div{grid-template-columns:74px 1fr;gap:12px}.actions{gap:18px}.button{gap:22px}}
/* 動きを減らす設定を尊重します。 */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ロゴの横長比率を保持。文字色とボタンには読みやすい濃いピンクを使います。 */
.wordmark{display:block;flex-shrink:0;max-width:100%}.wordmark img{display:block;width:300px;max-width:100%;height:auto}.header-inner{min-height:122px}.site-footer .wordmark img{width:250px}.profile dd a{text-decoration:underline;text-underline-offset:4px}.contact-email{font-size:18px;margin-top:24px;margin-bottom:8px;overflow-wrap:anywhere}.contact-email a{text-decoration:underline;text-underline-offset:5px}.contact .contact-note{font-size:14px}.contact a:focus-visible{outline-color:#fff}.contact .contact-button:hover{background:#f5e8f0}.service-card{gap:0}.service-card>p{margin-bottom:24px}/* サービス見出し：02の長い名称が収まる文字サイズで統一し、2行分の高さを確保。 */
.service-card h3{font-size:1.25rem;line-height:1.65;min-height:3.3em}
/* 説明欄は残りの高さを均等に使い、文章の開始位置と下部リンクをそろえる。 */
.service-card>p{flex:1}

@media(max-width:1000px){.header-inner nav{gap:14px;font-size:13px}.wordmark img{width:250px}.service-card h3{min-height:0}}
@media(max-width:700px){.header-inner{padding-block:8px 20px;gap:6px;min-height:0}.wordmark img{width:280px}.header-inner nav{font-size:14px;gap:8px}.profile>div{grid-template-columns:90px 1fr}.site-footer .wordmark img{width:240px}}
@media(hover:hover){.contact-email a:hover{color:#fff;text-decoration-thickness:2px}.contact-button:hover{color:var(--primary)}}

/* お問い合わせの記入案内：スマホでも読みやすい幅で左揃えにします。 */
.inquiry-guide{max-width:560px;margin:28px auto 24px;padding:22px 26px;border:1px solid #a17f95;border-radius:6px;text-align:left}
.inquiry-guide h3{color:#fff;font-size:16px;line-height:1.8;margin-bottom:10px}
.inquiry-guide ul{margin:0 0 12px;padding-left:1.4em}
.inquiry-guide p{font-size:14px;color:#f2e8ee;margin-bottom:0}
/* 小さな画面や文字拡大でも、長い文字列で列が広がらないようにします。 */
.hero-grid>*{min-width:0}.directory-row>span{min-width:0}.directory-row strong{overflow-wrap:anywhere}
@media(max-width:700px){.inquiry-guide{padding:20px}.hero-directory{padding-inline:20px}}

/* LINEとメールの相談窓口：PCは横並び、スマホは縦並びにします。 */
.contact-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:10px}
.contact-actions .contact-button{margin-top:0}
/* LINEの緑に濃い文字を合わせ、ボタンの文字を読みやすくします。 */
.contact .line-button{background:#06c755;color:#08351b;border-color:#06c755}
@media(hover:hover){.contact .line-button:hover{background:#42db81;color:#08351b;border-color:#42db81}}
@media(max-width:700px){.contact-actions{flex-direction:column;align-items:center;gap:12px}}
