@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/* ============================================================
   Meguri (めぐり) — Artifact デザイン適用
   CSS変数・全コンポーネントを body.page-id-31 スコープで管理
   ============================================================ */

/* ── COCOON OVERRIDES ──────────────────────────────────────── */

/* Cocoon 標準要素を page-id-31 のみ非表示 */
body.page-id-31 #header.header,
body.page-id-31 .article-header.entry-header,
body.page-id-31 #footer.footer-container,
body.page-id-31 .article-footer.entry-footer,
body.page-id-31 .footer-meta,
body.page-id-31 .toc,
body.page-id-31 .mobile-menu-buttons,
body.page-id-31 .mobile-footer-menu-buttons,
body.page-id-31 .go-to-top,
body.page-id-31 #go-to-top { display: none !important; }

/* Cocoon ラッパーをフル幅化 */
body.page-id-31 .wrap,
body.page-id-31 #container-inner,
body.page-id-31 #content.content,
body.page-id-31 #main.main {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

body.page-id-31 .article {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  max-width: 100% !important;
}

/* Cocoon が h2/h3 に付ける装飾をリセット */
body.page-id-31 .article h1,
body.page-id-31 .article h2,
body.page-id-31 .article h3,
body.page-id-31 .article h4,
body.page-id-31 .article h5,
body.page-id-31 .article h6 {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}

