@charset "utf-8";
/* =====================================================
  GAIA Oroshi LP CSS（整形・完全版）
  修正ポイント：
  - @media の二重ネストを解消（構文エラーでSPが効かない問題を解決）
  - PC固定の !important 上書き（見出し系）を撤去し、SPでサイズ変更できるように調整
  - どうしてもシステムCSSに負ける箇所のみ、末尾の OVERRIDES に隔離
====================================================== */

/* =========================
  0) Variables
========================= */
:root{
  --color-main-orange:#e67e22;
  --color-text-brown:#5d4037;
  --color-text-body:#333;
  --color-bg-beige-light:#f9f7f2;
  --color-bg-beige-dark:#f4f1ea;

  --font-serif:'Noto Serif JP', serif;
  --font-sans:'Noto Sans JP', sans-serif;

  --shadow-soft: 0 8px 24px rgba(0,0,0,0.04), 0 2px 6px rgba(0,0,0,0.03);
}

/* =========================
  1) Base Reset
========================= */
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-sans);
  color:var(--color-text-body);
  line-height:1.7;
  background:var(--color-bg-beige-light);
  overflow-x:hidden;
}
img{max-width:100%;height:auto;vertical-align:bottom;}
a{text-decoration:none;transition:.3s;}
ul{list-style:none;padding:0;margin:0;}
p,h1,h2,h3{margin:0;}
.text-center{text-align:center;}
.mt-40{margin-top:40px;}
.mb-60{margin-bottom:60px;}

/* =========================
  2) Layout Utilities
========================= */
#orosi-lp .container{
  max-width:1000px;
  margin:0 auto;
  padding:0 20px;
  position:relative;
}

/* =========================
  3) Components
========================= */

/* Buttons */
#orosi-lp .btn-main,
#orosi-lp .btn-apply{
  display:inline-block;
  background:var(--color-main-orange);
  color:#fff;
  font-weight:700;
  padding:15px 60px;
  border-radius:50px;
  box-shadow:0 4px 10px rgba(93,64,55,0.25);
  text-align:center;
  font-size:1.2rem;
}
#orosi-lp .btn-main:hover,
#orosi-lp .btn-apply:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(93,64,55,0.28);
  opacity:.95;
}
#orosi-lp .btn-large{padding:20px 60px;}

/* Section headers */
#orosi-lp .section-header{
  font-family:var(--font-serif);
  font-size:3.8rem;
  color:var(--color-main-orange);
  margin:0 0 40px;
  letter-spacing:.05em;
  line-height:1.25;
}
#orosi-lp .section-subtitle{
  font-weight:700;
  margin:0 0 40px;
  color:var(--color-text-body);
  font-size:1.2rem;
  line-height:1.4;
}

/* Shape divider */
#orosi-lp .custom-shape-divider-top{
  position:absolute;
  top:0;left:0;
  width:100%;
  overflow:hidden;
  line-height:0;
  z-index:1;
  pointer-events:none;
}
#orosi-lp .custom-shape-divider-top svg{
  position:relative;
  display:block;
  width:calc(130% + 1.3px);
  height:60px;
}
#orosi-lp .custom-shape-divider-top .shape-fill{fill:#fff;}

/* =========================
  4) Sections
========================= */

/* ---- MV (section1) ---- */
#orosi-lp .section1{
  position:relative;
  background:url("https://wwwgaiaochanomizucojp.ecbeing.biz/orosi/img/orosi_top.jpg") no-repeat center top/cover;
  padding:120px 0 100px;
  overflow:hidden;
}
#orosi-lp .mv-bg-top{
  position:absolute;
  top:0;left:0;
  width:100%;
  height:150px;
  background-image:url('images/bg-wave-header.png');
  background-size:cover;
  background-position:top center;
  z-index:0;
  pointer-events:none;
}
#orosi-lp .section1-inner{
  text-align:center;
  position:relative;
  z-index:2;
  max-width:800px;
  margin:0 auto;
}
#orosi-lp .title-area{margin:0 0 30px;}
#orosi-lp .title-img{width:100%;max-width:100%;}

