/* page-contact 専用CSS（旧: テンプレート<head>のインライン<style>・2026-07-30に外部化） */
  html,body{margin:0;padding:0;}
  :root{
    --paper:#ffffff; --paper-2:#F5F4F1; --ink:#242220; --ink-soft:#514d47;
    --stone:#8f8b82; --line:#E7E4DE; --dark:#26241F; --dark-2:#1E1C18;
    --brass:#A89878; --paper-on-dark:#EDE8DF;
    --serif-jp:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; /* フォント統一（オーナー指示 2026-07-28） */
    --serif-en:"Cormorant Garamond","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
    --sans:"Cormorant Garamond","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; /* 旧: システムゴシック。フォント統一（オーナー指示 2026-07-28） */
    --gutter:max(clamp(24px,5vw,64px),calc((100vw - 1472px)/2)); /* 大画面ではガターが伸び、コンテンツを中央1472px枠に整列（画像ブリードは全幅維持） */
  }
  *{box-sizing:border-box;}
  .sg{background:var(--paper);color:var(--ink);font-family:var(--serif-jp);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative;}
  .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(24px,5vw,64px);}
  .lbl{font-family:var(--sans);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--stone);font-weight:500;}
  .en-title{font-family:var(--serif-en);font-style:normal;font-weight:400;color:var(--ink);letter-spacing:.01em;}
  .note{background:#1b1a16;color:#cfc8ba;font-family:var(--sans);font-size:12px;letter-spacing:.06em;line-height:1.7;padding:14px 20px;text-align:center;}

  .sg-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:34px var(--gutter);}
  .sg-logo{display:flex;align-items:center;gap:18px;color:var(--paper-on-dark);text-decoration:none;}
  .sg-logo .mark{width:34px;height:34px;border:1px solid rgba(237,232,223,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif-en);font-size:15px;font-style:normal;}
  .sg-logo .jp{font-family:var(--serif-jp);font-size:19px;letter-spacing:.14em;line-height:1;}
  .sg-logo .en{font-family:var(--sans);font-size:9.5px;letter-spacing:.34em;color:rgba(237,232,223,.7);margin-top:5px;text-transform:uppercase;}
  .sg-nav{display:flex;align-items:center;gap:34px;}
  .sg-nav a{font-family:var(--serif-en);font-size:15px;color:rgba(237,232,223,.82);text-decoration:none;letter-spacing:.02em;transition:opacity .3s;}
  .sg-nav a:hover{opacity:.6;}
  .sg-pill{font-family:var(--serif-en);font-size:14px;color:var(--paper-on-dark);border:1px solid rgba(237,232,223,.45);border-radius:40px;padding:11px 26px;display:inline-flex;align-items:center;gap:10px;text-decoration:none;transition:background .35s,color .35s;}
  .sg-pill:hover{background:var(--paper-on-dark);color:var(--dark);}

  .pg-hero{
    position:relative;isolation:isolate;min-height:64vh;overflow:hidden;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:0 var(--gutter) clamp(44px,6vh,72px);
    background:linear-gradient(120deg,#3a4239 0%,#2c322c 45%,#20241e 100%);
    color:var(--paper-on-dark);
  }
  .pg-hero-bg{position:absolute;inset:0;z-index:-1;}
  .pg-hero-bg .ph-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.95) brightness(.92) contrast(1.03);}
  .pg-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,16,.55) 0%,rgba(20,19,16,.18) 40%,rgba(20,19,16,.62) 100%);}
  .pg-vert{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:row-reverse;gap:clamp(14px,2vw,26px);}
  .pg-vert span{writing-mode:vertical-rl;font-size:clamp(22px,2.5vw,36px);letter-spacing:.22em;line-height:1.9;text-shadow:0 22px 54px rgba(0,0,0,.52);display:block;}
  .pg-lead{max-width:28em;margin:0;font-size:clamp(13.5px,1.2vw,16px);letter-spacing:.1em;color:rgba(237,232,223,.85);}
  .pg-en{font-family:var(--serif-en);font-style:normal;font-size:clamp(15px,1.6vw,20px);letter-spacing:.12em;color:rgba(237,232,223,.66);}

  .sec{padding:clamp(140px,19vw,280px) 0;}
  /* 空気感の道具: 短い真鍮罫・薄いゴースト英字 */
  .rule{display:block;width:46px;height:1px;background:var(--brass);margin-bottom:clamp(28px,4vw,48px);}
  .ghost-en{position:absolute;z-index:0;font-family:var(--serif-en);font-style:normal;line-height:.8;color:rgba(36,34,32,.045);pointer-events:none;white-space:nowrap;user-select:none;}
  /* 非対称ステートメント */
  .stmt2{position:relative;}
  .stmt2 h2{margin:clamp(40px,6vw,72px) 0 0;font-weight:400;font-size:clamp(24px,3.6vw,46px);letter-spacing:.14em;line-height:1.9;max-width:18em;}
  /* 本文は右下から左（見出しと同じ左端）へ（オーナー指示 2026-07-30）。
     旧: margin-left:auto で右へ寄せる非対称組みだったが、離れて浮いて見えたため
     見出しの左端に揃える。スマホは元から左揃えなので挙動が一致する */
  /* 21emは狭く3行で「暮ら/し」等の泣き別れが出ていたため拡幅（オーナー指示 2026-07-30。
     sp-statement p の 42em 拡幅と同じ判断）。balance＋文節折りで行の切れ目も整える */
  .stmt2 .body{max-width:42em;margin:clamp(70px,10vw,140px) auto 0 0;font-size:15.5px;letter-spacing:.08em;line-height:2.7;color:var(--ink-soft);}
  /* balance はPC幅のみ（2026-08-07）。iOS26系WebKitはスマホ幅で全行を短く均すため本文には掛けない */
  @media(min-width:861px){ .stmt2 .body p{text-wrap:balance;word-break:auto-phrase;} }/* auto-phraseもPC限定（2026-08-07） */
  .stmt2 .body p{margin:0;}

  /* 全幅画像帯（.bleed / .bl-ph / .bl-cap）はマークアップごと削除したためCSSも撤去（2026-07-30） */

  /* ---------- フォーム（余白と罫線の設え） ---------- */
  .form-wrap{max-width:720px;margin:0 auto;}
  .form-head{text-align:center;margin-bottom:clamp(60px,9vw,110px);}
  .form-head h2{margin:26px 0 0;font-weight:400;font-size:clamp(22px,2.8vw,34px);letter-spacing:.16em;}
  .form-head p{margin:28px auto 0;max-width:32em;font-size:14px;color:var(--ink-soft);letter-spacing:.05em;line-height:2.2;}
  .f-row{margin-bottom:clamp(48px,7vw,68px);}
  .f-label{display:block;font-size:14.5px;letter-spacing:.12em;margin-bottom:16px;}
  .f-label .req{color:var(--brass);font-size:12px;margin-left:8px;font-family:var(--sans);letter-spacing:.08em;}
  .f-note{display:block;margin-top:10px;font-family:var(--sans);font-size:11.5px;color:var(--stone);letter-spacing:.04em;}
  input[type=text],input[type=email],input[type=tel],textarea,select{
    width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;
    font-family:var(--serif-jp);font-size:15.5px;color:var(--ink);letter-spacing:.05em;
    padding:10px 2px 14px;outline:none;border-radius:0;-webkit-appearance:none;appearance:none;
    transition:border-color .35s;
  }
  input:focus,textarea:focus,select:focus{border-bottom-color:var(--brass);}
  ::placeholder{color:#b7b2a8;}
  textarea{min-height:170px;resize:vertical;line-height:2;}
  select{background-image:linear-gradient(45deg,transparent 50%,var(--stone) 50%),linear-gradient(135deg,var(--stone) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;}
  .f-radios{display:flex;gap:26px;flex-wrap:wrap;}
  .f-radios label{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;letter-spacing:.06em;cursor:pointer;}
  .f-radios input{accent-color:var(--brass);width:15px;height:15px;}
  .f-privacy{margin-top:54px;font-family:var(--sans);font-size:11.5px;line-height:2;color:var(--stone);letter-spacing:.04em;border-top:1px solid var(--line);padding-top:30px;}
  .f-privacy a{color:var(--ink-soft);}
  .f-submit{text-align:center;margin-top:54px;}
  .f-submit button{
    display:inline-flex;align-items:center;gap:14px;font-family:var(--serif-en);font-style:normal;font-size:17px;
    color:var(--paper-on-dark);background:var(--dark);border:0;border-radius:44px;padding:18px 60px;cursor:pointer;
    letter-spacing:.04em;transition:background .35s;
  }
  .f-submit button:hover{background:var(--dark-2);}

  .sg-footer{background:var(--dark-2);color:rgba(237,232,223,.75);padding:clamp(70px,9vw,110px) 0 60px;}
  .foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start;}
  .foot-logo .jp{font-family:var(--serif-jp);font-size:24px;letter-spacing:.16em;color:var(--paper-on-dark);}
  .foot-logo .en{font-family:var(--sans);font-size:10px;letter-spacing:.34em;color:rgba(237,232,223,.55);margin-top:8px;text-transform:uppercase;}
  .foot-addr{font-size:13px;letter-spacing:.08em;line-height:2.1;color:rgba(237,232,223,.6);margin-top:18px;}
  .foot-nav{display:flex;gap:30px;flex-wrap:wrap;}
  .foot-nav a{font-family:var(--serif-en);font-size:14px;color:rgba(237,232,223,.72);text-decoration:none;}
  .foot-nav a:hover{color:var(--paper-on-dark);}
  .foot-copy{margin-top:64px;font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;color:rgba(237,232,223,.4);text-transform:uppercase;}

  @media(max-width:860px){
    .sg-nav{display:none;}
    .pg-hero{min-height:64vh;}
    .stmt2 .body{margin:56px 0 0;max-width:none;}
    .ghost-en{font-size:clamp(73px,20.8vw,117px) !important;}
  }

  /* ---------- 表示アニメーション（shinwa.local = margin-design 移植・トップと同一体系） ---------- */
  .m-page-veil{
    position:fixed;inset:0;z-index:9400;pointer-events:none;background:#fff;
    -webkit-mask-image:linear-gradient(135deg,transparent,transparent 30%,rgba(0,0,0,.08) 34%,rgba(0,0,0,.32) 38%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.92) 46%,#000 50%,#000);
    mask-image:linear-gradient(135deg,transparent,transparent 30%,rgba(0,0,0,.08) 34%,rgba(0,0,0,.32) 38%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.92) 46%,#000 50%,#000);
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
    -webkit-mask-size:220% 220%;mask-size:220% 220%;
    animation:m-page-veil-out 1.5s cubic-bezier(.645,.045,.355,1) .1s both 1;
  }
  @keyframes m-page-veil-out{
    from{opacity:1;-webkit-mask-position:100% 100%;mask-position:100% 100%;}
    82%{opacity:1;}
    to{opacity:0;-webkit-mask-position:0% 0%;mask-position:0% 0%;}
  }
  @media (prefers-reduced-motion:reduce){.m-page-veil{display:none;}}

  @media (prefers-reduced-motion:no-preference){
    html.m-on .m-group:not(.is-visible) .m-reveal,
    html.m-on .m-group:not(.is-visible) .m-reveal-h{opacity:0;}
    html.m-on .m-group.is-visible .m-reveal{animation:m-blur-in 1.6s cubic-bezier(.165,.84,.44,1) backwards;animation-delay:var(--d,0s);}
    html.m-on .m-group.is-visible .m-reveal-h{
      animation:m-blur-in 1.6s cubic-bezier(.165,.84,.44,1) backwards,
                m-ls-in 2.6s cubic-bezier(.22,.61,.36,1) backwards;
      animation-delay:var(--d,0s);
    }
    @keyframes m-blur-in{from{opacity:0;filter:blur(14px);}}
    @keyframes m-ls-in{from{letter-spacing:.24em;}}
    /* 画像リビールは「外枠固定・内側だけ動かす」本家構造に準拠（2026-07-12修正） */
    html.m-on .m-group .m-reveal-img{position:relative;background-size:0 0;overflow:hidden;}
    html.m-on .m-group .m-reveal-img::before{
      content:"";position:absolute;inset:0;
      background-image:inherit;background-size:cover;background-position:center;
      -webkit-mask-image:linear-gradient(-30deg,transparent,transparent 40%,rgba(0,0,0,.02) 42%,rgba(0,0,0,.08) 44%,rgba(0,0,0,.18) 46%,rgba(0,0,0,.32) 48%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.68) 52%,rgba(0,0,0,.82) 54%,rgba(0,0,0,.92) 56%,rgba(0,0,0,.98) 58%,#000 60%,#000);
      mask-image:linear-gradient(-30deg,transparent,transparent 40%,rgba(0,0,0,.02) 42%,rgba(0,0,0,.08) 44%,rgba(0,0,0,.18) 46%,rgba(0,0,0,.32) 48%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.68) 52%,rgba(0,0,0,.82) 54%,rgba(0,0,0,.92) 56%,rgba(0,0,0,.98) 58%,#000 60%,#000);
      -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
      -webkit-mask-size:100% max(300%,100vh);mask-size:100% max(300%,100vh);
      -webkit-mask-position:center 0;mask-position:center 0;
      will-change:mask-position,transform;transform:translateZ(0);
    }
    html.m-on .m-group:not(.is-visible) .m-reveal-img::before{-webkit-mask-position:center 100%;mask-position:center 100%;scale:1.075;}
    html.m-on .m-group.is-visible .m-reveal-img::before{
      animation:m-img-wipe 1.4s linear backwards,m-img-settle 1.4s cubic-bezier(.165,.84,.44,1) backwards;
      animation-delay:var(--d,0s);
    }
    @keyframes m-img-wipe{from{-webkit-mask-position:center 100%;mask-position:center 100%;}}
    @keyframes m-img-settle{from{scale:1.075;}}
  }

  /* CF7実フォームへのデザイン適用 */
  .wpcf7 p{margin:0 0 clamp(48px,7vw,68px);}
  .wpcf7 label{font-size:14.5px;letter-spacing:.12em;color:var(--ink);}

  /* フォーム行の骨格（c-form-table 系は style.css 定義だが本ページは dequeue 済みのため自前で定義。
     「記入ボックスと例がわかりにくい」オーナー指摘 2026-07-28:
     ① 入力欄を下線1本 → 枠のある明確なボックスへ
     ② 例）と注記は巨大な .wpcf7 p マージンで欄から離れていたため、欄の直下に密着 */
  .c-form-table__row + .c-form-table__row{margin-top:clamp(38px,5.5vw,54px);}
  .c-form-table__head{margin-bottom:12px;}
  .c-form-table__head label{font-size:15px;letter-spacing:.12em;color:var(--ink);}
  .c-form-req{margin-left:6px;font-size:13px;color:var(--brass);}
  .c-form-table__body p{margin:0;}
  .wpcf7 p.c-form-example,
  .wpcf7 p.c-form-note{
    margin:10px 0 0;font-family:var(--serif-jp);font-size:13px;
    letter-spacing:.06em;line-height:1.8;color:#a09a90;
  }

  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 textarea{
    width:100%;border:1px solid var(--line);background:var(--paper-2);
    font-family:var(--serif-jp);font-size:15.5px;color:var(--ink);letter-spacing:.05em;
    padding:15px 16px;outline:none;border-radius:2px;-webkit-appearance:none;appearance:none;
    transition:border-color .35s,background .35s;
  }
  .wpcf7 input[type="text"]:focus,
  .wpcf7 input[type="email"]:focus,
  .wpcf7 input[type="tel"]:focus,
  .wpcf7 textarea:focus{border-color:var(--brass);background:#fff;}
  .wpcf7 ::placeholder{color:#b7b2a8;}
  .wpcf7 textarea{min-height:170px;resize:vertical;line-height:2;}
  .wpcf7-checkbox{display:flex;gap:26px;flex-wrap:wrap;}
  .wpcf7-checkbox .wpcf7-list-item{margin:0;}
  .wpcf7-checkbox .wpcf7-list-item label{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;letter-spacing:.06em;cursor:pointer;color:var(--ink);}
  .wpcf7-checkbox .wpcf7-list-item input[type="checkbox"]{accent-color:var(--brass);width:15px;height:15px;}
  .wpcf7-not-valid-tip{display:block;margin-top:10px;font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;color:#b5473f;}
  .wpcf7-response-output{margin-top:30px !important;border-radius:0 !important;font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;}
  /* 送信ボタン: 全ページ共通CTA（parts/sg-contact.php の .contact-btn）と同意匠に統一
     （丸ピル型 → 角なし細枠・ホバーで墨地に反転。オーナー指示 2026-07-28） */
  .wpcf7 input[type="submit"]{
    display:inline-flex;align-items:center;gap:12px;font-family:var(--serif-en);font-style:normal;font-size:17px;
    color:var(--ink);background:transparent;border:1px solid rgba(36,34,32,.32);border-radius:0;padding:16px 44px;cursor:pointer;
    letter-spacing:.04em;-webkit-appearance:none;appearance:none;
    transition:background .35s,color .35s,border-color .35s;
  }
  .wpcf7 input[type="submit"]:hover{background:var(--dark);color:var(--paper-on-dark);border-color:var(--dark);}

  /* 個人情報のお取り扱い（dl.c-form-privacy）:
     dd のブラウザ既定インデント(40px)を除去し、本文・リンクを薄いトーンに
     （リンクの既定青も解消・オーナー指示 2026-07-28） */
  .c-form-privacy{margin:clamp(40px,6vw,60px) 0 0;}
  .c-form-privacy dt{margin:0 0 12px;font-size:14.5px;letter-spacing:.1em;color:#8b857b;} /* 見出しも薄く（オーナー指示） */
  .c-form-privacy dd{margin:0;font-size:13.5px;line-height:2.2;letter-spacing:.06em;color:#8b857b;}
  .c-form-privacy dd a{color:inherit;text-decoration:underline;text-underline-offset:3px;transition:color .3s;}
  .c-form-privacy dd a:hover{color:var(--ink);}

  /* reCAPTCHA: 右下の浮遊バッジを非表示（オーナー指示 2026-07-28）。
     Google 規約により、代替の説明文（.c-form-grecaptcha）をフォーム末尾に明記済み */
  .grecaptcha-badge{visibility:hidden !important;}
  .c-form-grecaptcha{
    margin:clamp(28px,4vw,40px) 0 0 !important;font-family:var(--serif-jp);font-size:12.5px;
    letter-spacing:.05em;line-height:2;color:#a09a90;
  }
  .c-form-grecaptcha a{color:inherit;text-decoration:underline;text-underline-offset:3px;transition:color .3s;}
  .c-form-grecaptcha a:hover{color:var(--ink);}
  /* 送信ボタンはフォームの一番最後・上に間を取る */
  .c-form-confirm{margin:clamp(40px,6vw,56px) 0 0;}
  .c-form-confirm .c-form-button{margin:0;}

/* --- スマホ視差（CSS scroll-driven・2026-08-07） ----------------------
   PCの sg-scrollfx（JSが--pyを書き込む）はタッチ端末では起動しないため
   （コンポジタ先行スクロールでJS駆動は原理的にカクつく）、リビール画像の
   内層をスクロール連動アニメーションで縦に流す。
   ・wipe/settle（リビール）と drift（視差）は同じ animation プロパティに
     同居させる（別ルールに分けるとカスケードで片方が消える）
   ・drift の duration は auto 必須（省略は 0s 扱いでタイムラインに乗らない）
   ・overflow:hidden はスクロールコンテナ扱いになり view() の基準を奪うため
     対応環境では clip に切り替える（見た目同一） */
@supports (animation-timeline: view()) {
  @media (pointer: coarse) {
    html.m-on .m-group .m-reveal-img{overflow:hidden;overflow:clip;}
    html.m-on .m-group .m-reveal-img::before{top:-14%;bottom:-14%;}
    html.m-on .m-group.is-visible .m-reveal-img::before{
      animation:m-img-wipe 1.4s linear backwards,m-img-settle 1.4s cubic-bezier(.165,.84,.44,1) backwards,sg-mplx-drift auto linear both;
      animation-delay:var(--d,0s),var(--d,0s),0s;
      animation-timeline:auto,auto,view();
    }
  }
}
@keyframes sg-mplx-drift{from{translate:0 6%;}to{translate:0 -6%;}}
