/* ═══════════════════════════════════════════════════
   EXPAND — Quiet Intelligence v5
═══════════════════════════════════════════════════ */

/* ── Opening overlay ── */
#opening-overlay{
  position:fixed;inset:0;z-index:9000;
  background:#FDFCFA;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .9s ease;
}
#opening-overlay.fade-out{opacity:0;pointer-events:none;}
#opening-skip{
  position:fixed;top:28px;right:clamp(20px,4vw,48px);z-index:9001;
  font-family:'Zen Maru Gothic',sans-serif;font-size:11px;letter-spacing:.16em;
  color:rgba(60,50,40,.4);background:none;
  border:1px solid rgba(60,50,40,.18);border-radius:999px;
  padding:8px 18px;cursor:pointer;
  transition:color .2s,border-color .2s,opacity .4s;
}
#opening-skip:hover{color:rgba(60,50,40,.85);border-color:rgba(60,50,40,.45);}

/* ── Opening animation CSS (original) ── */



*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}



/* ══ STAGE ══ */
#stage{
  position:relative;
  width:1040px;height:660px;
  opacity:0;
  transition:opacity 1.6s ease-out;
}
#stage.show{opacity:1;}

/* ══ SHEET ══ */
.sheet{
  position:absolute;
  inset:0;
}

.sheet-content{
  position:absolute;inset:0;
  padding:64px 72px 56px 72px;
  border-radius:10px;
  overflow:hidden;
  z-index:1;
}

/* ══ FV1 ══ */
.fv1-outer{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 80px;
}

/* 縦書き：タイプライター */
.fv1-type-col{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  font-family:'Zen Maru Gothic',sans-serif;
  font-size:32px;
  color:#1A1410;
  letter-spacing:.04em;
  line-height:1.8;
  flex-shrink:0;
  display:block;
  position:relative;
}

.type-line{display:block;white-space:nowrap;}
.type-spacer{display:block;width:2em;min-width:2em;}

/* カーソル：縦書きなので文字の「下」に出す横棒 */
.type-cursor{
  display:inline-block;
  height:2px;
  background:#3D3530;
  opacity:1;
  transition:opacity .9s ease-in;
  position:absolute;
  pointer-events:none;
}
.type-cursor.done{opacity:0;}

.pnum{
  position:absolute;bottom:28px;left:72px;
  z-index:4;
  font-family:'Zen Maru Gothic',sans-serif;
  font-size:9px;font-weight:300;
  color:rgba(150,130,110,.6);letter-spacing:.12em;
}




/* ── Design Tokens ── */
:root{
  --bg:        #F8F5F0;
  --surface:   rgba(255,255,255,0.92);
  --surface-s: rgba(255,255,255,0.96);
  --primary:   #F38B2A;
  --primary-h: #E87416;
  --text:      #2F2F2F;
  --sub:       #787068;
  --muted:     #A89E94;
  --border:    #E4DDD4;
  --ink:       #3E3830;
  --indigo:    #C8D5E2;
  --r-card:    20px;
  --r-btn:     999px;
  --sp:        clamp(96px,12vw,160px);
  --w:         1160px;
  --ph:        clamp(24px,5.5vw,72px);
  --font:      'Zen Maru Gothic',sans-serif;
  --ease:      cubic-bezier(.32,0,.16,1);
  --accent-main:#F38B2A;--accent-moss:#7FA88B;--accent-sub:#C8D5E2;
  --line:var(--border);--text-main:var(--text);--text-sub:var(--sub);
  --text-muted:var(--muted);--bg-2:var(--surface);
  --fs-body:15px;--fs-small:13px;--lh-body:2;
  --radius-card:var(--r-card);--radius-button:var(--r-btn);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font);color:var(--text);
  line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  padding-top:64px;
  background-image:url('images/bg-texture.webp');
  background-size:cover;
  background-attachment:fixed;
  background-position:center;
  background-color:var(--bg);
}
img{max-width:100%;display:block;}
button{font-family:var(--font);}

body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:0.014;mix-blend-mode:multiply;
}

#brushCanvas{position:fixed;inset:0;z-index:10;pointer-events:none;}
#rippleCanvas,#inkTorch,#c-dot,#c-ring{display:none;}
#topbar{position:fixed;top:0;left:0;height:1px;background:var(--primary);z-index:1000;width:0%;}
.pnum{display:none!important;}

.cursor-ripple{
  position:fixed;border-radius:50%;pointer-events:none;z-index:500;
  border:1px solid rgba(120,112,104,.15);
  transform:translate(-50%,-50%);
  animation:cRipple 1200ms ease-out forwards;
}
@keyframes cRipple{
  from{width:0;height:0;opacity:.12;}
  to{width:40px;height:40px;opacity:0;}
}

/* ── Header ── */
#site-hdr{
  position:fixed;top:0;left:0;right:0;z-index:900;height:64px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--ph);background:transparent;
  border-bottom:1px solid transparent;
  transition:background .5s var(--ease),border-color .5s var(--ease);
}
#site-hdr.solid{
  background:rgba(248,245,240,.93);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom-color:var(--border);
}
.hdr-logo{display:flex;align-items:center;text-decoration:none;height:32px;font-size:0;}
.hdr-logo img{height:30px;width:auto;}
.hdr-logo .mark{display:none;}
.hdr-nav{display:flex;list-style:none;gap:clamp(16px,2.4vw,32px);}
.hdr-nav a{font-size:13px;letter-spacing:.04em;color:var(--sub);text-decoration:none;transition:color .2s;}
.hdr-nav a:hover{color:var(--text);}
.hdr-cta{
  font-size:13px;letter-spacing:.04em;font-weight:500;color:var(--primary);
  background:transparent;border:1px solid rgba(243,139,42,.4);
  border-radius:var(--r-btn);padding:8px 22px;cursor:pointer;
  transition:background .25s,border-color .25s;
}
.hdr-cta:hover{background:rgba(243,139,42,.07);border-color:var(--primary);}
@media(max-width:800px){.hdr-nav{display:none;}}

/* ══ Full-width layout ══
   .stage becomes full-width; .wrap/.hero-content handle max-width internally */
.section-hero{margin-top:-64px;}

.section-wrapper{width:100%;}
.section-wrapper > .stage{
  max-width:100%!important;
  padding:0!important;
  width:100%;
}
/* The ink images div — hide it, takes no space */
.section-wrapper > .stage > div[style*="position:relative"]{display:none!important;}

.stage,.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--ph);width:100%;}
/* Override for section-level .stage only */
section .stage{max-width:var(--w);padding:0 var(--ph);}

/* Reveal */
.reveal{
  opacity:0;transform:translateY(24px);
  transition:opacity .75s var(--ease),transform .75s var(--ease);
}
.reveal.d1{transition-delay:.12s;}
.reveal.d2{transition-delay:.24s;}
.reveal.d3{transition-delay:.38s;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* Text balance */
h1,h2,h3,.hero-h,.problem-h,.solution-h,.wwd-h,.founder-h,.cta-h,.insight-h,.wif-h{
  text-wrap:balance;word-break:auto-phrase;overflow-wrap:break-word;
}

/* ════ HERO ════ */
.section-hero{
  position:relative;min-height:100svh;width:100%;
  display:flex;align-items:center;overflow:hidden;
  background:transparent;
  padding:clamp(110px,15vh,190px) 0 clamp(80px,10vh,130px);
}
.section-hero::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('images/hero-bg.png');
  background-size:cover;background-position:center;
  opacity:0.4;mix-blend-mode:multiply;
}
.hero-ink-splash,.hero-ink-enso{display:none!important;}
#inkTorch{display:none!important;}
.hero-content{
  position:relative;z-index:2;width:100%;
  max-width:var(--w);padding:0 var(--ph);margin:0 auto;
}
.hero-h{
  font-size:clamp(46px,7.2vw,100px);
  font-weight:700;line-height:1.18;letter-spacing:-.02em;
  color:var(--text);margin-bottom:clamp(28px,4vh,48px);
  animation:fadeUp .75s var(--ease) .3s both;
}
.hero-lead{
  font-size:clamp(15px,1.5vw,17px);line-height:2.2;color:var(--sub);
  max-width:26em;
  animation:fadeUp .75s var(--ease) .5s both;
}
.hero-ripple-svg{display:none;}/* replaced by canvas */
.hero-ripple-canvas{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  pointer-events:none;z-index:1;
}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* ════ Section backgrounds ════ */
.section-wif,.section-insight,.section-whatwedo{
  background:rgba(255,255,255,.9);width:100%;
}
.section-problem,.section-solution,.section-founder{
  background:rgba(248,245,240,.18);width:100%;
}
/* White sections — still mostly white but WebP subtly visible */
.section-wif,.section-insight,.section-whatwedo{
  background:rgba(255,255,255,.88);width:100%;
}
.section-cta{width:100%;background:var(--ink)!important;padding-bottom:clamp(32px,4vw,48px)!important;}
.section-cta::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 200px at 50% 50%,rgba(243,139,42,.06) 0%,transparent 100%),radial-gradient(circle 400px at 50% 50%,rgba(243,139,42,.04) 0%,transparent 100%);}