/* feature-list（ブロックは中央・中身は左揃え） */
#orosi-lp .feature-list{
  display:inline-block;
  text-align:left;
  margin:20px auto 40px;
  padding:20px;
  background:rgba(255,255,255,0.65);
  border:1px solid rgba(93,64,55,0.20);
  border-radius:12px;
}
#orosi-lp .feature-list li{
  font-size:1.6rem;
  font-weight:700;
  color:var(--color-text-brown);
  margin:0 0 24px;
  display:flex;
  align-items:center;
  line-height:1.35;
  justify-content:flex-start;
  text-align:left;
}
#orosi-lp .feature-list li:last-child{margin-bottom:0;}
#orosi-lp .feature-list .check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  background:#eb7d31;
  color:#fff;
  border-radius:6px;
  margin-right:20px;
  font-size:24px;
  flex-shrink:0;
  line-height:1;
}

/* ---- Brands ---- */
#orosi-lp .brands-section{
  background:#fff;
  padding:80px 0;
  overflow:hidden;
}
#orosi-lp .section2{width:100%;text-align:center;}
#orosi-lp .brand-title{
  font-family:var(--font-serif);
  font-size:3.1rem;
  color:var(--color-text-brown);
  margin:0 0 34px;
  letter-spacing:.05em;
  line-height:1.2;
}

#orosi-lp .slider-container{width:100%;margin:0 0 40px;}
#orosi-lp .slide-track{display:flex;width:max-content;}
#orosi-lp .slide{
  width:160px;
  padding:0 20px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
}
#orosi-lp .slide-track.top{animation:scroll-left 60s linear infinite;}
#orosi-lp .slide-track.bottom{margin-top:20px;animation:scroll-right 60s linear infinite;}
@keyframes scroll-left{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@keyframes scroll-right{0%{transform:translateX(-50%);}100%{transform:translateX(0);}}

/* brand info */
#orosi-lp .brand-info{
  margin:40px 0;
  color:#666;
  line-height:1.3;
  font-family:var(--font-sans);
  font-size:1.9rem;
}
#orosi-lp .brand-info .info-label{font-size:1.9rem;font-weight:700;margin-right:.2em;}
#orosi-lp .brand-info .info-number{
  font-size:2.6rem;
  font-weight:600;
  font-family:Arial, sans-serif;
  line-height:1.2;
  letter-spacing:-0.01em;
}
#orosi-lp .brand-info .brand-note{
  font-size:1.1rem;
  font-weight:400;
  vertical-align:baseline;
  margin-left:.2em;
}

/* ---- Case ---- */
#orosi-lp .case-section{
  background:var(--color-bg-beige-dark);
  padding:70px 0 100px;
  position:relative;
}
#orosi-lp .case-section .container{
  position:relative;
  z-index:2;
}
#orosi-lp .case-section .custom-shape-divider-top{
  z-index:1;
}

#orosi-lp .case-header-wrapper{
  margin:0 0 50px;
  color:var(--color-text-brown);
  font-family:var(--font-sans);
}
#orosi-lp .case-title-top{
  font-size:2.4rem;
  font-weight:700;
  margin:0 0 20px;
  line-height:1.25;
}
#orosi-lp .case-stat-row{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  font-weight:700;
}
#orosi-lp .stat-label{font-size:1.7rem;}
#orosi-lp .stat-number{
  font-size:3.2rem;
  line-height:1;
  font-family:sans-serif;
  margin-left:10px;
}
#orosi-lp .stat-unit{font-size:1.7rem;}
#orosi-lp .stat-note{font-size:1.0rem;font-weight:400;margin-left:5px;}

#orosi-lp .grid-3col{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:30px;
  margin-top:50px;
}
#orosi-lp .case-card{
  background:#fff;
  border-radius:15px;
  overflow:hidden;
  text-align:center;
  padding-bottom:25px;
  box-shadow:0 5px 15px rgba(0,0,0,0.05);
  transition:transform .3s;
}
#orosi-lp .case-card:hover{transform:translateY(-5px);}
#orosi-lp .case-img{width:100%;height:200px;background:#ddd;}
#orosi-lp .case-img img{width:100%;height:100%;object-fit:cover;}

/* case-card title */
#orosi-lp .case-card h3{
  text-align:center !important;
  font-size:1.75rem !important;
  font-weight:800 !important;
  letter-spacing:0.06em !important;
  color:#4b332c !important;
  line-height:1.2 !important;
  margin:22px 12px 14px !important;
  position:relative !important;
}
#orosi-lp .case-card h3::after{
  content:"" !important;
  display:block !important;
  width:56px !important;
  height:2px !important;
  margin:10px auto 0 !important;
  background:rgba(230,126,34,0.55) !important;
  border-radius:2px !important;
}
#orosi-lp .case-card p{
  font-size:1.05rem;
  color:#666;
  margin:0 15px;
  text-align:left;
  line-height:1.75;
}

