/*
 * DAISEN 原点ページ スタイルシート
 * daisen-origin/daisen-origin.css
 * Version: 1.0.0
 *
 * カラーパレット：大山の自然から導いた有機的ダークカラーシステム
 * こげ茶（#2C1810）× 森林の緑（#1A3025）× 紅葉の赤（#8B3020）× ネイビー（#0D1B2A）
 * DAISENのブランドカラー（ゴールド・ブルー）で統合
 */

/* ===== リセット ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* ===== CSS 変数 ===== */
:root{
  /* 大山カラー（自然系ダーク） */
  --ori-deep:    #100E0B;
  --ori-kogecha: #2C1810;
  --ori-forest:  #1A3025;
  --ori-navy:    #0D1B2A;
  --ori-snow:    #F4F0E8;
  --ori-ash:     #B0A898;
  --ori-stone:   #7A7268;
  --ori-gold:    #B8944A;
  --ori-gold-l:  #D4AE6A;
  --ori-moss:    #5A7A4A;
  --ori-moss-l:  #7A9E66;
  --ori-momiji:  #8B3020;
  --ori-momiji-l:#C04828;
  --ori-sky:     #3A5A7A;
  --ori-rule:    rgba(184,148,74,0.18);

  /* DAISENブランド（トップ統一） */
  --black:  #070710;
  --gold:   #ffd700;
  --blue:   #00c8e6;
  --font-d: 'Montserrat',sans-serif;
  --font-b: 'Noto Sans JP',sans-serif;
  --font-s: 'Noto Serif JP',serif;
  --ease:   cubic-bezier(0.16,1,0.3,1);

  /* 四季カラー */
  --spring: #5A7A4A;
  --summer: #3A7A50;
  --autumn: #8B3020;
  --winter: #3A5A7A;
}

/* ===== ベース ===== */
body.daisen-origin-page{
  font-family:var(--font-b);
  background:var(--ori-deep);
  color:var(--ori-snow);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* グレイン質感 */
body.daisen-origin-page::after{
  content:'';position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none;z-index:9998;opacity:.4;
}

/* ===========================
   HEADER
   =========================== */
.do-header{
  position:fixed;top:0;left:0;right:0;z-index:9999;
  height:68px;
  background:rgba(16,14,11,.88);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(184,148,74,.12);
  transition:background .4s,box-shadow .4s;
}
.do-header.scrolled{background:rgba(16,14,11,.98);box-shadow:0 4px 32px rgba(0,0,0,.7)}
.do-header__inner{
  max-width:1400px;margin:0 auto;padding:0 32px;
  height:100%;display:flex;align-items:center;gap:16px;
}
.do-logo{
  display:flex;align-items:center;gap:12px;color:var(--ori-snow);
  font-family:var(--font-d);font-weight:900;font-size:1.15rem;
  letter-spacing:.14em;flex-shrink:0;
}
.do-logo__mark{width:36px;height:36px;object-fit:contain}
.do-logo__text{font-family:var(--font-d);font-weight:900;letter-spacing:.16em}

.do-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.do-nav__item{
  font-family:var(--font-d);font-size:.72rem;font-weight:600;
  letter-spacing:.05em;color:rgba(210,200,185,.65);
  padding:6px 10px;border-radius:6px;
  transition:color .3s,background .3s;white-space:nowrap;
}
.do-nav__item:hover{color:var(--ori-snow);background:rgba(184,148,74,.08)}

.do-menu-toggle{
  display:none;flex-direction:column;justify-content:center;
  gap:5px;padding:10px;
  border:1.5px solid rgba(210,200,185,.2);border-radius:8px;
  margin-left:auto;
}
.do-menu-toggle span{
  display:block;width:22px;height:2px;
  background:rgba(210,200,185,.8);border-radius:2px;
  transition:transform .3s,opacity .3s;
}
.do-menu-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.do-menu-toggle.is-active span:nth-child(2){opacity:0}
.do-menu-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===========================
   HERO
   =========================== */
.do-hero{
  position:relative;min-height:100vh;
  display:flex;align-items:flex-end;
  padding:0 clamp(2rem,8vw,8rem) clamp(4rem,10vh,7rem);
  overflow:hidden;
}

/* 山背景 */
.do-hero__mountain{position:absolute;inset:0;z-index:0}
.do-hero__mountain-photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center 40%;
  background-repeat:no-repeat;
}
.do-hero__mountain-svg{position:absolute;inset:0;width:100%;height:100%}