/* ════ WIF ════ */
.section-wif{padding:var(--sp) 0;position:relative;overflow:hidden;}
.wif-bg{display:none;}
.wif-header{max-width:580px;margin:0 auto clamp(52px,7vw,76px);text-align:center;}
.wif-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.wif-h{font-size:clamp(30px,4vw,52px);font-weight:700;line-height:1.25;color:var(--text);}
.wif-h .hl{color:var(--primary);}
.wif-lead{margin-top:18px;font-size:15px;line-height:2.1;color:var(--sub);}
.wif-cards{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:18px;}
/* ティーチング → 2行目左 */
.wif-cards .wif-card:nth-child(1){grid-column:1;grid-row:2;}
/* コーチング → 2行目右 */
.wif-cards .wif-card:nth-child(2){grid-column:2;grid-row:2;}
/* フィードバック → 1行目全幅（上位概念として配置） */
.wif-card.is-fb{grid-column:1/-1;grid-row:1;}
/* 包含関係を示す視覚的区切り */
.wif-card.is-fb::after{content:'▼ 以下のふたつを包含し、その先へ向かう';display:block;padding:4px 28px 22px;font-size:11px;letter-spacing:.12em;color:var(--primary);opacity:.75;}
@media(max-width:820px){
  .wif-cards{grid-template-columns:1fr;}
  .wif-cards .wif-card:nth-child(1){grid-column:1;grid-row:3;}
  .wif-cards .wif-card:nth-child(2){grid-column:1;grid-row:4;}
  .wif-card.is-fb{grid-column:1;grid-row:1;}
}
@media(max-width:820px){.wif-cards{grid-template-columns:1fr;max-width:400px;margin:0 auto;}}
.wif-card{
  background:rgba(248,245,240,.8);border-radius:var(--r-card);
  border:1px solid var(--border);padding:38px 28px 42px;
  transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.wif-card:hover{box-shadow:0 10px 32px rgba(47,47,47,.07);transform:translateY(-3px);}
.wif-card.is-fb{background:#fff;border-color:var(--primary);position:relative;}
.wif-card.is-fb::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--primary);border-radius:var(--r-card) var(--r-card) 0 0;
}
.wif-card-label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.wif-card.is-fb .wif-card-label{color:var(--primary);}
.wif-card-title{font-size:19px;font-weight:700;color:var(--text);text-wrap:balance;}
.wif-card-body{margin-top:12px;font-size:14px;line-height:1.9;color:var(--sub);}
.wif-note{
  margin-top:64px;
  padding:clamp(48px,7vw,80px) clamp(32px,5vw,72px);
  background:var(--ink);
  color:#FFFFFF;
  border-left:none;
  border-radius:var(--r-card);
  max-width:100%;
  text-align:center;
  font-size:clamp(17px,2vw,24px);
  font-weight:500;
  line-height:1.9;
  position:relative;
  overflow:hidden;
}
/* 背景に同心円（水の波紋） */
.wif-note::before{
  content:'';
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle 80px at 50% 50%, rgba(243,139,42,.08) 0%, transparent 100%),
    radial-gradient(circle 180px at 50% 50%, rgba(243,139,42,.05) 0%, transparent 100%),
    radial-gradient(circle 300px at 50% 50%, rgba(243,139,42,.03) 0%, transparent 100%),
    radial-gradient(circle 440px at 50% 50%, rgba(243,139,42,.02) 0%, transparent 100%);
}
.wif-note p,.wif-note>*{position:relative;z-index:1;}
.wif-note strong,.wif-note .hl{color:rgba(243,164,80,1);}

/* ════ PROBLEM ════ */
.section-problem{padding:var(--sp) 0;}
.problem-h{
  font-size:clamp(28px,3.8vw,52px);font-weight:700;line-height:1.32;
  color:var(--text);margin-bottom:clamp(48px,7vw,80px);
}
.card-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:820px){.card-row{grid-template-columns:1fr;}}
.card{
  background:var(--surface-s,rgba(255,255,255,.96));border-radius:var(--r-card);
  border:1px solid var(--border);
  box-shadow:0 2px 12px rgba(47,47,47,.04);overflow:hidden;
  transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.card:hover{box-shadow:0 10px 32px rgba(47,47,47,.08);transform:translateY(-2px);}
.problem-card-img img{width:100%;height:180px;object-fit:cover;display:block;}
.problem-card-body{padding:26px 24px 32px;}
.card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:9px;}
.card-body{font-size:13.5px;line-height:1.9;color:var(--sub);}

/* ════ INSIGHT ════ */
.section-insight{padding:var(--sp) 0;}
.insight-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(48px,7vw,108px);align-items:center;
}
@media(max-width:820px){.insight-grid{grid-template-columns:1fr;}}
.insight-h{font-size:clamp(28px,3.8vw,52px);font-weight:700;line-height:1.32;color:var(--text);}
.rule-dash{width:40px;height:1.5px;background:var(--primary);margin:22px 0;}
.insight-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.insight-lead{font-size:15px;line-height:2.1;color:var(--sub);}
.mirror-frame{position:relative;border-radius:var(--r-card);overflow:hidden;}
.mirror-img{position:relative;overflow:hidden;border-radius:var(--r-card);}
.mirror-img img{width:100%;border-radius:var(--r-card);display:block;}
.accent-dot{position:absolute;width:8px;height:8px;border-radius:50%;}
.accent-dot.orange{background:var(--primary);top:16px;right:16px;opacity:.7;}
.accent-dot.teal{background:var(--indigo);bottom:16px;left:16px;opacity:.6;}

/* ════ SOLUTION ════ */
.section-solution{padding:var(--sp) 0;}
.solution-bg{display:none;}
.solution-content{position:relative;z-index:1;}
.solution-h{font-size:clamp(28px,3.8vw,52px);font-weight:700;line-height:1.32;color:var(--text);margin-bottom:14px;}
.solution-support{font-size:15px;line-height:2.1;color:var(--sub);margin-bottom:clamp(48px,7vw,88px);max-width:40em;}
.tri-diagram{position:relative;max-width:600px;margin:0 auto;}
.tri-lines{width:100%;}
.tri-node{
  position:absolute;background:rgba(255,255,255,.96);border:1px solid var(--border);
  border-radius:16px;padding:18px 16px;text-align:center;width:138px;
  box-shadow:0 4px 18px rgba(47,47,47,.05);
  transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.tri-node:hover{box-shadow:0 10px 30px rgba(47,47,47,.09);}
.tri-node.top{top:0;left:50%;transform:translateX(-50%);}
.tri-node.top:hover{transform:translateX(-50%) translateY(-3px);}
.tri-node.bl,.tri-node.br{bottom:0;}
.tri-node.bl{left:0;}.tri-node.br{right:0;}
.tri-node.bl:hover,.tri-node.br:hover{transform:translateY(-3px);}
.tri-icon{width:28px;height:28px;margin:0 auto 7px;}
.tri-node-title{font-size:13px;font-weight:700;color:var(--text);}
.tri-node-desc{font-size:11.5px;color:var(--sub);margin-top:5px;line-height:1.55;}

/* ════ WHAT WE DO ════ */
.section-whatwedo{padding:var(--sp) 0;}
.wwd-bg{display:none;}
.wwd-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:clamp(44px,6vw,68px);}
@media(max-width:720px){/* removed */}
.wwd-h{font-size:clamp(28px,3.8vw,52px);font-weight:700;line-height:1.32;color:var(--text);max-width:15em;}
.wwd-lead{font-size:15px;line-height:2.1;color:var(--sub);max-width:24em;}
.wwd-section-label{display:flex;align-items:center;gap:14px;margin-bottom:24px;}
.wwd-label-en{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}
.wwd-label-jp{font-size:13px;color:var(--text);font-weight:500;}
.wwd-label-line{flex:1;height:1px;background:var(--border);}
.wwd-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;}
@media(max-width:720px){.wwd-cards{grid-template-columns:1fr;}}
.wwd-card{
  background:rgba(248,245,240,.85);border-radius:var(--r-card);border:1px solid var(--border);
  overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.wwd-card:hover{box-shadow:0 10px 30px rgba(47,47,47,.07);transform:translateY(-2px);}
.wwd-card-media{background-size:cover;background-position:center;height:200px;}
.wwd-card-body{padding:26px 24px 30px;}
.wwd-card-eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:11px;}
.wwd-card-title{font-size:18px;font-weight:700;color:var(--text);line-height:1.4;}
.wwd-card-rule{width:30px;height:1.5px;background:var(--primary);margin:13px 0;}
.wwd-card-desc{font-size:13.5px;line-height:1.9;color:var(--sub);}
.wwd-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13px;color:var(--primary);text-decoration:none;transition:gap .2s var(--ease);}
.wwd-card-link:hover{gap:10px;}
.wwd-connector{margin:32px 0;}.wwd-connector svg{width:100%;}
.wwd-connector-text{text-align:center;font-size:13px;color:var(--muted);margin-top:10px;}
.wwd-product-row{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;}
@media(max-width:720px){.wwd-product-row{grid-template-columns:1fr;}}
.wwd-product-primary{
  background:rgba(248,245,240,.85);border-radius:var(--r-card);border:1px solid var(--border);
  overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.wwd-product-primary:hover{box-shadow:0 10px 30px rgba(47,47,47,.07);transform:translateY(-2px);}
.wwd-product-media img{width:100%;height:180px;object-fit:cover;display:block;}

.wwd-product-list{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.wwd-product-list li{font-size:13.5px;color:var(--sub);line-height:1.75;padding-left:16px;position:relative;}
.wwd-product-list li::before{content:'—';position:absolute;left:0;color:var(--border);}

/* ════ FOUNDER ════ */
.section-founder{padding:var(--sp) 0;}
.founder-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(48px,7vw,108px);align-items:start;}
@media(max-width:820px){.founder-grid{grid-template-columns:1fr;}}
.founder-photo img{width:100%;border-radius:var(--r-card);box-shadow:0 16px 52px rgba(47,47,47,.1);}
.founder-h{font-size:clamp(20px,2.6vw,36px);font-weight:700;line-height:1.45;color:var(--text);margin-bottom:22px;}
.founder-name{font-size:20px;font-weight:700;color:var(--text);margin-bottom:5px;}
.founder-title{font-size:12px;color:var(--muted);letter-spacing:.05em;margin-bottom:22px;}
.founder-bio{font-size:14px;line-height:2.1;color:var(--sub);}
.founder-more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:13px;color:var(--primary);text-decoration:none;transition:gap .2s var(--ease);}
.founder-more:hover{gap:12px;}.founder-more .arrow{font-size:14px;}
.founder-extras{margin-top:26px;display:flex;flex-direction:column;gap:14px;}
.founder-extras .card{padding:22px;}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.book-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;}
.book-item{width:82px;}
.book-cover img{width:100%;border-radius:8px;box-shadow:0 4px 14px rgba(47,47,47,.1);}
.book-title{font-size:11.5px;color:var(--sub);margin-top:7px;line-height:1.5;}