/* ---- Features ---- */
#orosi-lp .features-section{
  background:var(--color-bg-beige-light);
  padding:100px 0;
  position:relative;
}
#orosi-lp .feature-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0 0 100px;
  gap:56px;
}
#orosi-lp .feature-reverse{flex-direction:row-reverse;}
#orosi-lp .feature-txt{
  flex:0 0 45%;
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}
#orosi-lp .feature-img{flex:0 0 48%;}
#orosi-lp .feature-img img{border-radius:0;box-shadow:none;}

#orosi-lp .feature-txt h3{
  font-size:2.15rem;
  color:var(--color-text-brown);
  font-weight:700;
  margin:0 0 25px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
  line-height:1.25;
}
#orosi-lp .feature-txt .num{
  color:var(--color-main-orange);
  font-size:3.2rem;
  font-weight:700;
  font-family:var(--font-sans);
  line-height:1;
  flex-shrink:0;
  white-space:nowrap;
}
#orosi-lp .feature-txt p{font-size:1.1rem;line-height:1.8;}

/* ---- Workflow ---- */
#orosi-lp .workflow-section{
  background:var(--color-bg-beige-light);
  padding:0 0 80px;
  position:relative;
}
#orosi-lp .workflow-title-area{
  text-align:center;
  margin:0 0 80px;
}
#orosi-lp .workflow-title-main{
  font-family:var(--font-serif);
  font-size:3.2rem;
  color:var(--color-main-orange);
  font-weight:700;
  line-height:1.2;
}
#orosi-lp .workflow-title-main span{color:var(--color-text-brown);}
#orosi-lp .workflow-title-sub{
  display:block;
  margin-top:15px;
  font-size:2.3rem;
  color:var(--color-main-orange);
  font-weight:700;
  line-height:1.25;
}

#orosi-lp .workflow-item{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0 0 80px;
}
#orosi-lp .workflow-content{
  max-width:820px;
  width:100%;
  margin:0 auto;
}

#orosi-lp .step-badge{
  display:inline-flex;
  align-items:center;
  color:var(--color-text-brown);
  font-weight:700;
  font-size:1.6rem;
  margin:0 0 15px;
  letter-spacing:.1em;
}
#orosi-lp .step-num{
  background:var(--color-text-brown);
  color:#fff;
  border-radius:50%;
  width:50px;height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-left:15px;
  font-weight:700;
  font-size:1.4rem;
  line-height:1;
}

#orosi-lp .workflow-content h3{
  font-size:2.15rem;
  font-weight:700;
  color:var(--color-text-brown);
  margin:0 0 16px;
  line-height:1.25;
  text-align:center;
}

#orosi-lp .workflow-icon{
  text-align:center;
  margin:12px auto 18px;
}
#orosi-lp .workflow-icon img{
  width:46%;
  max-width:180px;
  height:auto;
}

#orosi-lp .workflow-content p{
  margin:0 0 15px;
  font-size:1.1rem;
  line-height:1.8;
  text-align:left;
}
#orosi-lp .workflow-list{margin:15px 0 20px;padding-left:0;}
#orosi-lp .workflow-list li{
  position:relative;
  padding-left:1.5em;
  margin:0 0 6px;
  font-size:1.05rem;
  text-align:left;
}
#orosi-lp .workflow-list li::before{
  content:'・';
  position:absolute;
  left:0;
  color:var(--color-text-brown);
  font-weight:700;
}

/* ---- History ---- */
#orosi-lp .history-section{
  background:#fff;
  padding:80px 0;
  position:relative;
}
#orosi-lp .section-title-brown{
  font-family:var(--font-serif);
  font-size:2.7rem;
  color:var(--color-main-orange);
  font-weight:700;
  line-height:1.25;
  margin:0 0 20px;
  text-align:center;
}

#orosi-lp .timeline-container{
  position:relative;
  margin:40px 0 60px 15px;
  padding-left:40px;
  border-left:3px solid #e0cca7;
}
#orosi-lp .timeline-item{position:relative;margin:0 0 40px;}
#orosi-lp .timeline-dot{
  position:absolute;
  left:-49px;
  top:5px;
  width:16px;height:16px;
  background:#dcb482;
  border-radius:50%;
}
#orosi-lp .timeline-content{
  display:flex;
  align-items:flex-start;
  gap:0;
}
#orosi-lp .timeline-year{
  font-weight:700;
  color:var(--color-text-brown);
  font-size:1rem;
  margin-right:20px;
  padding:0;
  flex:0 0 auto;
}
#orosi-lp .timeline-text{
  font-size:.95rem;
  line-height:1.35;
  margin:0;
  padding:0;
}
#orosi-lp .history-images{margin-top:40px;text-align:center;}