.do-hero__overlay{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(
    to top,
    rgba(16,14,11,.98) 0%,
    rgba(16,14,11,.75) 35%,
    rgba(16,14,11,.3) 70%,
    transparent 100%
  );
}

/* 星 */
.do-hero__stars{position:absolute;inset:0;z-index:1;pointer-events:none}
.do-star{
  position:absolute;border-radius:50%;
  background:var(--ori-ash);
  animation:doTwinkle var(--d,3s) ease-in-out infinite;
  animation-delay:var(--dd,0s);
}
@keyframes doTwinkle{
  0%,100%{opacity:.15;transform:scale(1)}
  50%{opacity:.8;transform:scale(1.3)}
}

/* コンテンツ */
.do-hero__inner{
  position:relative;z-index:10;max-width:700px;
  animation:doRiseUp 1.6s .6s var(--ease) both;
}
@keyframes doRiseUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:none}
}

.do-hero__label{
  font-family:var(--font-d);font-size:.62rem;font-weight:700;
  letter-spacing:.5em;color:var(--ori-gold);
  margin-bottom:1.5rem;
  animation:doFadeIn .8s .4s ease both;
}
@keyframes doFadeIn{from{opacity:0}to{opacity:1}}

.do-hero__title{display:flex;flex-direction:column;gap:.4rem;margin-bottom:2rem}
.do-hero__title-jp{
  font-family:var(--font-s);
  font-size:clamp(2.8rem,7vw,5.5rem);
  font-weight:700;line-height:1.15;
  letter-spacing:.06em;color:var(--ori-snow);
  text-shadow:0 2px 40px rgba(0,0,0,.5);
}
.do-hero__title-en{
  font-family:var(--font-d);font-style:italic;
  font-size:clamp(1rem,2.2vw,1.5rem);font-weight:300;
  letter-spacing:.15em;color:rgba(210,200,185,.5);
}

.do-hero__ai-note{
  display:inline-flex;align-items:center;
  padding:.7rem 1.4rem;
  border:1px solid var(--ori-rule);
  background:rgba(184,148,74,.05);
  margin-bottom:2rem;
}
.do-hero__ai-text{
  font-family:var(--font-b);font-size:.85rem;font-weight:300;
  color:var(--ori-ash);letter-spacing:.06em;line-height:1.9;
}
.do-hero__ai-text em{color:var(--ori-gold-l);font-style:normal;font-weight:500}

.do-hero__catchcopy{
  font-family:var(--font-s);
  font-size:clamp(.98rem,2vw,1.25rem);font-weight:400;
  color:rgba(220,212,196,.75);letter-spacing:.08em;line-height:2.2;
}

.do-hero__scroll{
  position:absolute;bottom:2.5rem;right:clamp(2rem,6vw,6rem);
  display:flex;flex-direction:column;align-items:center;gap:.8rem;z-index:10;
}
.do-hero__scroll span{
  font-family:var(--font-d);font-size:.52rem;letter-spacing:.4em;
  color:rgba(180,168,150,.45);writing-mode:vertical-rl;
}
.do-hero__scroll-line{
  width:1px;height:48px;
  background:linear-gradient(to bottom,var(--ori-gold),transparent);
  animation:doScrollLine 2s ease-in-out infinite;
}
@keyframes doScrollLine{
  0%{transform:scaleY(0);transform-origin:top;opacity:1}
  50%{transform:scaleY(1);transform-origin:top;opacity:1}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom;opacity:0}
}