/* ════ CTA ════ */
.section-cta{padding:var(--sp) 0;background:var(--ink);position:relative;overflow:hidden;isolation:isolate;}
.section-cta-before-DISABLED{
  content:'';display:none;background-image:url('images/bg-texture.webp');background-size:cover;opacity:0.06;mix-blend-mode:screen;*/
}
.cta-bg{display:none;}
.cta-content{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,108px);align-items:start;position:relative;z-index:1;}
@media(max-width:820px){.cta-content{grid-template-columns:1fr;}}
.cta-h{font-size:clamp(28px,4vw,54px);font-weight:700;line-height:1.3;color:#FFFFFF;margin-bottom:20px;}
.cta-lead{font-size:15px;line-height:2.1;color:rgba(255,255,255,.58);margin-bottom:36px;}
.btn-pill{
  font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:.04em;
  color:#FFFFFF;background:var(--primary);border:none;border-radius:var(--r-btn);
  padding:14px 40px;cursor:pointer;
  transition:background .25s var(--ease),transform .2s;
  box-shadow:0 4px 22px rgba(243,139,42,.32);
}
.btn-pill:hover{background:var(--primary-h);transform:translateY(-2px);}
.company-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-card);padding:28px;}
.company-card .eyebrow{color:rgba(255,255,255,.36);margin-bottom:14px;}
.company-title{font-size:16px;font-weight:700;color:#FFFFFF;margin-bottom:16px;}
.company-rule{height:1px;background:rgba(255,255,255,.08);margin-bottom:16px;}
.company-row{display:flex;gap:14px;margin-bottom:9px;font-size:13px;line-height:1.75;}
.company-label{color:rgba(255,255,255,.36);min-width:70px;flex-shrink:0;}
.company-value{color:rgba(255,255,255,.75);}
.company-links .company-value{display:flex;gap:14px;flex-wrap:wrap;}
.company-links a{color:var(--primary);text-decoration:none;}
.company-links a:hover{text-decoration:underline;}

.solution-bg,.cta-bg,.wwd-bg,.wif-bg{display:none!important;}

.elb-story{display:flex;flex-direction:column;gap:8px;font-size:14px;}
.elb-arrow{color:var(--muted);font-size:12px;line-height:1;}
.elb-therefore{color:var(--primary);}
.elb-punchline{font-size:18px;font-weight:700;color:var(--text);margin-top:4px;}
.elb-sub{font-size:13px;color:var(--sub);line-height:1.7;margin-top:8px;}

.wif-card-img{margin:-38px -28px 20px;height:150px;overflow:hidden;border-radius:var(--r-card) var(--r-card) 0 0;}
.wif-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
/* ELB horizontal layout */



/* WIF note: flex with SVG + text */
.wif-note{display:flex;align-items:center;gap:clamp(24px,4vw,48px);text-align:left;padding:clamp(36px,5vw,56px) clamp(28px,4vw,48px);}
.wif-vis{flex:0 0 260px;width:260px;}
.wif-circles{width:260px;height:260px;display:block;}
.wc{transform-origin:110px 110px;animation:circleIn .8s ease-out both;}
.wc-t{animation-delay:.2s;}
.wc-c{animation-delay:.5s;}
.wc-f{animation-delay:.8s;}
.wc-label{opacity:0;animation:fadeIn .5s ease both;}
.wc-tl{animation-delay:.4s;}
.wc-cl{animation-delay:.7s;}
.wc-fl{animation-delay:1.0s;}
@keyframes circleIn{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:scale(1);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.wif-note-inner{display:contents;}
.wif-note-text{flex:1;}
@media(max-width:640px){.wif-note{flex-direction:column;text-align:center;}.wif-vis{width:120px;}.wif-circles{width:120px;height:120px;}}


.solution-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:0;}
@media(max-width:720px){.solution-steps{grid-template-columns:1fr;}}
.solution-step{
  background:rgba(255,255,255,.96);border:1px solid var(--border);
  border-radius:var(--r-card);overflow:hidden;position:relative;
  transition:box-shadow .25s var(--ease),transform .25s var(--ease);
}
.solution-step:hover{box-shadow:0 10px 32px rgba(47,47,47,.09);transform:translateY(-2px);}
.solution-step-num{
  position:absolute;top:12px;right:14px;
  font-size:36px;font-weight:700;color:var(--primary);opacity:.12;
  font-family:var(--serif,'Cormorant Garamond',serif);line-height:1;
}
.solution-step-img{height:190px;overflow:hidden;}
.solution-step-img img{width:100%;height:100%;object-fit:cover;display:block;}
.solution-step-content{padding:24px 20px 28px;}
.solution-step-title{
  font-size:20px;font-weight:700;
  color:var(--primary);margin-bottom:10px;
}
.solution-step-desc{font-size:14px;line-height:1.9;color:var(--sub);}


/* ══ ELB product: image left (natural height) + text right ══ */
.wwd-product-primary{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  overflow:hidden;
}
.wwd-product-primary .wwd-product-media{
  flex:0 0 48%;
  width:48%;
  overflow:hidden;
  border-radius:var(--r-card) 0 0 var(--r-card);
  background:var(--ink);
  align-self:stretch;
  display:flex;
  align-items:center;
}
.wwd-product-primary .wwd-product-media img{
  width:100%;
  height:auto;
  display:block;
  object-fit:unset;
}
.wwd-product-primary .wwd-card-body{
  flex:1;
  min-width:0;
  padding:clamp(20px,3vw,36px);
  align-self:center;
}
@media(max-width:720px){
  .wwd-product-primary{flex-direction:column;}
  .wwd-product-primary .wwd-product-media{
    flex:none;width:100%;align-self:auto;
    border-radius:var(--r-card) var(--r-card) 0 0;
    max-height:200px;
  }
  .wwd-product-primary .wwd-product-media img{
    height:200px;object-fit:cover;object-position:center;
  }
}

/* ELB: full width row */
#wwd-product-row{display:block;width:100%;}
#wwd-product-row .wwd-product-primary{width:100%;border-radius:var(--r-card);background:var(--ink);}
#wwd-product-row .wwd-product-media{border-radius:var(--r-card) 0 0 var(--r-card);}

/* ELB story: horizontal flow instead of vertical */
.elb-story{display:flex;flex-direction:column;gap:16px;}
.elb-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--sub);}
.elb-step{white-space:nowrap;}
.elb-arr{color:var(--muted);font-size:12px;margin:0 2px;}
.elb-therefore-text{color:var(--primary);font-size:11px;letter-spacing:.1em;}
.elb-punchline{font-size:clamp(22px,2.6vw,32px);font-weight:700;color:var(--text);line-height:1.3;}
.elb-sub{font-size:13px;color:var(--sub);line-height:1.8;margin-top:4px;}