/* content領域の余白・幅を完全リセット */
body.page-id-31 #content,
body.page-id-31 #content-in,
body.page-id-31 .content,
body.page-id-31 .content-in {
  padding: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  min-height: 0 !important;
}
body.page-id-31 .entry-content,
body.page-id-31 .entry-content > p:first-child {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.page-id-31 article.post-31 { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/* ── END COCOON OVERRIDES ──────────────────────────────────── */


/* ── PAGE DESIGN (artifact scoped to body.page-id-31) ─────── */
/* CSS変数はすべて body.page-id-31 で定義。ハードコード禁止。   */

/* ─── TOKENS ─── */
  body.page-id-31{
    --bg: #F8F1E8;
    --bg2: #EFE6D8;
    --w: #FFFFFF;
    --rose: #C05848;
    --rose-l: #D87864;
    --rose-pale: #FAE8E2;
    --rose-deep: #A03828;
    --br: #3A2410;
    --br-m: #6A4838;
    --br-l: #987060;
    --nv: #141120;
    --nv-l: #1C1930;
    --gd: #C09878;
    --gd-l: #D8B898;
    --ss: 0 2px 16px rgba(45,20,8,.06),0 1px 4px rgba(45,20,8,.03);
    --sm: 0 6px 32px rgba(45,20,8,.09),0 2px 8px rgba(45,20,8,.05);
    --sl: 0 16px 56px rgba(45,20,8,.14),0 4px 16px rgba(45,20,8,.07);
    --r: 20px; --rs: 14px;
  }

  /* ─── RESET ─── */
  body.page-id-31 *, body.page-id-31 *::before, body.page-id-31 *::after{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body.page-id-31{
    background:var(--bg);
    color:var(--br);
    font-family:'Noto Sans JP',sans-serif;
    font-weight:300;
    line-height:1.88;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    font-feature-settings:"palt" 1;
  }

  /* Grain texture */
  body.page-id-31::after{
    content:'';
    position:fixed;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.038'/%3E%3C/svg%3E");
    pointer-events:none;z-index:9999;
  }

  /* ─── LAYOUT ─── */
  body.page-id-31 .mgr-wrap{padding:88px 64px;max-width:900px;margin:0 auto;position:relative;}

  /* ─── SECTION META ─── */
  body.page-id-31 .smeta{display:flex;align-items:center;gap:20px;margin-bottom:24px;}
  body.page-id-31 .slabel{font-size:.58rem;letter-spacing:.52em;text-transform:uppercase;color:var(--rose);font-weight:400;white-space:nowrap;}
  body.page-id-31 .sline{flex:1;height:1px;background:linear-gradient(to right,rgba(192,88,72,.28),transparent);max-width:110px;}
  body.page-id-31 .stitle{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(1.8rem,4.5vw,2.85rem);
    font-weight:500;color:var(--br);
    line-height:1.58;margin-bottom:60px;
    letter-spacing:.025em;
  }
  /* Large faded bg number */
  body.page-id-31 .bnum{
    position:absolute;top:88px;right:52px;
    font-family:'Shippori Mincho',serif;
    font-size:10rem;font-weight:700;
    color:rgba(192,88,72,.075);
    line-height:1;pointer-events:none;
    letter-spacing:-.04em;user-select:none;
  }

  /* ─── COVER ─── */
  body.page-id-31 .cover{
    min-height:100vh;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:120px 64px 100px;
    position:relative;overflow:hidden;text-align:center;
  }
  body.page-id-31 .cover-bg{
    position:absolute;inset:0;
    background:linear-gradient(168deg,#FFF4EC 0%,#FAE8DC 42%,#EFD8CC 75%,var(--bg) 100%);
    animation:cshift 14s ease-in-out infinite alternate;
  }
  @keyframes cshift{
    0%{filter:hue-rotate(0deg) brightness(1);}
    100%{filter:hue-rotate(-6deg) brightness(1.02);}
  }
  body.page-id-31 .cover::before{
    content:'';position:absolute;inset:0;
    background:radial-gradient(ellipse 90% 55% at 50% 0%,rgba(255,255,255,.55),transparent);
    z-index:1;pointer-events:none;
  }
  /* Decorative rings */
  body.page-id-31 .cr1{position:absolute;top:-240px;right:-160px;width:680px;height:680px;border-radius:50%;border:1px solid rgba(192,88,72,.1);pointer-events:none;}
  body.page-id-31 .cr2{position:absolute;top:-170px;right:-90px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(255,208,172,.42),rgba(240,162,132,.07) 62%,transparent);pointer-events:none;}
  body.page-id-31 .cr3{position:absolute;bottom:-130px;left:-110px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle at 65% 65%,rgba(235,172,142,.18),transparent 68%);border:1px solid rgba(192,88,72,.07);pointer-events:none;}

  body.page-id-31 .cover-photo{
    width:148px;height:148px;border-radius:50%;
    object-fit:cover;
    box-shadow:0 0 0 6px rgba(255,255,255,.82),0 0 0 13px rgba(192,88,72,.18),0 0 0 22px rgba(192,88,72,.06),0 16px 52px rgba(40,20,8,.18);
    margin-bottom:48px;position:relative;z-index:2;
  }
  body.page-id-31 .ckicker{font-size:.58rem;letter-spacing:.6em;color:var(--rose);margin-bottom:28px;opacity:.78;position:relative;z-index:2;font-weight:400;}
  body.page-id-31 .ch1{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(2.4rem,7.5vw,4.5rem);
    color:var(--br);line-height:1.5;
    margin-bottom:28px;font-weight:600;
    position:relative;z-index:2;letter-spacing:.03em;
  }
  body.page-id-31 .ch1 em{
    font-style:normal;color:var(--rose);position:relative;
  }
  body.page-id-31 .ch1 em::after{
    content:'';
    position:absolute;bottom:4px;left:0;right:0;
    height:2px;
    background:linear-gradient(to right,var(--rose-l),var(--rose-pale));
    border-radius:2px;
  }
  body.page-id-31 .csub{
    font-size:1rem;color:var(--br-m);
    letter-spacing:.06em;margin-bottom:64px;
    line-height:2.2;position:relative;z-index:2;
  }
  body.page-id-31 .cbadges{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;position:relative;z-index:2;}
  body.page-id-31 .cbadge{
    border:1px solid rgba(192,88,72,.26);
    color:var(--rose);
    padding:10px 26px;border-radius:40px;
    font-size:.8rem;letter-spacing:.08em;
    background:rgba(250,232,226,.5);backdrop-filter:blur(10px);
    box-shadow:0 2px 12px rgba(192,88,72,.09);
    transition:background .3s,border-color .3s,box-shadow .3s;
  }
  body.page-id-31 .cbadge:hover{background:rgba(250,232,226,.85);border-color:rgba(192,88,72,.48);box-shadow:0 4px 20px rgba(192,88,72,.16);}
  body.page-id-31 .scroll-hint{
    position:absolute;bottom:48px;left:50%;
    transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:10px;
    color:var(--br-l);font-size:.58rem;letter-spacing:.28em;
    z-index:2;opacity:.36;animation:bob 2.8s ease-in-out infinite;
  }
  body.page-id-31 .scroll-hint::after{
    content:'';display:block;width:1px;height:52px;
    background:linear-gradient(to bottom,var(--br-l),transparent);
  }
  @keyframes bob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(12px);}}

  /* ─── VOICE ─── */
  body.page-id-31 .vstack{display:flex;flex-direction:column;gap:20px;margin-bottom:56px;}
  body.page-id-31 .vcard{
    background:linear-gradient(135deg,rgba(255,251,248,1) 0%,var(--w) 60%);
    border-radius:var(--r);
    padding:38px 48px 38px 40px;
    box-shadow:var(--sm);position:relative;overflow:hidden;
    transition:box-shadow .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1);
  }
  body.page-id-31 .vcard::before{
    content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
    background:linear-gradient(to bottom,var(--rose-l),var(--rose-pale));
  }
  body.page-id-31 .vcard:hover{box-shadow:var(--sl);transform:translateY(-3px) translateX(2px);}
  body.page-id-31 .vqq{
    position:absolute;top:-12px;right:28px;
    font-size:9rem;color:var(--rose-pale);
    line-height:1;font-family:'Times New Roman',Georgia,serif;
    user-select:none;pointer-events:none;font-weight:700;opacity:.9;
  }
  body.page-id-31 .vcard p{font-size:.95rem;color:var(--br-m);line-height:2.2;position:relative;z-index:1;}
  body.page-id-31 .vcard strong{color:var(--br);font-weight:500;}

  body.page-id-31 .snsstack{display:flex;flex-direction:column;gap:12px;}
  body.page-id-31 .snsc{
    background:linear-gradient(135deg,rgba(255,251,248,1) 0%,var(--w) 70%);
    border-radius:var(--rs);
    padding:22px 30px;box-shadow:var(--ss);
    display:flex;gap:16px;align-items:flex-start;
    border-left:2px solid rgba(192,88,72,.14);
    transition:box-shadow .3s,transform .3s,border-color .3s;
  }
  body.page-id-31 .snsc:hover{box-shadow:var(--sm);transform:translateX(6px);border-left-color:rgba(192,88,72,.36);}
  body.page-id-31 .snsi{font-size:1rem;opacity:.52;flex-shrink:0;margin-top:2px;line-height:1.88;color:var(--rose);}
  body.page-id-31 .snsc p{font-size:.88rem;color:var(--br-m);line-height:2.1;}
  body.page-id-31 .snsc strong{color:var(--br);font-weight:500;}

  /* ─── SYMPTOMS ─── */
  body.page-id-31 .symgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:44px;}
  body.page-id-31 .symc{
    background:linear-gradient(135deg,rgba(255,252,250,1) 0%,var(--w) 70%);
    border-radius:var(--r);
    padding:28px 24px;box-shadow:var(--ss);
    display:flex;align-items:flex-start;gap:16px;
    border-left:3px solid rgba(192,88,72,.16);
    transition:box-shadow .3s,transform .3s;
  }
  body.page-id-31 .symc:hover{box-shadow:var(--sm);transform:translateY(-3px);}
  body.page-id-31 .symico{
    width:54px;height:54px;border-radius:16px;
    background:linear-gradient(135deg,rgba(250,210,198,.68),var(--rose-pale));
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;font-size:1.35rem;
    box-shadow:0 3px 14px rgba(192,88,72,.16);
  }
  body.page-id-31 .symc h3{font-family:'Shippori Mincho',serif;font-size:.95rem;color:var(--br);margin-bottom:6px;font-weight:600;}
  body.page-id-31 .symc p{font-size:.78rem;color:var(--br-l);line-height:1.9;}

  /* ─── SERVICE ─── */
  body.page-id-31 .svcgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  body.page-id-31 .svcc{
    background:linear-gradient(160deg,rgba(255,251,248,1) 0%,var(--w) 100%);
    border-radius:var(--r);
    padding:40px 34px;box-shadow:var(--sm);
    display:flex;flex-direction:column;
    border-top:3px solid rgba(192,88,72,.22);
    transition:box-shadow .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1);
  }
  body.page-id-31 .svcc:hover{box-shadow:var(--sl);transform:translateY(-7px);}
  body.page-id-31 .svcico{
    width:62px;height:62px;border-radius:18px;
    background:linear-gradient(135deg,rgba(250,210,198,.72),rgba(250,232,226,.5));
    display:flex;align-items:center;justify-content:center;
    font-size:1.5rem;margin-bottom:22px;
    box-shadow:0 4px 18px rgba(192,88,72,.18);
  }
  body.page-id-31 .svcc h3{font-family:'Shippori Mincho',serif;font-size:1.06rem;color:var(--br);margin-bottom:20px;font-weight:600;}
  body.page-id-31 .svcc ul{list-style:none;padding:0;flex:1;}
  body.page-id-31 .svcc ul li{
    font-size:.84rem;color:var(--br-l);
    padding:9px 0;
    border-bottom:1px solid rgba(239,230,216,.9);
    line-height:1.78;
    display:flex;align-items:flex-start;gap:10px;
  }
  body.page-id-31 .svcc ul li::before{
    content:'';display:block;
    width:5px;height:5px;border-radius:50%;
    background:linear-gradient(135deg,var(--rose-l),var(--rose-pale));
    flex-shrink:0;margin-top:8px;
  }
  body.page-id-31 .svcc ul li:last-child{border-bottom:none;}

  /* ─── QUOTE BOX ─── */
  body.page-id-31 .qbox{
    background:linear-gradient(130deg,rgba(250,220,210,.38),rgba(250,240,234,.55));
    border-radius:var(--r);
    padding:44px 56px;text-align:center;margin-top:28px;
    border:1px solid rgba(192,88,72,.18);
    box-shadow:0 4px 24px rgba(192,88,72,.06);
  }
  body.page-id-31 .qbox{position:relative;}
  body.page-id-31 .qbox p{font-family:'Shippori Mincho',serif;font-size:1.06rem;color:var(--br);line-height:2.5;}
  body.page-id-31 .qbox strong{color:var(--rose);font-weight:600;}

  /* ─── WIN-WIN ─── */
  body.page-id-31 .wwgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;}
  body.page-id-31 .wwc{border-radius:22px;padding:44px 38px;box-shadow:var(--sm);}
  body.page-id-31 .wwc.staff{
    background:linear-gradient(148deg,#141120 0%,#1E1B30 100%);
    border:1px solid rgba(216,184,152,.09);
    border-top:3px solid rgba(216,184,136,.38);
  }
  body.page-id-31 .wwc.mama{
    background:linear-gradient(148deg,rgba(255,251,248,1) 0%,var(--w) 100%);
    border:1px solid rgba(192,88,72,.1);
    border-top:3px solid rgba(192,88,72,.2);
  }
  body.page-id-31 .wwrole{
    display:flex;align-items:center;gap:12px;
    margin-bottom:28px;padding-bottom:20px;
  }
  body.page-id-31 .wwc.staff .wwrole{border-bottom:1px solid rgba(216,184,152,.14);}
  body.page-id-31 .wwc.mama .wwrole{border-bottom:1px solid var(--bg2);}
  body.page-id-31 .wwdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  body.page-id-31 .wwc.staff .wwdot{background:var(--gd-l);}
  body.page-id-31 .wwc.mama .wwdot{background:var(--rose-l);}
  body.page-id-31 .wwrole-t{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;}
  body.page-id-31 .wwc.staff .wwrole-t{color:#F0DCC8;}
  body.page-id-31 .wwc.mama .wwrole-t{color:var(--br);}
  body.page-id-31 .wwpt{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;}
  body.page-id-31 .wwchk{
    width:20px;height:20px;border-radius:50%;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    font-size:.6rem;margin-top:3px;
  }
  body.page-id-31 .wwc.staff .wwchk{background:rgba(216,184,136,.18);color:var(--gd-l);border:1px solid rgba(216,184,136,.32);}
  body.page-id-31 .wwc.mama .wwchk{background:var(--rose-pale);color:var(--rose);}
  body.page-id-31 .wwpt p{font-size:.85rem;line-height:1.88;}
  body.page-id-31 .wwc.staff .wwpt p{color:rgba(240,220,198,.78);}
  body.page-id-31 .wwc.mama .wwpt p{color:var(--br-m);}

  /* ─── VISION ─── */
  body.page-id-31 .vslist{display:flex;flex-direction:column;gap:16px;}
  body.page-id-31 .vsitem{
    display:flex;gap:32px;align-items:flex-start;
    padding:38px 42px;
    background:linear-gradient(135deg,rgba(255,251,248,1) 0%,var(--w) 60%);
    border-radius:var(--r);box-shadow:var(--ss);
    border-left:3px solid rgba(192,88,72,.14);
    transition:box-shadow .35s,transform .35s,border-color .35s;
    position:relative;overflow:hidden;
  }
  body.page-id-31 .vsitem::after{
    content:'';
    position:absolute;right:0;top:0;bottom:0;width:3px;
    background:linear-gradient(to bottom,transparent,rgba(192,88,72,.38),transparent);
    opacity:0;transition:opacity .35s;
  }
  body.page-id-31 .vsitem:hover{box-shadow:var(--sm);transform:translateX(5px);border-left-color:rgba(192,88,72,.34);}
  body.page-id-31 .vsitem:hover::after{opacity:1;}
  body.page-id-31 .vsnum{
    font-family:'Shippori Mincho',serif;
    font-size:4.2rem;color:rgba(192,88,72,.28);
    line-height:1;flex-shrink:0;width:66px;
    font-weight:700;letter-spacing:-.03em;
  }
  body.page-id-31 .vsitem h3{font-family:'Shippori Mincho',serif;font-size:1.1rem;color:var(--rose);margin-bottom:8px;font-weight:600;letter-spacing:.02em;}
  body.page-id-31 .vsitem p{font-size:.86rem;color:var(--br-l);line-height:2.1;}

  /* ─── WAVE ─── */
  body.page-id-31 .wdiv{display:block;overflow:hidden;line-height:0;background:var(--bg);}
  body.page-id-31 .wdiv svg{display:block;width:100%;height:72px;}

  /* ─── CONNECT ─── */
  body.page-id-31 .connect{
    background:linear-gradient(148deg,#141120 0%,#1E1B30 55%,#181428 100%);
    padding:96px 64px;text-align:center;position:relative;overflow:hidden;
  }
  body.page-id-31 .connect::before{
    content:'';position:absolute;inset:0;
    background:radial-gradient(ellipse 80% 55% at 50% 30%,rgba(192,88,72,.09),transparent);
  }
  body.page-id-31 .connect::after{
    content:'';position:absolute;
    top:50%;left:50%;transform:translate(-50%,-50%);
    width:640px;height:640px;border-radius:50%;
    border:1px solid rgba(216,184,136,.05);pointer-events:none;
  }
  body.page-id-31 .cnin{max-width:720px;margin:0 auto;position:relative;z-index:1;}
  body.page-id-31 .cnlbl{font-size:.58rem;letter-spacing:.52em;color:var(--rose-l);display:block;margin-bottom:28px;}
  body.page-id-31 .cnh2{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(1.5rem,4vw,2.2rem);
    color:#F0E0CC;line-height:1.88;margin-bottom:68px;letter-spacing:.035em;
  }
  body.page-id-31 .cnflow{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:52px;}
  @keyframes cnfloat{
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-6px);}
  }
  body.page-id-31 .cnnode{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(216,184,136,.14);
    border-radius:var(--r);padding:32px 36px;
    text-align:center;min-width:168px;
    backdrop-filter:blur(16px);
    transition:background .35s,border-color .35s,transform .35s;
  }
  body.page-id-31 .cnnode:nth-child(1){animation:cnfloat 4.8s ease-in-out infinite;}
  body.page-id-31 .cnnode:nth-child(3){animation:cnfloat 4.8s ease-in-out infinite 1.6s;}
  body.page-id-31 .cnnode:nth-child(5){animation:cnfloat 4.8s ease-in-out infinite 3.2s;}
  body.page-id-31 .cnnode:hover{background:rgba(255,255,255,.08);border-color:rgba(216,184,136,.32);transform:translateY(-8px);animation:none;}
  body.page-id-31 .cnnico{font-size:2.2rem;display:block;margin-bottom:14px;}
  body.page-id-31 .cnnode h4{font-family:'Shippori Mincho',serif;font-size:1rem;color:#F0E0CC;margin-bottom:5px;font-weight:500;}
  body.page-id-31 .cnnode p{font-size:.72rem;color:rgba(216,184,136,.58);letter-spacing:.1em;}
  body.page-id-31 .cnarr{display:flex;flex-direction:column;align-items:center;gap:6px;}
  body.page-id-31 .cnarr-ln{width:48px;height:1px;background:linear-gradient(to right,rgba(216,184,136,.22),rgba(216,184,136,.52),rgba(216,184,136,.22));position:relative;}
  body.page-id-31 .cnarr-ln::after{
    content:'';position:absolute;right:-6px;top:50%;transform:translateY(-50%);
    width:0;height:0;
    border-left:9px solid rgba(216,184,136,.68);
    border-top:5px solid transparent;border-bottom:5px solid transparent;
  }
  body.page-id-31 .cnarr small{font-size:.58rem;letter-spacing:.12em;color:rgba(216,184,136,.32);}
  body.page-id-31 .cndesc{font-size:.9rem;color:rgba(240,220,198,.62);line-height:2.3;}

  /* ─── CTA ─── */
  body.page-id-31 .cta{
    background:linear-gradient(148deg,var(--rose) 0%,var(--rose-deep) 100%);
    padding:96px 64px;text-align:center;position:relative;overflow:hidden;
  }
  body.page-id-31 .cta::before{
    content:'';position:absolute;top:-90px;right:-90px;
    width:440px;height:440px;border-radius:50%;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.07);
  }
  body.page-id-31 .cta::after{
    content:'';position:absolute;bottom:-70px;left:-70px;
    width:280px;height:280px;border-radius:50%;
    border:1px solid rgba(255,255,255,.05);
  }
  body.page-id-31 .cta h2{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(1.55rem,3.8vw,2.2rem);
    color:var(--w);line-height:1.78;
    margin-bottom:24px;position:relative;z-index:1;letter-spacing:.04em;
  }
  body.page-id-31 .ctasub{color:rgba(255,255,255,.7);font-size:.92rem;letter-spacing:.05em;margin-bottom:52px;position:relative;z-index:1;}
  @keyframes ctapulse{
    0%,100%{box-shadow:0 10px 44px rgba(0,0,0,.18),0 0 0 0 rgba(255,255,255,.0);}
    50%{box-shadow:0 10px 44px rgba(0,0,0,.18),0 0 0 10px rgba(255,255,255,.09);}
  }
  body.page-id-31 .ctabtn{
    display:inline-flex;align-items:center;gap:12px;
    background:var(--w);color:var(--rose);
    font-family:'Shippori Mincho',serif;font-size:.96rem;font-weight:600;
    letter-spacing:.1em;
    padding:22px 64px;border-radius:50px;text-decoration:none;
    box-shadow:0 10px 44px rgba(0,0,0,.18);
    animation:ctapulse 3.2s ease-in-out infinite;
    transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;
    position:relative;z-index:1;overflow:hidden;
  }
  body.page-id-31 .ctabtn::after{
    content:'';
    position:absolute;top:0;left:-110%;width:100%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
    transition:left .55s ease;
  }
  body.page-id-31 .ctabtn:hover{transform:translateY(-3px);box-shadow:0 18px 56px rgba(0,0,0,.24);}
  body.page-id-31 .ctabtn:hover::after{left:110%;}
  body.page-id-31 .ctaarrow{font-size:.9rem;transition:transform .35s cubic-bezier(.16,1,.3,1);}
  body.page-id-31 .ctabtn:hover .ctaarrow{transform:translateX(5px);}

  body.page-id-31 footer{
    background:var(--nv);
    color:rgba(240,220,198,.24);
    text-align:center;padding:52px 64px;
    font-size:.68rem;letter-spacing:.18em;
  }
  body.page-id-31 .cover-mono{margin-bottom:44px;position:relative;z-index:2;}
  body.page-id-31 .cover-mono svg{display:block;}
  body.page-id-31 footer::before{
    content:'';display:block;
    width:44px;height:1px;
    background:rgba(216,184,136,.18);
    margin:0 auto 30px;
  }

  /* ─── ANIMATIONS ─── */
  body.page-id-31 .fi{
    opacity:0;transform:translateY(28px);
    transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);
    transition-delay:var(--fd,0s);
  }
  body.page-id-31 .fi.on{opacity:1;transform:translateY(0);}
  body.page-id-31 .fil{
    opacity:0;transform:translateX(-18px);
    transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
    transition-delay:var(--fd,0s);
  }
  body.page-id-31 .fil.on{opacity:1;transform:translateX(0);}

  /* ─── GLOBAL TEXT SAFETY ─── */
  body.page-id-31 *, body.page-id-31 *::before, body.page-id-31 *::after{overflow-wrap:break-word;word-break:break-word;min-width:0;}
  body.page-id-31 img{max-width:100%;height:auto;}

  /* ─── RESPONSIVE: tablet 900px ─── */
  @media(max-width:900px){

    body.page-id-31 .mgr-wrap{padding:72px 48px;}
    body.page-id-31 .svcgrid, body.page-id-31 .symgrid{grid-template-columns:1fr 1fr;}
    body.page-id-31 .wwgrid{grid-template-columns:1fr 1fr;}
    body.page-id-31 .stitle{font-size:clamp(1.6rem,4vw,2.6rem);}
    body.page-id-31 .ch1{font-size:clamp(2.2rem,6vw,4rem);}
    body.page-id-31 .bnum{font-size:8rem;}
    body.page-id-31 .vsitem{padding:32px 36px;}
  
}

  /* ─── RESPONSIVE: mobile 640px ─── */
  @media(max-width:640px){

    body.page-id-31 .mgr-wrap{padding:64px 20px;}
    body.page-id-31 .symgrid, body.page-id-31 .svcgrid, body.page-id-31 .wwgrid{grid-template-columns:1fr;}
    body.page-id-31 .cover{padding:96px 24px 80px;}
    body.page-id-31 .ch1{font-size:clamp(1.5rem,6.5vw,2.1rem);}
    body.page-id-31 .stitle{font-size:clamp(1.6rem,7vw,2.4rem);}
    body.page-id-31 .connect, body.page-id-31 .cta{padding:72px 24px;}
    body.page-id-31 .vsitem{padding:24px 22px;gap:14px;}
    body.page-id-31 .vsnum{font-size:3rem;width:50px;}
    body.page-id-31 .qbox{padding:28px 22px;}
    body.page-id-31 .wwc{padding:28px 22px;}
    body.page-id-31 .vcard{padding:26px 24px 26px 22px;}
    body.page-id-31 .snsc{padding:18px 20px;}
    body.page-id-31 .bnum{font-size:4.5rem;right:12px;}
    body.page-id-31 .cnflow{flex-direction:column;}
    body.page-id-31 .wdiv svg{height:40px;}
    body.page-id-31 .cnnode{padding:24px 28px;min-width:140px;}
    body.page-id-31 .cover-photo{width:120px;height:120px;}
    body.page-id-31 .cbadge{padding:8px 18px;font-size:.75rem;}
    body.page-id-31 .cbadges{gap:8px;}
    body.page-id-31 .ckicker{letter-spacing:.35em;font-size:.56rem;}
    body.page-id-31 .symc{padding:20px 18px;gap:12px;}
    body.page-id-31 .symico{width:46px;height:46px;font-size:1.2rem;}
    body.page-id-31 .svcico{width:52px;height:52px;font-size:1.25rem;}
    body.page-id-31 .svcc{padding:28px 22px;}
    body.page-id-31 .svcgrid{gap:16px;}
    body.page-id-31 .symgrid{gap:12px;}
    body.page-id-31 .wwgrid{gap:16px;}
    body.page-id-31 .vslist{gap:12px;}
    body.page-id-31 .ctabtn{padding:18px 44px;font-size:.9rem;}
    body.page-id-31 .cta h2{font-size:clamp(1.4rem,6.5vw,2rem);}
    body.page-id-31 .scroll-hint{bottom:32px;}
  
}

  /* ─── RESPONSIVE: small phone 420px ─── */
  @media(max-width:420px){

    body.page-id-31 .mgr-wrap{padding:56px 16px;}
    body.page-id-31 .cover{padding:88px 18px 72px;}
    body.page-id-31 .ch1{font-size:clamp(1.5rem,7vw,2rem);}
    body.page-id-31 .stitle{font-size:clamp(1.4rem,7vw,2rem);}
    body.page-id-31 .connect, body.page-id-31 .cta{padding:64px 18px;}
    body.page-id-31 .ctabtn{padding:16px 36px;}
    body.page-id-31 .vcard{padding:22px 18px 22px 16px;}
    body.page-id-31 .snsc{padding:14px 16px;gap:10px;}
    body.page-id-31 .ckicker{letter-spacing:.28em;font-size:.55rem;}
    body.page-id-31 .cover-photo{width:108px;height:108px;}
    body.page-id-31 .cnarr-ln{width:32px;}
    body.page-id-31 .cbadge{padding:7px 14px;font-size:.72rem;}
  
}