/* ---- Concept ---- */
#orosi-lp .concept-section{
  background:var(--color-bg-beige-light);
  padding-top:80px;
}
#orosi-lp .concept-section .section-title-brown{
  font-size:2.5rem;
  line-height:1.22;
  letter-spacing:.01em;
  text-align:center;
}

#orosi-lp .section-text{
  margin:0 0 30px;
  line-height:1.8;
  text-align:left;
}
#orosi-lp .concept-image{text-align:center;margin:50px 0;}
#orosi-lp .concept-image img{max-width:300px;margin:0 auto;}

#orosi-lp .concept-lead{
  font-family:var(--font-serif);
  font-size:2.0rem;
  font-weight:700;
  color:var(--color-main-orange);
  margin:0 0 20px;
  letter-spacing:.05em;
  text-align:center;
  line-height:1.25;
}

#orosi-lp .concept-list{
  display:inline-block;
  margin:10px 0 50px;
  padding:0;
  text-align:left;
}
#orosi-lp .concept-list li{
  font-family:var(--font-serif);
  font-size:1.85rem;
  font-weight:700;
  color:var(--color-text-brown);
  margin:0 0 18px;
  padding-left:10px;
  line-height:1.5;
  letter-spacing:0.03em;
}

#orosi-lp .section-bg-field{
  background:url('https://wwwgaiaochanomizucojp.ecbeing.biz/orosi/img/bg-field.png') no-repeat center bottom/cover;
  padding:80px 0;
  position:relative;
}
#orosi-lp .section-bg-field::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:100%;
  height:100%;
  background:rgba(255,255,255,0.8);
  z-index:0;
}
#orosi-lp .section-bg-field .container{
  position:relative;
  z-index:1;
  text-align:center;
}

#orosi-lp .example-list{
  background:rgba(255,255,255,0.7);
  padding:30px;
  border-radius:10px;
  margin:0 auto 40px;
  display:inline-block;
  text-align:left;
  max-width:100%;
}
#orosi-lp .example-list li{
  margin:0 0 18px;
  font-size:1.22rem;
  line-height:1.65;
}
#orosi-lp .example-list li:last-child{margin-bottom:0;}
#orosi-lp .example-list strong{
  display:inline-block;
  margin-bottom:6px;
  font-size:1.5rem;
}

/* ---- Footer CTA ---- */
#orosi-lp .footer-cta-section{
  padding:100px 0;
  background:var(--color-bg-beige-dark);
  text-align:center;
}
#orosi-lp .footer-cta-section h2{
  font-family:var(--font-sans);
  font-weight:800;
  font-size:2.1rem;
  letter-spacing:0.05em;
  color:var(--color-text-brown);
  margin:0 0 40px;
  line-height:1.35;
}