/* NOT ONLY: real stamp image — ハンコ演出 */
.wif-card:not(.is-fb){position:relative;overflow:visible;cursor:default;}
.wif-not-only{
  position:absolute;
  top:30%;left:50%;           /* upper portion of card */
  transform:translate(-50%,-50%) scale(0) rotate(-22deg);
  opacity:0;pointer-events:none;z-index:100;
  width:120px;height:120px;
  display:flex;align-items:center;justify-content:center;
}
.wif-not-only img{
  width:100%;height:100%;
  object-fit:contain;
  mix-blend-mode:multiply;
  display:block;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .12s ease;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.18));
}
.wif-card:not(.is-fb):hover .wif-not-only,
.wif-card:not(.is-fb).active .wif-not-only{
  transform:translate(-50%,-50%) scale(1) rotate(-8deg);
  opacity:1;
}


[id]{scroll-margin-top:80px;}


/* ── Image warmth treatment: de-corporate, add life ── */
.wif-card-img,.problem-card-img,.solution-step-img,.mirror-img{
  position:relative;overflow:hidden;
}
.wif-card-img img,.problem-card-img img,.solution-step-img img,
.mirror-img img,.wwd-card-media img{
  filter:saturate(0.82) brightness(1.03) contrast(0.95);
  transition:filter .5s ease, transform .5s ease;
}
/* Warm amber tint overlay on every card image */
.wif-card-img::after,.problem-card-img::after,.solution-step-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(
    135deg,
    rgba(248,235,210,.18) 0%,
    rgba(243,139,42,.08) 100%
  );
  mix-blend-mode:multiply;
  pointer-events:none;
  transition:opacity .4s ease;
}
/* On hover: reveal true colors + slight zoom for life */
.wif-card:hover .wif-card-img img,
.card:hover .problem-card-img img,
.solution-step:hover .solution-step-img img{
  filter:saturate(1.05) brightness(1.06) contrast(0.97);
  transform:scale(1.04);
}
.wif-card:hover .wif-card-img::after,
.card:hover .problem-card-img::after,
.solution-step:hover .solution-step-img::after{opacity:0;}

/* Mirror/insight image: warmer */
.mirror-img img{filter:saturate(0.78) sepia(12%) brightness(1.05);}

/* WWD cards hover zoom */
.wwd-card:hover .wwd-card-media img{
  filter:saturate(1.0) brightness(1.05);
  transform:scale(1.04);
  transition:filter .5s ease,transform .5s ease;
}
.wwd-card-media img{
  transition:filter .5s ease,transform .5s ease;
  filter:saturate(0.82) brightness(1.02);
}


/* ════ MAGAZINE CARDS — image hero, text reveals on hover/tap ════ */

/* PROBLEM section cards */
.section-problem .card{
  position:relative;
  height:clamp(300px,38vw,440px);
  overflow:hidden;
  cursor:pointer;
}
.section-problem .problem-card-img{
  position:absolute;inset:0;height:100%;
}
.section-problem .problem-card-img img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(0.82) brightness(1.0) contrast(0.95);
  transition:transform .6s cubic-bezier(.2,.8,.2,1), filter .4s ease;
}
.section-problem .card:hover .problem-card-img img,
.section-problem .card.active .problem-card-img img{
  transform:scale(1.06);
  filter:saturate(0.95) brightness(1.05);
}
.section-problem .problem-card-body{
  position:absolute;
  bottom:0;left:0;right:0;
  background:linear-gradient(to top, rgba(30,24,20,.95) 55%, rgba(30,24,20,.55) 80%, transparent 100%);
  padding:80px 24px 24px;
  color:#fff;
  transform:translateY(calc(100% - 72px));
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.section-problem .card:hover .problem-card-body,
.section-problem .card.active .problem-card-body{
  transform:translateY(0);
}
.section-problem .card-title{
  color:#fff;font-size:16px;font-weight:700;margin-bottom:0;
  display:flex;align-items:center;justify-content:space-between;
}
.section-problem .card-title::after{
  content:'';display:inline-block;
  width:8px;height:8px;
  border-right:1.5px solid rgba(255,255,255,.7);
  border-bottom:1.5px solid rgba(255,255,255,.7);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .35s ease;
  flex-shrink:0;margin-left:10px;vertical-align:middle;
}
.section-problem .card:hover .card-title::after,
.section-problem .card.active .card-title::after{
  transform:rotate(-135deg) translateY(2px);
}
.section-problem .card-body{
  color:rgba(255,255,255,.8);font-size:13.5px;
  margin-top:12px;line-height:1.75;
}

/* Warm corner accent on problem cards */
.section-problem .card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:60px;
  background:linear-gradient(to bottom, rgba(243,139,42,.12), transparent);
  pointer-events:none;
}

/* SOLUTION steps */
.solution-step{
  cursor:pointer;
}
.solution-step-img{
  height:clamp(240px,28vw,320px);
  transition:height .4s ease;
}
.solution-step:hover .solution-step-img img,
.solution-step.active .solution-step-img img{
  transform:scale(1.05);
  filter:saturate(0.95) brightness(1.06);
}
.solution-step-content{
  background:var(--surface-s,rgba(255,255,255,.96));
  padding:20px 20px 24px;
  transition:background .3s ease;
}
.solution-step:hover .solution-step-content,
.solution-step.active .solution-step-content{
  background:#fff;
}
.solution-step-title{
  font-size:20px;font-weight:700;color:var(--primary);
  display:flex;align-items:center;gap:8px;
}
.solution-step-title::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--primary);flex-shrink:0;
  box-shadow:0 0 0 3px rgba(243,139,42,.2);
}

/* WIF cards: subtle reveal for body text */
/* WIF body: always visible in horizontal layout */
.wif-card:not(.is-fb) .wif-card-body{
  max-height:none;overflow:visible;
  opacity:1;margin-top:10px;
}
.wif-card:not(.is-fb) .wif-card-title{
  cursor:default;
  padding-bottom:4px;
  border-bottom:1.5px solid var(--border);
  transition:border-color .3s;
}
.wif-card:not(.is-fb):hover .wif-card-title{border-color:var(--primary);}

/* Tap indicator dot on mobile */
@media(max-width:820px){
  .section-problem .card::before{
    content:'TAP';position:absolute;top:12px;right:12px;z-index:2;
    font-size:9px;letter-spacing:.14em;color:rgba(255,255,255,.7);
    background:rgba(0,0,0,.3);border-radius:999px;padding:3px 8px;
  }
  .section-problem .card.active::before{content:'CLOSE';}
}


/* ELB dark card body text */
#wwd-product-row .wwd-card-eyebrow{color:rgba(255,255,255,.5)!important;}
#wwd-product-row .wwd-card-title{color:#fff;}
#wwd-product-row .wwd-card-rule{background:rgba(255,255,255,.3)!important;}
#wwd-product-row .wwd-card-desc{color:rgba(255,255,255,.75);}
#wwd-product-row .elb-flow .elb-step{color:rgba(255,255,255,.8);}
#wwd-product-row .elb-arr{color:rgba(255,255,255,.4);}
#wwd-product-row .elb-therefore-text{color:rgba(243,164,80,.9);font-size:13px;letter-spacing:.06em;}
#wwd-product-row .elb-punchline{color:#fff;}
#wwd-product-row .elb-sub{color:rgba(255,255,255,.65);}
#wwd-product-row .wwd-card-link{color:rgba(243,164,80,.9);}


/* WWD top ripple visual */
/* removed */
/* removed */
/* removed */
.wwd-ripple-anim{width:100%;height:auto;display:block;}
/* removed */


/* WIF Teaching/Coaching: horizontal (image left, text right) */
.wif-card:not(.is-fb){
  display:grid;
  grid-template-columns:42% 1fr;
  grid-template-rows:auto auto 1fr auto;
  padding:0;
  min-height:260px;
  overflow:hidden;
}
.wif-card:not(.is-fb) .wif-card-img{
  grid-column:1;
  grid-row:1/-1;
  height:100%;
  margin:0;  /* remove the negative margins */
  border-radius:var(--r-card) 0 0 var(--r-card);
}
.wif-card:not(.is-fb) .wif-card-img img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 55%;  /* show face area */
  display:block;
}
.wif-card:not(.is-fb) .wif-card-label{
  grid-column:2;grid-row:1;
  padding:22px 20px 0;
}
.wif-card:not(.is-fb) .wif-card-title{
  grid-column:2;grid-row:2;
  padding:8px 20px 0;
  border-bottom:none;  /* remove divider, replace with padding */
}
.wif-card:not(.is-fb) .wif-card-body{
  grid-column:2;grid-row:3;
  padding:0 20px;
  max-height:none!important;  /* override reveal animation for grid */
  opacity:1!important;
  margin-top:10px!important;
}
.wif-card:not(.is-fb) .wif-not-only{
  grid-column:2;grid-row:4;
  /* change from absolute floating to inline contextual */
  position:relative;
  top:auto;left:auto;transform:none;
  display:inline-flex;align-items:center;gap:6px;
  font-size:11px;letter-spacing:.12em;
  color:var(--muted);
  background:none;box-shadow:none;padding:10px 20px 18px;
  border-radius:0;
}
.wif-card:not(.is-fb) .wif-not-only::after{display:none;}
.wif-card:not(.is-fb):hover .wif-not-only{opacity:1;transform:none;}
.wif-card:not(.is-fb) .wif-not-only::before{
  content:'';display:inline-block;
  width:14px;height:1px;background:var(--muted);
}