/* ===========================
   SHARED SECTION
   =========================== */
.do-section{padding:clamp(5rem,12vh,9rem) 0;position:relative}
.do-inner{max-width:960px;margin:0 auto;padding:0 clamp(1.5rem,6vw,3rem)}

.do-sec-tag{
  font-family:var(--font-d);font-size:.58rem;font-weight:700;
  letter-spacing:.5em;color:var(--ori-gold);
  display:flex;align-items:center;gap:1rem;margin-bottom:2rem;
}
.do-sec-tag::after{
  content:'';flex:1;max-width:50px;height:1px;
  background:var(--ori-rule);
}
.do-sec-title{
  font-family:var(--font-s);
  font-size:clamp(1.8rem,4vw,3rem);
  font-weight:700;line-height:1.4;
  color:var(--ori-snow);margin-bottom:.8rem;letter-spacing:.04em;
}
.do-sec-lead{
  font-size:clamp(.93rem,1.7vw,1.05rem);
  color:rgba(220,210,195,.65);font-weight:300;
  line-height:2.1;margin-bottom:3rem;
}

/* ===========================
   01: DAISEN SECTION
   =========================== */
.do-daisen{
  background:linear-gradient(180deg,var(--ori-deep) 0%,#0E1409 60%,var(--ori-deep) 100%);
}

/* 読み表示 */
.do-reading{
  display:flex;align-items:baseline;gap:2rem;flex-wrap:wrap;
  margin-bottom:3rem;padding-bottom:2rem;
  border-bottom:1px solid var(--ori-rule);
}
.do-reading__kanji{
  font-family:var(--font-s);
  font-size:clamp(3rem,8vw,6rem);
  font-weight:700;color:var(--ori-snow);letter-spacing:.05em;line-height:1;
}
.do-reading__detail{display:flex;flex-direction:column;gap:.4rem}
.do-reading__romaji{
  font-family:var(--font-d);
  font-size:clamp(1.5rem,4vw,2.8rem);
  font-weight:700;letter-spacing:.2em;
}
.do-reading__d,.do-reading__sen{color:rgba(210,200,185,.55)}
.do-reading__ai{
  color:var(--ori-gold-l);
  text-shadow:0 0 20px rgba(212,174,106,.35);
  font-weight:900;
}
.do-reading__note{
  font-size:.82rem;color:var(--ori-stone);
  letter-spacing:.1em;font-style:italic;
}

/* 本文 */
.do-destiny{display:flex;flex-direction:column;gap:1.4rem;margin-bottom:3rem}
.do-destiny p{
  font-family:var(--font-s);
  font-size:clamp(.95rem,1.8vw,1.08rem);
  color:rgba(220,212,196,.8);font-weight:300;
  line-height:2.1;letter-spacing:.04em;
}
.do-destiny p strong{color:var(--ori-snow);font-weight:500}
.do-gold{color:var(--ori-gold-l);font-weight:500}

/* 統計 */
.do-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--ori-rule);
  border:1px solid var(--ori-rule);border-radius:6px;overflow:hidden;
}
.do-stat{
  background:rgba(14,18,9,.9);
  padding:1.8rem 1.5rem;
  display:flex;flex-direction:column;gap:.4rem;
  transition:background .3s;
}
.do-stat:hover{background:rgba(44,61,40,.2)}
.do-stat__label{
  font-family:var(--font-d);font-size:.56rem;font-weight:700;
  letter-spacing:.4em;color:var(--ori-stone);
}
.do-stat__value{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(1.4rem,3.5vw,2rem);
  font-weight:500;color:var(--ori-gold-l);line-height:1.2;
}
.do-stat__value small{font-size:.6em;letter-spacing:.05em}
.do-stat__desc{font-size:.75rem;color:var(--ori-ash);font-weight:300;line-height:1.6}