/* =========================
  5) Responsive（SP only 768px）
========================= */
@media (max-width:768px){
  #orosi-lp .container{padding:0 15px;}

  /* ★SPで小さくする（ご指定箇所） */
  #orosi-lp .section-header{
    font-size:1.8rem;
    margin-bottom:30px;
    line-height:1.25;
  }
  #orosi-lp .workflow-title-main{font-size:1.8rem;}
  #orosi-lp .workflow-title-sub{font-size:1.3rem;}

  /* MV */
  #orosi-lp .section1{padding:100px 0 50px;}
  #orosi-lp .feature-list{
    display:block;
    width:fit-content;
    max-width:calc(100% - 30px);
    margin:14px auto 22px;
    padding:20px 18px;
  }
  #orosi-lp .feature-list li{font-size:1.48rem;margin-bottom:14px;}
  #orosi-lp .feature-list .check{
    width:32px;height:32px;
    font-size:20px;
    margin-right:12px;
  }

  /* brands */
  #orosi-lp .brands-section{padding:52px 0 60px;}
  #orosi-lp .brand-title{font-size:2.0rem;margin:0 0 24px;}
  #orosi-lp .slide{width:120px;padding:0 10px;}
  #orosi-lp .brand-info{font-size:1.5rem;}
  #orosi-lp .brand-info .info-label{font-size:1.3rem;}
  #orosi-lp .brand-info .info-number{font-size:2.8rem;}
  #orosi-lp .brand-info .brand-note{font-size:.9rem;}

  /* case grid 2-col */
  #orosi-lp .grid-3col{
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
    margin-top:30px;
  }
  #orosi-lp .case-img{height:100px;}
  #orosi-lp .case-card h3{
    font-size:1.22rem !important;
    letter-spacing:0.04em !important;
    margin:12px 8px 10px !important;
  }
  #orosi-lp .case-card h3::after{
    width:40px !important;
    margin-top:7px !important;
  }
  #orosi-lp .case-card p{
    font-size:.92rem;
    margin:0 8px 15px;
    line-height:1.55;
  }
  #orosi-lp .case-title-top{font-size:2.0rem;}
  #orosi-lp .stat-label,#orosi-lp .stat-unit{font-size:1.4rem;}
  #orosi-lp .stat-number{font-size:2.8rem;}
  #orosi-lp .stat-note{font-size:.9rem;}

  /* features/workflow stack */
  #orosi-lp .feature-row,
  #orosi-lp .feature-reverse{
    flex-direction:column-reverse;
    margin-bottom:40px;
    gap:18px;
  }
  #orosi-lp .workflow-item{flex-direction:column;margin-bottom:40px;}
  #orosi-lp .feature-txt,
  #orosi-lp .feature-img{width:100%;flex:auto;}
  #orosi-lp .feature-img{order:-1;}
  #orosi-lp .feature-img img{
    max-width:80%;
    margin:0 auto;
    display:block;
  }
  #orosi-lp .feature-img img[src*="sec4_2.jpg"],
  #orosi-lp .feature-img img[src*="sec4_5.jpg"]{max-width:78%;}

  #orosi-lp .feature-txt h3{font-size:1.65rem !important;}
  #orosi-lp .feature-txt .num{font-size:2.2rem !important;}

  /* workflow card化 */
  #orosi-lp .workflow-content{
    max-width:86%;
    margin:0 auto 28px;
    padding:22px 20px;
    background:rgba(255,255,255,0.82);
    border:1px solid rgba(93,64,55,0.15);
    border-radius:16px;
    box-shadow:var(--shadow-soft);
    text-align:left;
  }
  #orosi-lp .workflow-content .step-badge{
    justify-content:center;
    width:100%;
    text-align:center;
    font-size:1.4rem;
  }
  #orosi-lp .step-num{width:40px;height:40px;font-size:1.2rem;margin-left:10px;}
  #orosi-lp .workflow-content h3{font-size:1.65rem;}
  #orosi-lp .workflow-icon img{
    width:52%;
    max-width:150px;
  }

  /* history */
  #orosi-lp .section-title-brown{font-size:1.75rem;}
  #orosi-lp .timeline-container{margin-left:10px;}
  #orosi-lp .timeline-content{flex-direction:column;}
  #orosi-lp .timeline-year{margin-bottom:5px;}
  #orosi-lp .timeline-text{line-height:1.3;}

  /* concept */
  #orosi-lp .concept-section .section-title-brown{font-size:1.75rem;}
  #orosi-lp .concept-list li{
    font-size:1.65rem;
    line-height:1.55;
    letter-spacing:0.03em;
  }
  #orosi-lp .example-list{display:block;padding:22px;}
  #orosi-lp .example-list li{font-size:1.25rem;line-height:1.7;}
  #orosi-lp .example-list strong{font-size:1.5rem;}

  /* CTA */
  #orosi-lp .footer-cta-section h2{font-size:1.5rem;}
  #orosi-lp .btn-main,#orosi-lp .btn-apply{
    width:100%;
    padding:15px;
    box-sizing:border-box;
  }

  /* wave svg SP */
  #orosi-lp .custom-shape-divider-top svg{
    width:calc(200% + 1.3px);
    height:30px;
  }
}

/* =========================
  6) OVERRIDES（最小限の !important）
  ※ECbeing側に負ける場合のみ、ここを触る
========================= */

/* ボタン系はシステムに色を上書きされがちなので保険 */
#orosi-lp .btn-main,
#orosi-lp .btn-apply{
  background-color: var(--color-main-orange) !important;
  color:#fff !important;
}

/* （重要）見出し系のPC固定 !important は撤去済み
   → SPの font-size がきちんと反映されます */