@media(max-width:820px){
  .wif-card:not(.is-fb){
    grid-template-columns:1fr;
    grid-template-rows:160px auto auto 1fr auto;
  }
  .wif-card:not(.is-fb) .wif-card-img{
    grid-column:1;grid-row:1;
    height:160px;
    border-radius:var(--r-card) var(--r-card) 0 0;
  }
  .wif-card:not(.is-fb) .wif-card-label{grid-row:2;padding:18px 20px 0;}
  .wif-card:not(.is-fb) .wif-card-title{grid-row:3;padding:8px 20px 0;}
  .wif-card:not(.is-fb) .wif-card-body{grid-row:4;padding:8px 20px 0;}
  .wif-card:not(.is-fb) .wif-not-only{grid-row:5;}
}


/* Swap CONSULTING ↔ TRAINING to match heading order (研修・コンサル) */
.wwd-cards .wwd-card:nth-child(1){order:2;}
.wwd-cards .wwd-card:nth-child(2){order:1;}



}/* remove top border, re-add to image */
.wif-card.is-fb .wif-card-img{
  grid-column:1;grid-row:1/-1;
  height:100%;margin:0;
  border-radius:var(--r-card) 0 0 var(--r-card);
  position:relative;overflow:hidden;
}
.wif-card.is-fb .wif-card-img::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--primary);z-index:1;
}
.wif-card.is-fb .wif-card-img img{
  width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block;
}
.wif-card.is-fb .wif-card-label{grid-column:2;grid-row:1;padding:22px 24px 0;}
.wif-card.is-fb .wif-card-title{grid-column:2;grid-row:2;padding:10px 24px 0;font-size:18px;}
.wif-card.is-fb .wif-card-body{grid-column:2;grid-row:3;padding:10px 24px 24px;}
@media(max-width:820px){
  }
  .wif-card.is-fb .wif-card-label{grid-row:2;padding:18px 20px 0;}
  .wif-card.is-fb .wif-card-title{grid-row:3;padding:8px 20px 0;}
  .wif-card.is-fb .wif-card-body{grid-row:4;padding:8px 20px 20px;}
}


/* removed */ /* text doesn't overlap ripple */
/* removed */
@media(max-width:720px){.wwd-ripple-vis{display:none;}}


/* 執筆 bridge link */
.wwd-writing-bridge{
  display:flex;align-items:center;gap:20px;
  padding:18px 24px;margin-bottom:24px;
  background:rgba(243,139,42,.05);
  border:1px solid rgba(243,139,42,.2);
  border-radius:var(--r-card);
}
.wwd-writing-icon{
  font-size:22px;flex-shrink:0;opacity:.75;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  background:rgba(243,139,42,.1);border-radius:50%;
}
.wwd-writing-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--primary);margin-bottom:3px;display:block;}
.wwd-writing-title{font-size:14px;font-weight:500;color:var(--text);}
.wwd-writing-link{flex-shrink:0;font-size:13px;color:var(--primary);text-decoration:none;transition:gap .2s;}
.wwd-writing-link:hover{text-decoration:underline;}



.wif-card.is-fb .wif-card-img{
  height:220px;
  margin:-38px -38px 22px;  /* extend to card edges */
  border-radius:var(--r-card) var(--r-card) 0 0;
}
.wif-card.is-fb .wif-card-img img{
  width:100%;height:100%;object-fit:cover;
  object-position:center 55%;display:block;
}
.wif-card.is-fb{padding:0 38px 38px;}
.wif-card.is-fb::before{border-radius:var(--r-card) var(--r-card) 0 0;}


/* WRITING card: 3rd service card */
.wwd-writing-card{
  background:var(--bg);border-radius:var(--r-card);border:1px solid var(--border);
  overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease);
  grid-column:1/-1; /* full width below the 2 cards */
  display:flex;flex-direction:row;align-items:stretch;
}
.wwd-writing-card:hover{box-shadow:0 10px 30px rgba(47,47,47,.07);transform:translateY(-2px);}
.wwd-writing-card-img{
  flex:0 0 38%;overflow:hidden;
}
.wwd-writing-card-img img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  filter:saturate(0.82) brightness(1.03);transition:filter .4s,transform .5s;
}
.wwd-writing-card:hover .wwd-writing-card-img img{filter:saturate(1.0) brightness(1.06);transform:scale(1.04);}
.wwd-writing-card-body{flex:1;padding:32px 36px;}
.wwd-writing-card-eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.wwd-writing-card-title{font-size:22px;font-weight:700;color:var(--text);line-height:1.3;}
.wwd-writing-card-rule{width:32px;height:1.5px;background:var(--primary);margin:16px 0;}
.wwd-writing-card-desc{font-size:14px;line-height:1.9;color:var(--sub);max-width:36em;}
.wwd-writing-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13px;color:var(--primary);text-decoration:none;transition:gap .2s;}
.wwd-writing-card-link:hover{gap:10px;}


/* WIF Feedback card: clean vertical layout */
.wif-card.is-fb{
  padding:0;
  display:block;
  overflow:hidden;
}
.wif-card.is-fb::before{
  /* top orange border */
  content:'';
  position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--primary);
  border-radius:var(--r-card) var(--r-card) 0 0;
  z-index:1;
}
.wif-card.is-fb .wif-card-img{
  height:240px;
  width:100%;
  overflow:hidden;
  border-radius:var(--r-card) var(--r-card) 0 0;
  /* no negative margin — full width naturally */
  margin:0;
}
.wif-card.is-fb .wif-card-img img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 55%;
  display:block;
  filter:saturate(0.82) brightness(1.03);
  transition:filter .4s,transform .5s;
}
.wif-card.is-fb:hover .wif-card-img img{
  filter:saturate(0.95) brightness(1.06);
  transform:scale(1.04);
}
.wif-card.is-fb .wif-card-label{padding:22px 28px 0;}
.wif-card.is-fb .wif-card-title{padding:10px 28px 0;font-size:19px;}
.wif-card.is-fb .wif-card-body{padding:12px 28px 28px;}


/* ══ WWD ripple: position:absolute, no layout impact ══ */
.wwd-top{
  /* keep original flex but ensure position context */
  position:relative;
}
.wwd-top>div:first-child{
  /* text doesn't cross into ripple area */
  max-width:min(56%,600px);
}
.wwd-ripple-vis{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:clamp(260px,30vw,380px);
  height:clamp(220px,26vw,320px);
  pointer-events:none;
  z-index:0;
}
.wwd-ripple-canvas{
  display:block;
  width:100%;
  height:100%;
}
@media(max-width:800px){.wwd-ripple-vis{display:none !important;}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}


.copyright{
  text-align:center;
  color:rgba(255,255,255,.22);
  font-size:12px;
  letter-spacing:.08em;
  margin-top:clamp(28px,3.5vw,44px);
  padding-top:clamp(16px,2vw,24px);
  border-top:1px solid rgba(255,255,255,.07);
  font-weight:300;
}


/* ════ BUG FIX: wwd-top whitespace ════ */
.section-whatwedo .wwd-top,
.wrap > .wwd-top {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
}
.section-whatwedo .wwd-top > div:first-child {
  max-width: min(56%, 600px);
  flex-shrink: 0;
}
/* Ripple must be absolute — never a flex item */
.section-whatwedo .wwd-ripple-vis,
.wwd-top .wwd-ripple-vis {
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: clamp(260px,30vw,380px) !important;
  height: clamp(220px,26vw,320px) !important;
  flex: none !important;
  display: block !important;
}
@media(max-width:800px){
  .section-whatwedo .wwd-top,
  .wrap > .wwd-top { flex-direction: column !important; }
  .section-whatwedo .wwd-top > div:first-child { max-width: 100%; }
  .section-whatwedo .wwd-ripple-vis,
  .wwd-top .wwd-ripple-vis { display: none !important; }
}


