/* ひとふくろめ 2026-11 改訂の追加分。既存 styles.css の上に重ねる。
   方針：落ち着いた紙と墨の色はそのまま。角を丸め、黄色い写真から取った差し色を少しだけ足す。 */
:root {
  --pop:#f2d68c;        /* 黄色い写真の背景から取った、やわらかい山吹 */
  --pop-soft:#fbf1d3;
  --kraft:#b98a55;      /* クラフト紙の袋の色 */
  --round:22px;
}

/* プレビュー用（公開時は削除） */
.preview-bar {background:#fff3c8;color:#5e4600;font-size:13px;line-height:1.6;position:relative;z-index:30}
.preview-bar .inner {width:min(100% - 2 * var(--side),1440px);margin:auto;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding:8px 0}
.preview-bar button {border:1px solid currentColor;padding:2px 12px;font-size:13px;border-radius:999px}
.tbd {display:inline-block;background:#fff0bf;color:#5e4600;font:600 11px/1.7 var(--sans);padding:0 7px;margin-left:4px;vertical-align:.18em;border-radius:999px}
body.hide-tbd .tbd {display:none}

/* 角を丸める（かくかくした所） */
.button:not(.header-cta) {border-radius:999px;padding-inline:28px}
.field input,.field textarea {border-radius:14px;border-color:#b9b5aa}
.bag-photo,.material-photo,.support-photo,.flow-photo {border-radius:var(--round);overflow:hidden}
.dog-photo {border-radius:18px}

/* 見出しの一部に、マーカーのような差し色 */
.mark {background:linear-gradient(transparent 64%,var(--pop) 64%,var(--pop) 92%,transparent 92%);padding:0 .08em}

/* できること */
.can-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8%;align-items:center}
.can-photo img {width:100%;aspect-ratio:.95;object-fit:cover;object-position:50% 60%;filter:saturate(.8)}
.can-list {list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:34px 30px;margin-top:38px}
.can-list li {display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.sticker {width:44px;height:44px;border-radius:50%;background:var(--kraft);color:#fff;display:grid;place-items:center;font:500 17px/1 var(--serif);transform:rotate(-6deg)}
.can-list li:nth-child(even) .sticker {transform:rotate(5deg);background:var(--accent)}
.can-list h3 {font-size:20px;line-height:1.5}
.can-list p {font-size:14.5px;color:var(--body);margin-top:6px;line-height:1.85}

/* メニュー */
.menu-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.menu-card {position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--round);padding:30px 28px 26px;display:flex;flex-direction:column;gap:6px;min-width:0}
.menu-card.recommended {border:2px solid var(--kraft);background:#fffdf7}
.menu-badge {position:absolute;top:-15px;right:22px;background:var(--pop);color:#4a3a1a;font-size:13px;font-weight:600;padding:4px 14px;border-radius:999px;transform:rotate(3deg);letter-spacing:.06em}
.menu-kind {font-size:13px;color:var(--quiet)}
.menu-card h3 {font-size:clamp(24px,2.2vw,30px);line-height:1.4}
.menu-price {font:500 clamp(28px,2.5vw,34px)/1.3 var(--serif);margin:10px 0 6px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.menu-price small {font:400 13px var(--sans);color:var(--quiet);margin-left:6px}
.menu-card ul {list-style:none;margin:8px 0 18px;display:grid;gap:9px}
.menu-card li {font-size:14.5px;color:var(--body);padding-left:1.3em;position:relative;line-height:1.75}
.menu-card li:before {content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--pop)}
.menu-card.recommended li:before {background:var(--kraft)}
.menu-card .text-link {margin-top:auto;align-self:flex-start}
.menu-note {margin-top:30px;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14.5px;color:var(--body)}
.menu-note p {display:flex;gap:10px;align-items:baseline}
.menu-note p:before {content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--kraft);transform:translateY(-2px)}

/* はじめ方 */
.start-steps {list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;position:relative;margin-top:10px}
.start-steps:before {content:"";position:absolute;top:31px;left:8%;right:8%;border-top:2px dashed #cfc6b4;z-index:0}
.start-steps li {position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;align-items:center}
.start-num {width:62px;height:62px;border-radius:50%;background:var(--paper);border:2px solid var(--kraft);display:grid;place-items:center;font:500 22px/1 var(--serif);color:var(--accent)}
.start-steps li:last-child .start-num {background:var(--pop);border-color:var(--pop)}
.start-steps h3 {font-size:21px;margin-top:16px}
.start-steps p {font-size:14.5px;color:var(--body);margin-top:8px;max-width:19em}
.free-tag {display:inline-block;margin-top:10px;font-size:12px;font-weight:600;color:#4a3a1a;background:var(--pop-soft);border:1px solid var(--pop);padding:1px 12px;border-radius:999px}
.start-foot {margin-top:44px;display:flex;justify-content:center}

/* よくある質問：一覧の幅を落ち着かせる */
.faq-item summary {font-size:16px}

/* 無料相談 */
.contact-intro .contact-note {margin-top:22px;padding:18px 22px;background:#fff;border-radius:18px;font-size:14.5px;color:var(--body);line-height:1.9}
.contact-form-wrap {background:#fff;border-radius:28px;padding:clamp(22px,3.5vw,40px)}
.choice-field {border:0;margin:0 0 24px;padding:0;min-width:0}
.choice-field legend {display:flex;gap:11px;align-items:center;margin-bottom:7px;font-size:15px;padding:0}
.choice-field .optional {font-size:12px;color:var(--quiet)}
.choices {display:flex;flex-wrap:wrap;gap:8px}
.choices label {display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;cursor:pointer;border:1px solid #cfcabd;border-radius:999px;padding:0 16px;background:var(--paper)}
.choices label:has(input:checked) {border-color:var(--kraft);background:var(--pop-soft)}
.choices input {width:16px;height:16px;margin:0;accent-color:var(--accent)}

/* 特商法の表記 */
.legal-notes dl {margin-top:10px}
.legal-notes dl > div {display:grid;grid-template-columns:8em minmax(0,1fr);gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}

@media (max-width:900px) {
  .menu-cards {gap:16px}
  .can-layout {gap:5%}
}
@media (max-width:700px) {
  .can-layout {grid-template-columns:1fr;gap:28px}
  .can-photo img {aspect-ratio:1.4}
  .can-list {grid-template-columns:1fr;gap:24px;margin-top:26px}
  .menu-cards {grid-template-columns:1fr;gap:26px}
  .start-steps {grid-template-columns:1fr;gap:26px}
  .start-steps:before {display:none}
  .start-steps li:not(:last-child):after {content:"";position:absolute;left:30px;top:66px;bottom:-22px;border-left:2px dashed #cfc6b4}
  .start-steps li {display:grid;grid-template-columns:62px minmax(0,1fr);gap:4px 16px;text-align:left;align-items:start}
  .start-steps li > *:not(.start-num) {grid-column:2}
  .start-steps .start-num {grid-row:1 / span 3}
  .start-steps h3 {margin-top:12px}
  .start-steps .free-tag {justify-self:start}
  .legal-notes dl > div {grid-template-columns:1fr}
  .contact-form-wrap {border-radius:22px}
}

/* トップの案内ボックス */
.cover-invitation.invite-card {border-left:0;background:#fff;border-radius:26px;padding:26px 28px 24px;box-shadow:0 1px 0 var(--line);position:relative}
.invite-card .consultation-purpose {font:500 17px/1.8 var(--serif);color:var(--ink);letter-spacing:.03em}
.invite-card .invite-button {margin-top:16px;width:100%;background:var(--ink)}
.invite-tags {list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.invite-tags li {font-size:13px;line-height:1.6;padding:4px 12px;border-radius:999px;background:var(--pop-soft);color:#5a4622;white-space:nowrap}

/* こんな方に */
.opening-note p + p {margin-top:.3em;color:var(--ink)}
.opening-note .opening-sub {margin-top:.9em;color:var(--quiet);font-size:14.5px}

/* ほかの商品 */
.other-items {list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.other-items li {font:500 16px/1.6 var(--serif);padding:8px 18px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink)}

/* できること の導入文 */
.can-lead {margin-top:18px;color:var(--body);font-size:15px;line-height:2}

/* 改行の調整（どのブラウザでも言葉の途中で折れにくくする） */
h1,h2,h3,.consultation-purpose,.cover-support,.menu-kind,.free-tag {word-break:keep-all}
p,li,dd {text-wrap:pretty}
.copy-phrase {display:inline-block;max-width:100%}

@media (max-width:700px) {
  .cover-invitation.invite-card {padding:22px 20px 20px;border-radius:22px}
  .invite-card .consultation-purpose {font-size:16px}
}

/* 言葉の区切り（<wbr>）でだけ改行する。長すぎる語は枠内で折り返す */
body {word-break:keep-all;overflow-wrap:anywhere}
.mail,.footer-contact a,dialog a {word-break:break-all}

/* タブレット幅で窮屈にならないよう、列を減らす */
@media (max-width:1100px) {
  .can-layout {grid-template-columns:1fr;gap:34px}
  .can-photo {max-width:640px}
  .can-photo img {aspect-ratio:1.5}
}
@media (max-width:960px) {
  .menu-cards {grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto;gap:26px}
}
.nw {white-space:nowrap}
.menu-note p {display:block;position:relative;padding-left:16px}
.menu-note p:before {position:absolute;left:0;top:.75em}
.footer-contact a {display:inline-block}
@media (max-width:360px) {h2 {font-size:25px;letter-spacing:.03em}}
.invite-button {white-space:nowrap}
@media (max-width:960px) {
  .cover-foot {display:block}
  .cover-invitation.invite-card {margin-top:24px;width:auto;max-width:520px}
}
@media (max-width:360px) {
  .invite-card .invite-button {padding-inline:18px;font-size:14.5px;gap:10px}
  .cover-invitation.invite-card {padding-inline:16px}
}

/* 使い方の例 */
.examples {background:var(--pop-soft);padding-block:clamp(56px,7vw,96px)}
.examples h2 {font-size:clamp(26px,2.8vw,40px);text-align:center}
.example-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(28px,4vw,48px)}
.example-card {background:#fff;border-radius:var(--round);padding:28px 26px 30px;min-width:0}
.example-card:nth-child(1) {transform:rotate(-.6deg)}
.example-card:nth-child(3) {transform:rotate(.6deg)}
.example-tag {display:inline-block;font-size:13px;font-weight:600;color:#fff;background:var(--kraft);padding:3px 14px;border-radius:999px;letter-spacing:.04em}
.example-card:nth-child(2) .example-tag {background:var(--accent)}
.example-card h3 {font-size:clamp(18px,1.6vw,21px);line-height:1.75;margin-top:16px}
.example-note {margin-top:24px;text-align:center;font-size:13.5px;color:var(--quiet)}
@media (max-width:900px) {
  .example-cards {grid-template-columns:1fr;max-width:520px;margin-inline:auto;gap:14px}
  .example-card {transform:none!important;padding:22px 22px 24px}
  .example-card h3 br {display:none}
}
/* 既存の styles.css にある auto-phrase も、keep-all に揃える（対応していないブラウザで言葉の途中で折れるため） */
.cover-support,.consultation-purpose,.hero-consultation-note,.consultation-outcomes li {word-break:keep-all}

/* ===== 動きの調整（2026-11-11）=====
   以前は「表示 → 急に半透明＋下へずれる → 戻る」になり、カクッと見えていた。
   画面に入る前は隠しておき、入ったら一度だけ滑らかに表示する。
   transform ではなく translate / scale を使い、カードの傾き（rotate）と干渉させない。 */
@media (prefers-reduced-motion:no-preference) {
  .motion .reveal {opacity:0;translate:0 16px;transition:opacity .8s cubic-bezier(.22,.61,.36,1),translate .8s cubic-bezier(.22,.61,.36,1)}
  .motion .reveal.is-visible {opacity:1;translate:none}
  /* 並んでいる要素は、少しずつ遅らせる */
  .motion .example-cards>.reveal:nth-child(2),.motion .can-list>.reveal:nth-child(2),.motion .menu-cards>.reveal:nth-child(2),.motion .start-steps>.reveal:nth-child(2) {transition-delay:.08s}
  .motion .example-cards>.reveal:nth-child(3),.motion .can-list>.reveal:nth-child(3),.motion .menu-cards>.reveal:nth-child(3),.motion .start-steps>.reveal:nth-child(3) {transition-delay:.16s}
  .motion .can-list>.reveal:nth-child(4) {transition-delay:.24s}
  /* 古い動き（keyframes）は止めて、上の動きに一本化する */
  .motion .section-head.is-visible,.motion .fee-intro.is-visible,.motion .material-story.is-visible .material-copy,
  .motion .opening-photos.is-visible .bag-photo,.motion .opening-photos.is-visible .dog-photo,
  .motion .material-story.is-visible .material-photo img,.motion .support-photo.is-visible img,.motion .flow-intro.is-visible .flow-photo img {animation:none}
  /* 写真は、ほんの少し寄った状態から戻す */
  .motion .material-story .material-photo img,.motion .support-photo img,.motion .flow-photo img {scale:1.04;transition:scale 1.2s cubic-bezier(.22,.61,.36,1)}
  .motion .material-story.is-visible .material-photo img,.motion .support-photo.is-visible img,.motion .flow-intro.is-visible .flow-photo img {scale:1}
  /* 表紙の絵：重い「マスクの動き」をやめ、軽いフェードに */
  .cover-art.inked {animation:cover-in 1.1s cubic-bezier(.22,.61,.36,1) backwards;mask-image:none}
  @keyframes cover-in {from {opacity:0;translate:0 10px} to {opacity:1;translate:none}}
  /* よくある質問：開閉をなめらかに（対応ブラウザのみ。非対応でも普通に開く） */
  :root {interpolate-size:allow-keywords}
  .faq-item::details-content {block-size:0;overflow:hidden;transition:block-size .38s cubic-bezier(.22,.61,.36,1),content-visibility .38s allow-discrete}
  .faq-item[open]::details-content {block-size:auto}
  .plus:after {transition:transform .3s ease}
  /* スマホのメニュー：ふわっと開く */
  .mobile-menu {transition:opacity .22s ease,translate .22s ease,display .22s allow-discrete}
  .mobile-menu[hidden] {opacity:0;translate:0 -6px}
  @starting-style {.mobile-menu:not([hidden]) {opacity:0;translate:0 -6px}}
  /* ボタンの色の切り替え */
  .button,.text-link,.choices label {transition:background-color .2s ease,color .2s ease,border-color .2s ease}
}