/* ===========================
   02: SEASONS
   =========================== */
.do-seasons-section{
  background:var(--ori-deep);
}
.do-seasons{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;
}
.do-season{
  position:relative;min-height:320px;
  display:flex;align-items:flex-end;
  background-size:cover;background-position:center;
  border-radius:8px;overflow:hidden;
  border:1px solid rgba(255,255,255,.04);
  cursor:default;
  transition:transform .5s var(--ease);
}
.do-season:hover{transform:translateY(-4px)}
.do-season__overlay{
  position:absolute;inset:0;
  transition:opacity .4s;
}
.do-season--spring .do-season__overlay{background:linear-gradient(to top,rgba(12,20,8,.92) 0%,rgba(28,52,20,.3) 100%)}
.do-season--summer .do-season__overlay{background:linear-gradient(to top,rgba(8,18,10,.92) 0%,rgba(20,44,26,.3) 100%)}
.do-season--autumn .do-season__overlay{background:linear-gradient(to top,rgba(20,8,5,.92) 0%,rgba(54,18,10,.3) 100%)}
.do-season--winter .do-season__overlay{background:linear-gradient(to top,rgba(6,12,20,.92) 0%,rgba(18,30,48,.3) 100%)}

/* 写真なし時のカラーバック */
.do-season--spring{background-color:#0E1A09}
.do-season--summer{background-color:#081210}
.do-season--autumn{background-color:#180806}
.do-season--winter{background-color:#060C14}

.do-season__content{
  position:relative;z-index:2;
  padding:2rem 1.8rem;width:100%;
}
.do-season__kanji{
  font-family:var(--font-s);
  font-size:3.2rem;font-weight:700;line-height:1;
  display:block;margin-bottom:.3rem;
}
.do-season--spring .do-season__kanji{color:var(--ori-moss-l)}
.do-season--summer .do-season__kanji{color:#4A9A60}
.do-season--autumn .do-season__kanji{color:var(--ori-momiji-l)}
.do-season--winter .do-season__kanji{color:#8AAAC0}

.do-season__en{
  font-family:var(--font-d);font-size:.58rem;font-weight:700;
  letter-spacing:.4em;display:block;margin-bottom:1rem;
}
.do-season--spring .do-season__en{color:var(--ori-moss)}
.do-season--summer .do-season__en{color:#3A7A50}
.do-season--autumn .do-season__en{color:var(--ori-momiji)}
.do-season--winter .do-season__en{color:var(--ori-sky)}

.do-season__desc{
  font-family:var(--font-b);font-size:.88rem;
  color:rgba(220,212,196,.8);font-weight:300;
  line-height:1.85;margin-bottom:1rem;letter-spacing:.03em;
}
.do-season__keyword{
  display:inline-block;
  font-family:var(--font-d);font-size:.68rem;letter-spacing:.15em;
  padding:.3rem .9rem;border:1px solid;
}
.do-season--spring .do-season__keyword{border-color:rgba(90,122,74,.5);color:var(--ori-moss-l)}
.do-season--summer .do-season__keyword{border-color:rgba(58,122,80,.5);color:#5AAA78}
.do-season--autumn .do-season__keyword{border-color:rgba(139,48,32,.5);color:var(--ori-momiji-l)}
.do-season--winter .do-season__keyword{border-color:rgba(58,90,122,.5);color:#8AAAC0}

/* ===========================
   03: FAITH
   =========================== */
.do-faith-section{
  background:linear-gradient(180deg,var(--ori-deep) 0%,#08100A 50%,var(--ori-deep) 100%);
}
.do-faith-layout{
  display:grid;grid-template-columns:1fr auto;
  gap:3rem;align-items:start;
}
.do-faith-image{
  width:280px;flex-shrink:0;
  border-radius:8px;overflow:hidden;
  border:1px solid rgba(184,148,74,.15);
}
.do-faith-image img{width:100%;height:360px;object-fit:cover}

.do-faith-timeline{
  position:relative;padding-left:2rem;
  border-left:1px solid linear-gradient(to bottom,var(--ori-gold),transparent);
}
.do-faith-timeline::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:1px;
  background:linear-gradient(to bottom,var(--ori-gold),transparent);
}
.do-faith-item{position:relative;padding:0 0 2.8rem 2rem}
.do-faith-item:last-child{padding-bottom:0}
.do-faith-item::before{
  content:'';position:absolute;left:-.45rem;top:.4rem;
  width:8px;height:8px;border-radius:50%;
  border:1px solid var(--ori-gold);background:var(--ori-deep);
}
.do-faith-era{
  font-family:var(--font-d);font-size:.6rem;font-weight:700;
  letter-spacing:.35em;color:var(--ori-gold);margin-bottom:.5rem;display:block;
}
.do-faith-item h4{
  font-family:var(--font-s);font-size:1.05rem;font-weight:500;
  color:var(--ori-snow);margin-bottom:.5rem;letter-spacing:.04em;
}
.do-faith-item p{
  font-size:.9rem;color:var(--ori-ash);font-weight:300;
  line-height:1.9;letter-spacing:.03em;
}

/* ===========================
   04: NATURE
   =========================== */
.do-nature-section{
  background:linear-gradient(180deg,var(--ori-deep) 0%,#050F06 60%,var(--ori-deep) 100%);
}
.do-nature-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1.2rem;margin-bottom:2.5rem;
}
.do-nature-card{
  padding:2rem 1.8rem;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.05);
  border-radius:6px;
  transition:border-color .4s,background .4s;
}
.do-nature-card:hover{
  border-color:rgba(90,122,74,.3);
  background:rgba(44,61,40,.12);
}
.do-nature-icon{font-size:1.8rem;margin-bottom:.8rem;line-height:1}
.do-nature-card h4{
  font-family:var(--font-s);font-size:1rem;font-weight:500;
  color:var(--ori-snow);margin-bottom:.5rem;letter-spacing:.04em;
}
.do-nature-card p{font-size:.88rem;color:var(--ori-ash);font-weight:300;line-height:1.85}

.do-nature-image{
  border-radius:8px;overflow:hidden;
  border:1px solid rgba(184,148,74,.12);
  margin-bottom:2.5rem;
}
.do-nature-image img{width:100%;max-height:400px;object-fit:cover}

.do-nature-quote{
  border-left:2px solid var(--ori-moss-l);
  padding:1.8rem 2rem;
  background:rgba(90,122,74,.05);
}
.do-nature-quote p{
  font-family:var(--font-s);
  font-size:clamp(.95rem,1.8vw,1.08rem);
  color:rgba(220,212,196,.8);font-weight:300;
  line-height:2.1;letter-spacing:.05em;
}
.do-nature-quote p strong{color:var(--ori-snow);font-weight:500}

/* ===========================
   05: TEACHING
   =========================== */
.do-teaching-section{
  background:linear-gradient(180deg,var(--ori-deep) 0%,#060D08 50%,var(--ori-deep) 100%);
  text-align:center;
}
.do-teaching-inner{max-width:700px}
.do-teachings{
  display:flex;flex-direction:column;
  gap:4.5rem;margin:4rem 0;
}
.do-teaching{position:relative}
.do-teaching::before{
  content:'';position:absolute;
  top:-2.25rem;left:50%;transform:translateX(-50%);
  width:1px;height:1.8rem;
  background:linear-gradient(to bottom,transparent,var(--ori-gold));
}
.do-teaching:first-child::before{display:none}
.do-teaching__jp{
  font-family:var(--font-s);
  font-size:clamp(1.1rem,2.5vw,1.55rem);
  font-weight:500;color:var(--ori-snow);
  letter-spacing:.1em;line-height:2;margin-bottom:.8rem;
}
.do-teaching__en{
  font-family:var(--font-d);font-style:italic;
  font-size:clamp(.82rem,1.5vw,.95rem);
  color:var(--ori-stone);letter-spacing:.12em;
  display:block;margin-bottom:.5rem;
}
.do-teaching__note{
  font-size:.75rem;color:var(--ori-stone);
  letter-spacing:.1em;font-style:italic;
}

/* ===========================
   06: CONNECTION
   =========================== */
.do-connection-section{
  background:var(--ori-deep);
  overflow:hidden;position:relative;
}
.do-connection-section::before{
  content:'DAISEN';
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--font-d);font-size:clamp(5rem,20vw,16rem);
  font-weight:900;letter-spacing:.1em;
  color:rgba(184,148,74,.025);
  white-space:nowrap;pointer-events:none;
}

.do-conn-box{
  background:rgba(184,148,74,.04);
  border:1px solid var(--ori-rule);
  padding:clamp(3rem,6vw,5rem) clamp(2rem,5vw,4rem);
  text-align:center;position:relative;
  margin-bottom:3rem;overflow:hidden;
}
.do-conn-box::before,.do-conn-box::after{
  content:'';position:absolute;
  width:70px;height:1px;background:var(--ori-gold);opacity:.35;
}
.do-conn-box::before{top:1.5rem;left:1.5rem}
.do-conn-box::after{bottom:1.5rem;right:1.5rem}

.do-conn-word{
  font-family:var(--font-d);font-weight:900;
  font-size:clamp(2rem,6vw,4.5rem);
  letter-spacing:.15em;line-height:1.2;
  margin-bottom:2rem;
}
.do-conn-d,.do-conn-sen{color:rgba(210,200,185,.45)}
.do-conn-ai{
  color:var(--ori-gold-l);
  text-shadow:0 0 30px rgba(212,174,106,.4);
}
.do-conn-subtitle{
  font-family:var(--font-b);
  font-size:clamp(.9rem,1.8vw,1.08rem);
  color:rgba(210,200,185,.6);font-weight:300;
  letter-spacing:.06em;line-height:2;
  max-width:580px;margin:0 auto 2rem;
}
.do-conn-detail{
  font-family:var(--font-s);
  font-size:clamp(.9rem,1.7vw,1.02rem);
  color:rgba(220,212,196,.75);font-weight:300;
  letter-spacing:.04em;line-height:2.1;
  max-width:620px;margin:0 auto 2rem;
}
.do-conn-detail strong{color:var(--ori-snow);font-weight:500}
.do-conn-rule{
  width:48px;height:1px;background:var(--ori-gold);
  margin:2rem auto;opacity:.4;
}
.do-conn-vision{
  font-family:var(--font-s);
  font-size:clamp(.9rem,1.7vw,1.05rem);
  color:rgba(210,200,185,.7);font-weight:300;
  letter-spacing:.06em;line-height:2;
  max-width:560px;margin:0 auto;
}
.do-conn-vision strong{color:var(--ori-gold-l);font-weight:500}

/* ビジョンリンク */
.do-vision-link{
  background:rgba(7,7,16,.5);
  border:1px solid rgba(0,200,230,.15);
  padding:3rem;text-align:center;border-radius:8px;
}
.do-vision-link__label{
  font-family:var(--font-d);font-size:.62rem;font-weight:700;
  letter-spacing:.4em;color:var(--blue);margin-bottom:1.2rem;display:block;
}
.do-vision-link__quote {
  font-family: var(--font-s);
  font-size: clamp(1rem, 2.2vw, 1.35rem);
  font-weight: 400;
  color: #ffffff; /* ← くっきり白に */
  line-height: 1.9;
  letter-spacing: .08em;
  border: none;
  padding: 1.2rem; /* ← 余白追加で読みやすく */
  margin-bottom: 1rem;
  font-style: normal;
  text-align: center;
  background: linear-gradient(135deg, #1e1e2f, #3a3a5a);
  border-radius: 8px; /* ← 角丸でやわらかく */
}

.do-vision-link__sub{
  font-family:var(--font-d);font-size:.72rem;font-weight:600;
  letter-spacing:.12em;color:rgba(200,210,230,.4);
  margin-bottom:2rem;display:block;
}
.do-vision-link__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}
.do-vision-link__btn{
  display:inline-flex;align-items:center;
  padding:.75rem 2rem;border-radius:6px;
  font-family:var(--font-d);font-size:.78rem;font-weight:700;
  letter-spacing:.08em;transition:all .3s var(--ease);
}
.do-vision-link__btn--primary{
  background:var(--gold);color:var(--black);
  box-shadow:0 4px 20px rgba(255,215,0,.25);
}
.do-vision-link__btn--primary:hover{filter:brightness(1.1);transform:translateY(-2px)}
.do-vision-link__btn--ghost{
  background:transparent;color:rgba(200,210,230,.65);
  border:1px solid rgba(255,255,255,.15);
}
.do-vision-link__btn--ghost:hover{
  border-color:rgba(255,255,255,.35);color:var(--ori-snow);
  background:rgba(255,255,255,.05);
}

/* ===========================
   MAP
   =========================== */
.do-map-section{padding:0}
.do-map-header{
  padding:3rem clamp(1.5rem,6vw,3rem) 2rem;
  max-width:960px;margin:0 auto;
}
.do-map-sub{
  font-family:var(--font-d);font-size:.72rem;letter-spacing:.15em;
  color:var(--ori-stone);margin-top:.5rem;
}
.do-map-frame{
  border-top:1px solid var(--ori-rule);
  filter:brightness(.85) contrast(1.1);
}
.do-map-frame iframe{display:block}

/* ===========================
   SCROLL REVEAL
   =========================== */
.do-reveal{
  opacity:0;transform:translateY(36px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.do-reveal.is-visible{opacity:1;transform:none}

/* ===========================
   BACK TO TOP
   =========================== */
.do-btt{
  position:fixed;bottom:2rem;right:2rem;
  width:48px;height:48px;border-radius:50%;
  background:rgba(184,148,74,.12);
  border:1px solid rgba(184,148,74,.3);
  color:var(--ori-gold);display:grid;place-items:center;
  z-index:9000;
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity .4s,transform .4s,background .3s;
}
.do-btt.is-visible{opacity:1;transform:none;pointer-events:auto}
.do-btt:hover{background:rgba(184,148,74,.25)}

/* ===========================
   RESPONSIVE
   =========================== */
@media(max-width:1023px){
  .do-stats{grid-template-columns:repeat(2,1fr)}
  .do-faith-layout{grid-template-columns:1fr}
  .do-faith-image{width:100%}
  .do-faith-image img{height:240px}
}

@media(max-width:768px){
  .do-header__inner{padding:0 20px}
  .do-nav{
    display:none;flex-direction:column;
    position:fixed;top:68px;left:0;right:0;
    background:rgba(16,14,11,.98);
    padding:16px 0 24px;
    border-bottom:1px solid rgba(184,148,74,.1);
    max-height:calc(100vh - 68px);overflow-y:auto;z-index:9998;
  }
  .do-nav.is-open{display:flex}
  .do-nav__item{
    padding:12px 28px;border-bottom:1px solid rgba(184,148,74,.06);
    font-size:.85rem;border-radius:0;
  }
  .do-menu-toggle{display:flex}
  .do-seasons{grid-template-columns:1fr;gap:1rem}
  .do-season{min-height:240px}
  .do-nature-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .do-hero{padding:0 1.5rem clamp(3rem,8vh,5rem)}
  .do-stats{grid-template-columns:1fr 1fr}
  .do-conn-box{padding:2.5rem 1.5rem}
  .do-vision-link__actions{flex-direction:column;align-items:center}
}

/* 06 ORIGIN×FUTURE 背景オーバーレイ */
.do-connection-section {
  position: relative;
}
.do-connection-section__overlay {
  position: absolute;
  inset: 0;
  background: rgba(5,10,18,.72);
  pointer-events: none;
  z-index: 0;
}
.do-connection-section .do-inner {
  position: relative;
  z-index: 1;
}

/* DAISEN VISION ブロック: シルバーブルー高級感背景 */
.do-vision-link {
  background: linear-gradient(135deg,
    #1c2d42 0%,
    #22354f 30%,
    #2a4060 60%,
    #1c2d42 100%
  ) !important;
  border: 1px solid rgba(180,200,230,.18);
  box-shadow:
    inset 0 1px 0 rgba(180,210,255,.12),
    0 8px 40px rgba(0,0,0,.45);
  color: #c8d8f0 !important;
}
.do-vision-link__label {
  color: rgba(180,205,240,.7) !important;
  letter-spacing: .3em;
}
.do-vision-link__quote {
  color: #d8e8ff !important;
  border-left-color: rgba(150,185,230,.5) !important;
}
.do-vision-link__sub {
  color: rgba(180,205,240,.65) !important;
}

/* ====== 原点 LATEST 記事一覧 ====== */
.do-origin-latest {
  padding: 5rem 0;
  background: #080e18;
}
.do-origin-latest__ja {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .45em;
  font-weight: 300;
  letter-spacing: .2em;
  display: block;
  margin-top: .3em;
  color: rgba(255,255,255,.55);
}
.do-origin-posts {
  list-style: none;
  padding: 0;
  margin: 0 0 3rem;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.do-origin-post__link {
  display: flex;
  gap: 1.4rem;
  align-items: flex-start;
  padding: 1.4rem 1.6rem;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 3px;
  text-decoration: none;
  transition: background .25s, border-color .25s;
}
.do-origin-post__link:hover {
  background: rgba(212,175,55,.07);
  border-color: rgba(212,175,55,.25);
}
.do-origin-post__thumb {
  flex-shrink: 0;
  width: 100px;
  height: 70px;
  overflow: hidden;
  border-radius: 2px;
}
.do-origin-post__thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.do-origin-post__body {
  flex: 1;
  min-width: 0;
}
.do-origin-post__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(.88rem, 1.8vw, 1.05rem);
  font-weight: 500;
  color: rgba(255,255,255,.92);
  letter-spacing: .04em;
  line-height: 1.6;
  margin-bottom: .5em;
}
.do-origin-post__excerpt {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  line-height: 1.7;
  margin-bottom: .6em;
}
.do-origin-post__more {
  font-size: .78rem;
  color: rgba(212,175,55,.75);
  letter-spacing: .08em;
}
/* Memory Library ボタン */
.do-origin-latest__footer { text-align: center; }
.do-origin-latest__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .3em;
  padding: 1.1em 3em;
  border: 1px solid rgba(212,175,55,.5);
  border-radius: 2px;
  text-decoration: none;
  transition: background .25s, border-color .25s;
}
.do-origin-latest__btn:hover {
  background: rgba(212,175,55,.1);
  border-color: rgba(212,175,55,.8);
}
.do-origin-latest__btn-en {
  font-family: 'Cinzel', 'Montserrat', serif;
  font-size: .95rem;
  letter-spacing: .25em;
  color: rgba(212,175,55,.9);
}
.do-origin-latest__btn-ja {
  font-size: .72rem;
  letter-spacing: .15em;
  color: rgba(255,255,255,.5);
  font-family: 'Noto Sans JP', sans-serif;
}
/* SP対応 */
@media (max-width: 640px) {
  .do-origin-post__link { flex-direction: column; gap: .8rem; }
  .do-origin-post__thumb { width: 100%; height: 160px; }
}