/* ── VISUAL POLISH ── */
/* 1. Unified photo filter — warm, calm, consistent */
.wif-card-img img,.problem-card-img img,.solution-step-img img,
.wwd-card-media img,.mirror-img img,.wwd-writing-card-img img{
  filter:sepia(8%) saturate(0.85) brightness(1.04) contrast(0.93) !important;
  transition:filter .5s ease,transform .5s ease;
}
.wif-card:hover .wif-card-img img,.card:hover .problem-card-img img,
.solution-step:hover .solution-step-img img,.wwd-card:hover .wwd-card-media img{
  filter:sepia(5%) saturate(1.0) brightness(1.07) contrast(0.95) !important;
  transform:scale(1.04);
}
/* 2. Card shadow — minimal, elegant */
.wif-card,.card,.solution-step,.wwd-card{
  box-shadow:0 1px 6px rgba(47,47,47,.04) !important;
}
.wif-card:hover,.card:hover,.solution-step:hover,.wwd-card:hover{
  box-shadow:0 3px 16px rgba(47,47,47,.06) !important;
}
/* 3. Orange hierarchy: Hero strongest, section headings use ink */
.problem-h,.insight-h,.solution-h,.wwd-h,.founder-h,.cta-h{
  color:var(--text); /* not orange — let accent spans do the work */
}
/* 4. PROBLEM section: slight tension via background */
.section-problem{background:rgba(32,24,18,.025) !important;}
/* 5. Hero: larger, more imposing */
.section-hero{min-height:110svh !important;}

.hero-copy{padding-top:clamp(0px,4vh,40px) !important;}


/* Hero lead: sentences break at <br> only, not mid-sentence */
.hero-lead{
  max-width:100% !important;
  word-break:keep-all !important;
  white-space:normal;
  overflow-wrap:normal;
  line-height:1.9;
}


/* CTA section: text must be white (ink background) */
.section-cta .cta-h,
.section-cta .cta-h *:not(span[style]){color:rgba(255,255,255,.92) !important;}
.section-cta .cta-lead{color:rgba(255,255,255,.65) !important;}


/* ── WIF note: richened ── */
.wif-note{
  min-height:280px;
  align-items:center !important;
}
.wif-vis{
  position:relative;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
}
.wif-vis-bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:.09;
  border-radius:50%;
}
.wif-circles{
  position:relative;z-index:1;
}
/* Idle pulse animation on outer Feedback ring */
.wc-pulse{
  animation:wifPulse 3s ease-in-out infinite;
  transform-origin:160px 160px;
}
@keyframes wifPulse{
  0%,100%{r:152;opacity:.20;}
  50%{r:160;opacity:.06;}
}
/* Circle hover glow */
.wif-vis:hover .wc-f{
  stroke:rgba(243,139,42,1) !important;
  filter:drop-shadow(0 0 8px rgba(243,139,42,.45));
}
.wif-vis:hover .wc-c{stroke:rgba(255,255,255,.55) !important;}
.wif-vis:hover .wc-t{stroke:rgba(255,255,255,.7) !important;}
/* Text area: statement size */
.wif-note-text{
  font-size:clamp(16px,1.9vw,22px) !important;
  line-height:1.85 !important;
}


/* wif-note old removed */
  .wif-note-right{flex:none;height:200px;width:100%;}
  .wif-vis{flex:none;width:160px;}
  .wif-circles{width:160px !important;height:160px !important;}
}


/* wif-note css replaced */
  .wif-col-img-fade{
    width:100%;height:60%;top:auto;bottom:0;right:auto;
    background:linear-gradient(to bottom, transparent, rgba(35,24,16,.92));
  }
  .wif-col-vis{flex:none;padding:28px 20px;}
}


/* ════ WIF note: full-bleed (moved outside wrap via JS) ════ */
.wif-note{
  width:100%;
  min-height:62vh;
  display:flex !important;
  flex-direction:row !important;
  align-items:stretch;
  position:relative;
  overflow:hidden;
  padding:0 !important;
  border-radius:0 !important;
  margin:0 !important;
}
/* Section padding removed so note touches bottom edge */
.section-wif{padding-bottom:0 !important;}

/* Background texture */
.wif-note-bg{
  position:absolute;inset:0;z-index:0;
  background-size:180%;
  background-position:60% 18%;
  background-repeat:no-repeat;
}
.wif-note-col{position:relative;z-index:1;min-width:0;}

/* LEFT col: image — flush to all 4 edges, no padding */
.wif-col-img{
  flex:0 0 28%;
  position:relative;
  overflow:hidden;
  padding:0;
  margin:0;
}
.wif-col-img-el{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 20%;
  display:block;
  filter:sepia(10%) saturate(0.85) brightness(0.9);
  transition:transform .7s ease,filter .5s ease;
}
.wif-note:hover .wif-col-img-el{
  transform:scale(1.03);
  filter:sepia(5%) saturate(0.95) brightness(0.96);
}
.wif-col-img-fade{
  position:absolute;top:0;right:0;
  width:55%;height:100%;
  background:linear-gradient(to right,transparent 0%,rgba(32,20,12,.88) 100%);
  pointer-events:none;
}

/* CENTER col: text — wider, less padding */
.wif-col-text{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(32px,5vw,60px) clamp(16px,2.2vw,28px);
}
.wif-col-text .wif-note-text{
  font-size:clamp(16px,1.65vw,20px) !important;
  line-height:2.0 !important;
  color:rgba(255,255,255,.9) !important;
  word-break:normal !important;
  white-space:normal !important;
  max-width:none !important;
}
.wif-col-text .hl{color:rgba(243,164,80,1);}
.wif-tagline{
  margin-top:clamp(18px,2.5vw,28px);
  font-size:clamp(14px,1.4vw,18px);
  color:rgba(243,164,80,.85);
  letter-spacing:.08em;
  font-weight:500;
}

/* RIGHT col: circles — larger */
.wif-col-vis{
  flex:0 0 clamp(280px,28%,360px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(20px,3vw,36px);
}
.wif-col-vis .wif-vis{
  width:clamp(240px,22vw,310px);
  height:clamp(240px,22vw,310px);
}
.wif-col-vis .wif-circles{width:100% !important;height:100% !important;}
.wif-col-vis:hover .wc-f{stroke:rgba(243,139,42,1)!important;filter:drop-shadow(0 0 12px rgba(243,139,42,.5));transition:all .3s;}
.wif-col-vis:hover .wc-c{stroke:rgba(255,255,255,.65)!important;}
.wif-col-vis:hover .wc-t{stroke:rgba(255,255,255,.85)!important;}

@media(max-width:860px){
  .wif-note{flex-direction:column !important;min-height:auto;}
  .wif-col-img{flex:none;height:260px;width:100%;}
  .wif-col-img-fade{width:100%;height:50%;top:auto;bottom:0;right:auto;
    background:linear-gradient(to bottom,transparent,rgba(32,20,12,.9));}
  .wif-col-text{padding:28px 24px;}
  .wif-col-vis{flex:none;padding:20px;}
  .wif-col-vis .wif-vis{width:200px;height:200px;}
}


/* WIF note: bottom spacing + ensure full edge alignment */
.wif-note{
  margin-bottom:clamp(48px,7vw,96px) !important;
  border-radius:0 !important;
}
/* Image col: ensure truly flush — override any inherited radius */
.wif-col-img{
  border-radius:0 !important;
}
.wif-col-img .wif-col-img-el{
  border-radius:0 !important;
}



/* ═══════════════════════════════════════════════════
   FINAL PATCH — v13 revision requests
═══════════════════════════════════════════════════ */

/* 1. Hero: fixed font-size on PC (not fluid vw), prevent "一滴の" from breaking */
@media(min-width:1024px){
  .hero-h{font-size:64px !important;}
}

/* 2. Feedback card: two-column layout (text + circle diagram) */
.wif-card.is-fb .wif-card-content-row{
  display:flex;
  align-items:center;
  gap:clamp(20px,3.5vw,40px);
  padding:22px 28px 28px;
}
.wif-card.is-fb .wif-card-content-row .wif-card-text{
  flex:1;min-width:0;
}
.wif-card.is-fb .wif-card-content-row .wif-card-label{padding:0;margin-bottom:12px;}
.wif-card.is-fb .wif-card-content-row .wif-card-title{padding:0;margin-bottom:10px;font-size:19px;}
.wif-card.is-fb .wif-card-content-row .wif-card-body{padding:0;}
.wif-card.is-fb .wif-card-circles{
  flex:0 0 clamp(230px,27vw,300px);
  width:clamp(230px,27vw,300px);
}
.wif-card.is-fb .wif-card-circles svg{width:100%;height:auto;display:block;}
@media(max-width:820px){
  .wif-card.is-fb .wif-card-content-row{flex-direction:column;}
  .wif-card.is-fb .wif-card-content-row .wif-card-circles{width:210px;flex:none;margin-top:22px;}
  .wif-card.is-fb .wif-card-content-row .wif-card-body{max-width:none;}
}

/* 3. WIF note: quote text — larger, and remove now-empty circle column space */
.wif-col-text .wif-note-text{
  font-size:clamp(19px,2.3vw,28px) !important;
  line-height:1.85 !important;
}
.wif-col-text{flex:1;}

/* 4. Insight / Solution / WWD / Founder rule-dash consistency */
.solution-h + .rule-dash,
.wwd-h + .rule-dash,
.founder-h + .rule-dash{
  margin:20px 0 26px;
}

/* 5. Stamp ("NOT ONLY") — fly in/out from the side, layered center of the column */
.wif-card:not(.is-fb) .wif-not-only{
  grid-column:2;grid-row:1/-1;
  position:relative;top:auto;left:auto;
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;
  padding:0;margin:0;background:none;box-shadow:none;border-radius:0;
  pointer-events:none;
  transform:translateX(70px) scale(.72) rotate(-18deg);
  opacity:0;
  transition:transform .55s cubic-bezier(.34,1.56,.64,1), opacity .35s ease;
  z-index:50;
}
.wif-card:not(.is-fb) .wif-not-only::before{display:none;}
.wif-card:not(.is-fb) .wif-not-only img{
  width:130px;height:130px;object-fit:contain;mix-blend-mode:multiply;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.22));
  transform:none;
}
.wif-card:not(.is-fb):hover .wif-not-only,
.wif-card:not(.is-fb).active .wif-not-only{
  transform:translateX(0) scale(1) rotate(-8deg);
  opacity:1;
}

/* 6. Cursor: arrow, not pointer/hand, on non-link images */
.section-problem .card{cursor:default;}
.solution-step{cursor:default;}

/* 7. Problem cards: compact heading shown by default; on hover, fades into the
   original unified title+description panel (same panel used in the base design) */
.problem-card-static-label{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px 24px 14px;
  font-size:15.5px;font-weight:700;color:#fff;
  background:linear-gradient(to top, rgba(30,24,20,.92) 55%, transparent 100%);
  z-index:1;
  pointer-events:none;
  opacity:1;
  transition:opacity .3s ease;
}
.section-problem .card:hover .problem-card-static-label,
.section-problem .card.active .problem-card-static-label{
  opacity:0;
}
.section-problem .problem-card-body{
  transform:translateY(100%) !important;
}
.section-problem .card:hover .problem-card-body,
.section-problem .card.active .problem-card-body{
  transform:translateY(0) !important;
}

/* 8. Company card: hover animation + logo appearing in sync */
.company-card{
  position:relative;
  transition:box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}
.company-card:hover{
  border-color:rgba(243,139,42,.35);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  transform:translateY(-3px);
}
.company-card-logo{
  position:absolute;
  top:22px;right:22px;
  width:46px;height:46px;
  opacity:1;
  transform:scale(1);
  pointer-events:none;
}


/* 9. Insight image: crop off the top 1/4 (image was too tall) */
.mirror-img{
  aspect-ratio:1020/1350;
}
.mirror-img img{
  position:absolute;
  left:0;bottom:0;
  width:100%;height:auto;
}


/* ═══════════════════════════════════════════════════
   Contact / Privacy Policy modals
═══════════════════════════════════════════════════ */
.modal-overlay{
  position:fixed;inset:0;z-index:5000;
  background:rgba(20,16,12,.55);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.modal-overlay.open{opacity:1;visibility:visible;}
.modal-box{
  position:relative;
  background:var(--bg,#F8F5F0);
  border-radius:var(--r-card);
  padding:clamp(28px,4vw,44px);
  width:100%;max-width:560px;
  max-height:88vh;overflow-y:auto;
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  transform:translateY(16px) scale(.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.modal-overlay.open .modal-box{transform:translateY(0) scale(1);}
.modal-box-scroll{max-width:640px;}
.modal-close{
  position:absolute;top:16px;right:16px;
  width:36px;height:36px;border-radius:50%;
  border:1px solid var(--border);background:#fff;
  color:var(--sub);font-size:20px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s,border-color .2s;
}
.modal-close:hover{background:rgba(243,139,42,.08);border-color:var(--primary);color:var(--primary);}
.modal-title{font-size:clamp(19px,2.4vw,24px);font-weight:700;color:var(--text);margin-bottom:24px;padding-right:36px;}

.cf-field{margin-bottom:18px;}
.cf-field label{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:8px;}
.cf-tag{font-size:10.5px;font-weight:500;letter-spacing:.04em;padding:2px 8px;border-radius:999px;}
.cf-tag.cf-req{background:rgba(243,139,42,.12);color:var(--primary-h);}
.cf-tag.cf-opt{background:rgba(120,112,104,.12);color:var(--sub);}
.cf-field input,.cf-field textarea{
  width:100%;font-family:var(--font);font-size:14px;color:var(--text);
  background:#fff;border:1px solid var(--border);border-radius:10px;
  padding:11px 14px;transition:border-color .2s,box-shadow .2s;
}
.cf-field input:focus,.cf-field textarea:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(243,139,42,.12);
}
.cf-field textarea{resize:vertical;line-height:1.7;}
.cf-field-error{display:none;color:#C0392B;font-size:12px;line-height:1.6;margin-top:6px;}
.cf-field-error.show{display:block;}
.cf-field.invalid input,.cf-field.invalid textarea{
  border-color:#C0392B;box-shadow:0 0 0 3px rgba(192,57,43,.08);
}
.cf-error{display:none;color:#C0392B;font-size:13px;line-height:1.7;margin:-4px 0 16px;padding:10px 14px;background:rgba(192,57,43,.07);border-radius:10px;}
.cf-error.show{display:block;}
.cf-privacy-row{margin:6px 0 22px;}
.cf-link-btn{
  background:none;border:none;padding:0;
  font-family:var(--font);font-size:13px;color:var(--primary);
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.cf-link-btn:hover{color:var(--primary-h);}
.cf-submit{width:100%;font-size:14.5px;padding:15px 20px;}

.cf-confirm{margin-bottom:8px;}
.cf-confirm-row{padding:14px 0;border-bottom:1px solid var(--border);}
.cf-confirm-row:last-child{border-bottom:none;}
.cf-confirm-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.cf-confirm-value{font-size:14.5px;color:var(--text);line-height:1.8;white-space:pre-wrap;word-break:break-word;}
.cf-confirm-message{font-size:13.5px;color:var(--sub);}
.cf-btn-row{display:flex;gap:12px;margin-top:24px;}
.cf-btn-secondary{
  flex:1;font-family:var(--font);font-size:14px;font-weight:600;color:var(--text);
  background:#fff;border:1px solid var(--border);border-radius:var(--r-btn);
  padding:14px 20px;cursor:pointer;transition:border-color .2s,background .2s;
}
.cf-btn-secondary:hover{border-color:var(--muted);background:rgba(0,0,0,.02);}
.cf-btn-row .btn-pill{flex:1;}

.cf-complete-text{font-size:14.5px;line-height:2.1;color:var(--sub);margin-bottom:28px;}
#cfStep3{text-align:center;}
#cfStep3 .btn-pill{padding:13px 36px;}

.pp-content h4{font-size:14.5px;font-weight:700;color:var(--text);margin:26px 0 10px;}
.pp-content h4:first-child{margin-top:0;}
.pp-content p{font-size:13.5px;line-height:1.95;color:var(--sub);margin-bottom:10px;}
.pp-content ul{margin:0 0 12px 20px;padding:0;}
.pp-content li{font-size:13.5px;line-height:1.9;color:var(--sub);margin-bottom:4px;}

@media(max-width:560px){
  .modal-box{padding:26px 20px;max-height:92vh;}
  .cf-btn-row{flex-direction:column;}
}


/* ═══════════════════════════════════════════════════
   RESPONSIVE PASS
═══════════════════════════════════════════════════ */

/* Mobile hamburger menu */
.hdr-burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0;
  flex-shrink:0;
}
.hdr-burger span{
  display:block;width:100%;height:2px;background:var(--text);border-radius:2px;
  transition:transform .3s ease,opacity .3s ease;
}
.hdr-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hdr-burger.open span:nth-child(2){opacity:0;}
.hdr-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{
  position:fixed;top:64px;left:0;right:0;z-index:895;
  background:rgba(248,245,240,.98);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  max-height:0;overflow:hidden;
  transition:max-height .4s var(--ease);
}
.mobile-nav.open{max-height:440px;}
.mobile-nav-list{list-style:none;padding:14px var(--ph) 4px;display:flex;flex-direction:column;gap:2px;}
.mobile-nav-list a{
  display:block;padding:13px 2px;font-size:15px;color:var(--text);text-decoration:none;
  border-bottom:1px solid var(--border);
}
.mobile-nav-cta{display:block;width:calc(100% - var(--ph) * 2);margin:16px var(--ph) 22px;}

@media(max-width:800px){
  .hdr-nav{display:none;}
  .hdr-cta{display:none;}
  .hdr-burger{display:flex;}
}
@media(min-width:801px){.mobile-nav{display:none;}}

/* Stamp badge: on the mobile single-column WIF card grid, keep it over the
   text area (below the image), not stretched across the photo */
@media(max-width:820px){
  .wif-card:not(.is-fb) .wif-not-only{
    grid-column:1;
    grid-row:2/-1;
  }
}

/* Small-phone fine tuning */
@media(max-width:480px){
  .modal-title{font-size:18px;}
  .company-card-logo{width:38px;height:38px;top:18px;right:18px;}
  .wif-card.is-fb .wif-card-circles{width:190px;flex-basis:190px;}
}


/* ═══════════════════════════════════════════════════
   SP FIXES (iPhone 15 review pass)
═══════════════════════════════════════════════════ */

/* 1. Opening animation: was fixed 1040x660px regardless of viewport,
   causing it to render far outside the visible screen on mobile. */
@media(max-width:640px){
  #stage{
    width:90vw;
    max-width:420px;
    height:66vh;
    max-height:540px;
  }
  .sheet-content{padding:40px 22px 28px;}
  .fv1-outer{padding:0 14px;}
  .fv1-type-col{font-size:19px;letter-spacing:.03em;}
}
@media(max-width:380px){
  .fv1-type-col{font-size:17px;}
}

/* 2. Hero heading: only prevent "一滴のフィードバック" from breaking on
   screens wide enough to fit it on one line; on narrow phones let it wrap
   normally so characters are never clipped off-screen. */
.hero-h .hero-nowrap{white-space:normal;}
@media(min-width:640px){
  .hero-h .hero-nowrap{white-space:nowrap;}
}

/* 3. Hero background texture: swap to a taller, mobile-cropped variant so
   "cover" doesn't blow the image up and chop off the left/right content. */
@media(max-width:640px){
  .section-hero::before{
    background-image:url('images/hero-bg-mobile.png');
  }
}

/* 4. WIF Teaching/Coaching cards: simplified, explicit mobile layout
   (previous grid-based override was fragile and hid the photos on iOS). */
@media(max-width:820px){
  .wif-card:not(.is-fb){
    display:block;
  }
  .wif-card:not(.is-fb) .wif-card-img{
    display:block;
    width:100%;
    height:180px;
    grid-column:unset;
    grid-row:unset;
    border-radius:var(--r-card) var(--r-card) 0 0;
    overflow:hidden;
  }
  .wif-card:not(.is-fb) .wif-card-img img{
    width:100%;height:100%;
    object-fit:cover;
    object-position:center 55%;
    display:block;
  }
  .wif-card:not(.is-fb) .wif-card-label{
    grid-column:unset;grid-row:unset;
    padding:18px 20px 0;
  }
  .wif-card:not(.is-fb) .wif-card-title{
    grid-column:unset;grid-row:unset;
    padding:8px 20px 0;
  }
  .wif-card:not(.is-fb) .wif-card-body{
    grid-column:unset;grid-row:unset;
    padding:8px 20px 20px;
    max-height:none!important;opacity:1!important;margin-top:10px!important;
  }
  .wif-card:not(.is-fb) .wif-not-only{
    position:absolute;
    inset:180px 0 0 0;
    grid-column:unset;grid-row:unset;
    display:flex;align-items:center;justify-content:center;
  }
}

/* 5. Feedback definition circle diagram: keep it large on mobile so the
   soft ink-wash labels stay legible instead of shrinking into mush. */
@media(max-width:820px){
  .wif-card.is-fb .wif-card-circles{
    width:min(78vw,320px);
    flex-basis:min(78vw,320px);
  }
}
@media(max-width:480px){
  .wif-card.is-fb .wif-card-circles{
    width:min(82vw,300px);
    flex-basis:min(82vw,300px);
  }
}

/* 6. ELB product image: show the full screenshot rather than cropping
   its left/right edges away. */
@media(max-width:720px){
  .wwd-product-primary .wwd-product-media{
    background:var(--ink);
    display:flex;align-items:center;justify-content:center;
  }
  .wwd-product-primary .wwd-product-media img{
    height:auto;
    max-height:240px;
    object-fit:contain;
  }
}

/* 7. Footer CTA heading: keep on one line on wide desktop screens without
   changing its font size. */
@media(min-width:640px){
  .cta-h{white-space:nowrap;}
}


/* ═══════════════════════════════════════════════════
   SP FIXES ROUND 2 (per-screenshot review)
═══════════════════════════════════════════════════ */

/* SP-only line-break utility (hidden on PC/tablet, shown on narrow phones) */
.br-sp{display:none;}
@media(max-width:639px){
  .br-sp{display:inline;}
}

/* Hero lead paragraph: was forced to keep each manual line unbroken, which
   made long lines overflow off the right edge on narrow phones. Allow normal
   wrapping on SP; PC keeps the original "break only at <br>" behaviour. */
@media(max-width:639px){
  .hero-lead{
    word-break:normal !important;
    overflow-wrap:break-word !important;
    white-space:normal !important;
  }
}

/* WIF note portrait photo: show at its natural (tall) aspect ratio on
   mobile instead of forcing it into a short cropped strip. */
@media(max-width:860px){
  .wif-col-img{height:auto;}
  .wif-col-img-el{height:auto;object-fit:contain;}
}

/* ELB product image: fix bottom-right corner staying square on mobile.
   A more specific desktop rule (#wwd-product-row .wwd-product-media) was
   still rounding only the left corners even after the layout stacks. */
@media(max-width:720px){
  #wwd-product-row .wwd-product-media{
    border-radius:var(--r-card) var(--r-card) 0 0;
  }
}


/* Hero heading: slightly smaller on narrow phones so "フィードバック"
   never has to break mid-word once "一滴の" wraps to its own line. */
@media(max-width:639px){
  .hero-h{font-size:38px;}
}
@media(max-width:380px){
  .hero-h{font-size:34px;}
}


/* Insight heading: this heading's column is only ~half the page width, so
   at the largest font-size the two long clauses genuinely can't each fit on
   one line — the shared text-wrap:balance/word-break:auto-phrase rule kept
   choosing bad mid-word split points to compensate. Break it manually at
   clean phrase boundaries instead (in the HTML) and stop the browser from
   auto-wrapping elsewhere. */
.insight-h{
  text-wrap:wrap;
  word-break:keep-all;
  overflow-wrap:break-word;
}


/* ═══════════════════════════════════════════════════
   SP FIXES ROUND 3 (tap-to-open cards on iPhone)
═══════════════════════════════════════════════════ */

/* 1. NOT ONLY stamp was clipped at the bottom on mobile: the desktop rule
   `.wif-card:not(.is-fb){overflow:hidden}` was never undone for the mobile
   single-column layout, so anything extending past the card's own height
   (like the centered stamp badge) got cut off. */
@media(max-width:820px){
  .wif-card:not(.is-fb){overflow:visible;}
}

/* 2. iOS Safari "sticky hover" bug: tapping a card can leave it stuck in a
   simulated :hover state that a second tap can't clear, even though the JS
   .active class toggles correctly. On touch-only devices, disable the
   :hover-triggered half of these rules entirely and let .active (which the
   click handler toggles on/off) be the sole source of truth. */
@media (hover: none){
  .section-problem .card:hover:not(.active) .problem-card-body{
    transform:translateY(100%) !important;
  }
  .section-problem .card:hover:not(.active) .problem-card-static-label{
    opacity:1 !important;
  }
  .section-problem .card:hover:not(.active) .problem-card-img img{
    transform:none !important;
    filter:saturate(0.82) brightness(1.0) contrast(0.95) !important;
  }
  .wif-card:not(.is-fb):hover:not(.active) .wif-not-only{
    transform:translateX(70px) scale(.72) rotate(-18deg) !important;
    opacity:0 !important;
  }
}


/* ═══════════════════════════════════════════════════
   Standalone policy pages (privacy-policy.html / security-policy.html)
═══════════════════════════════════════════════════ */
.policy-hdr{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--ph);
  background:rgba(248,245,240,.92);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.policy-hdr .hdr-logo{display:flex;align-items:center;}
.policy-back{
  font-size:13.5px;color:var(--sub);text-decoration:none;
  display:flex;align-items:center;gap:6px;
  transition:color .2s;
}
.policy-back:hover{color:var(--primary);}
.policy-page{
  max-width:760px;margin:0 auto;
  padding:clamp(48px,7vw,88px) var(--ph) clamp(60px,8vw,100px);
}
.policy-page-inner{width:100%;}
.policy-title{
  font-size:clamp(26px,3.4vw,38px);font-weight:700;color:var(--text);
  margin-bottom:clamp(32px,5vw,48px);
  padding-bottom:20px;border-bottom:1px solid var(--border);
}
.policy-page .pp-content h4{font-size:15.5px;}
.policy-page .pp-content p,
.policy-page .pp-content li{font-size:14.5px;}
.policy-back-bottom{
  display:inline-flex;margin-top:48px;
  padding-top:24px;border-top:1px solid var(--border);
  width:100%;
}
.policy-footer{
  padding:28px var(--ph) 40px;text-align:center;
  border-top:1px solid var(--border);
}
.policy-footer .copyright{font-size:12px;color:var(--muted);}
