/* ========== RESET & VARIABLES ========== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --teal:#119f8f;
  --teal-deep:#0d7a6d;
  --teal-light:#2dd4c2;
  --teal-pale:#e6f7f5;
  --gold:#E8D62E;
  --gold-soft:#f5ed8a;
  --gold-pale:#fdf9d8;
  --bg-main:#f6f9f8;
  --bg-white:#ffffff;
  --bg-cream:#fafcfb;
  --bg-teal-tint:#eef8f6;
  --dark:#0e1a17;
  --text-primary:#1a2e28;
  --text-secondary:#4a6860;
  --text-muted:#7a9990;
  --border-light:rgba(17,159,143,.12);
  --font-display:'Cormorant Garamond',serif;
  --font-heading:'Outfit',sans-serif;
  --font-body:'Noto Sans JP','Outfit',sans-serif;
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden}
body{
  background:var(--bg-main);color:var(--text-primary);
  font-family:var(--font-body);font-weight:400;line-height:1.8;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
  margin:0;padding:0;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ========== CURSOR GLOW ========== */
.cursor-glow{position:fixed;width:320px;height:320px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(17,159,143,.07) 0%,transparent 70%);transform:translate(-50%,-50%);transition:left .6s ease-out,top .6s ease-out}

/* ========== SCROLLBAR ========== */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg-main)}
::-webkit-scrollbar-thumb{background:var(--teal);border-radius:3px}

/* ========== LOADER ========== */
#loader{position:fixed;inset:0;z-index:10000;background:var(--bg-white);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .6s ease,visibility .6s}
#loader.hide{opacity:0;visibility:hidden;pointer-events:none}
.loader-ring{width:48px;height:48px;border-radius:50%;border:2px solid var(--teal-pale);border-top-color:var(--teal);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loader-text{font-family:var(--font-display);font-size:1.2rem;font-weight:300;letter-spacing:.15em;color:var(--teal);margin-top:20px;animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* ========== NAVIGATION ========== */
nav.site-nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 48px;display:flex;align-items:center;justify-content:space-between;transition:all .4s var(--ease-out-expo)}
nav.site-nav.scrolled{background:rgba(255,255,255,.88);backdrop-filter:blur(24px) saturate(1.4);padding:14px 48px;box-shadow:0 1px 30px rgba(17,159,143,.06)}
nav.site-nav.always-glass{background:rgba(255,255,255,.88);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 1px 30px rgba(17,159,143,.06)}
.nav-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:400;letter-spacing:.1em;color:var(--teal);display:flex;align-items:center;gap:10px}
.nav-logo img{height:32px;width:auto;display:block}
.nav-links{display:flex;gap:36px;align-items:center}
.nav-links a{font-family:var(--font-heading);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary);position:relative;transition:color .3s}
.nav-links a::after{content:'';position:absolute;bottom:-6px;left:50%;width:0;height:2px;background:var(--gold);border-radius:1px;transform:translateX(-50%);transition:width .4s var(--ease-spring)}
.nav-links a:hover{color:var(--teal)}
.nav-links a:hover::after{width:100%}
.nav-links a.current{color:var(--teal)}
.nav-cta{font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bg-white);background:var(--teal);padding:11px 28px;border-radius:60px;transition:all .4s var(--ease-spring);box-shadow:0 4px 20px rgba(17,159,143,.25)}
.nav-cta:hover{background:var(--teal-deep);transform:translateY(-2px) scale(1.02);box-shadow:0 8px 30px rgba(17,159,143,.35)}
.nav-hamburger{display:none;cursor:pointer;flex-direction:column;gap:5px;z-index:1001}
.nav-hamburger span{display:block;width:22px;height:1.5px;background:var(--text-primary);transition:all .3s}

/* ========== HERO ========== */
#hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:0 48px;background:var(--bg-white)}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;animation:shapeFloat linear infinite;opacity:.5}
.hero-shape.s1{width:400px;height:400px;top:-100px;right:-80px;background:radial-gradient(circle,var(--teal-pale),transparent 70%);animation-duration:20s}
.hero-shape.s2{width:300px;height:300px;bottom:-60px;left:-40px;background:radial-gradient(circle,var(--gold-pale),transparent 70%);animation-duration:25s;animation-delay:3s}
.hero-shape.s3{width:200px;height:200px;top:30%;left:55%;background:radial-gradient(circle,var(--teal-pale),transparent 70%);animation-duration:18s;animation-delay:6s}
.hero-shape.s4{width:160px;height:160px;top:60%;right:15%;background:radial-gradient(circle,var(--gold-pale),transparent 70%);animation-duration:22s;animation-delay:2s}
@keyframes shapeFloat{0%{transform:translate(0,0) scale(1) rotate(0deg)}25%{transform:translate(40px,-30px) scale(1.1) rotate(90deg)}50%{transform:translate(-20px,-50px) scale(.9) rotate(180deg)}75%{transform:translate(-40px,20px) scale(1.05) rotate(270deg)}100%{transform:translate(0,0) scale(1) rotate(360deg)}}
#particles{position:absolute;inset:0;z-index:1}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(17,159,143,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(17,159,143,.06) 1px,transparent 1px);background-size:60px 60px;animation:gridShift 30s linear infinite}
@keyframes gridShift{0%{background-position:0 0}100%{background-position:60px 60px}}
.hero-content{position:relative;z-index:2;max-width:860px;padding-top:120px}
.hero-tag{font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:12px;background:var(--teal-pale);padding:6px 18px 6px 14px;border-radius:40px;opacity:0;transform:translateY(20px)}
.hero-tag .tag-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:tagPulse 2s ease-in-out infinite}
@keyframes tagPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.hero-title{font-family:var(--font-display);font-size:clamp(3rem,7.5vw,6rem);font-weight:300;font-style:italic;line-height:1.08;color:var(--dark);margin:28px 0 16px;opacity:0;transform:translateY(40px)}
.hero-title .teal{color:var(--teal);font-style:normal;font-weight:500;display:inline-block;position:relative}
.hero-title .teal::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:8px;background:var(--gold-soft);opacity:.5;z-index:-1;border-radius:4px}
.hero-title .gold{color:var(--gold);text-shadow:0 0 40px rgba(232,214,46,.2)}
.hero-subtitle{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.35rem);font-weight:300;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:28px;opacity:0;transform:translateY(30px)}
.hero-desc{font-size:.92rem;font-weight:400;line-height:2;color:var(--text-secondary);max-width:520px;margin-bottom:44px;opacity:0;transform:translateY(30px)}
.hero-cta-group{display:flex;gap:16px;align-items:center;flex-wrap:wrap;opacity:0;transform:translateY(20px)}
.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeUp 1s 2.6s forwards}
.hero-scroll-mouse{width:22px;height:34px;border:1.5px solid var(--teal);border-radius:11px;position:relative}
.hero-scroll-mouse::after{content:'';position:absolute;top:6px;left:50%;width:3px;height:6px;border-radius:2px;background:var(--teal);transform:translateX(-50%);animation:scrollDot 2s ease-in-out infinite}
@keyframes scrollDot{0%,100%{opacity:1;transform:translateX(-50%) translateY(0)}50%{opacity:.3;transform:translateX(-50%) translateY(10px)}}
.hero-scroll-text{font-family:var(--font-heading);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted)}
@keyframes fadeUp{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ========== BUTTONS ========== */
.btn-primary{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bg-white);background:linear-gradient(135deg,var(--teal),var(--teal-light));padding:16px 36px;border-radius:60px;box-shadow:0 6px 30px rgba(17,159,143,.3);transition:all .4s var(--ease-spring);position:relative;overflow:hidden}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--teal-light),var(--teal));opacity:0;transition:opacity .4s;border-radius:60px}
.btn-primary:hover::before{opacity:1}
.btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 40px rgba(17,159,143,.4)}
.btn-primary span,.btn-primary svg{position:relative;z-index:1}
.btn-primary svg{width:16px;height:16px;transition:transform .3s var(--ease-spring)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-secondary{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);padding:16px 28px;border-radius:60px;border:1.5px solid var(--border-light);transition:all .4s var(--ease-spring)}
.btn-secondary:hover{border-color:var(--teal);background:var(--teal-pale);transform:translateY(-2px)}

/* ========== SECTION COMMON ========== */
section{padding:140px 48px;position:relative}
.section-label{font-family:var(--font-heading);font-size:.65rem;font-weight:600;letter-spacing:.35em;text-transform:uppercase;color:var(--teal);display:flex;align-items:center;gap:12px;margin-bottom:16px}
.section-label .label-line{width:30px;height:2px;background:linear-gradient(90deg,var(--teal),var(--teal-light));border-radius:1px}
.section-number{font-family:var(--font-display);font-size:8rem;font-weight:300;color:rgba(17,159,143,.04);position:absolute;top:80px;right:48px;line-height:1}
.section-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);font-weight:300;font-style:italic;line-height:1.2;color:var(--dark);margin-bottom:12px}
.section-desc{font-size:.88rem;font-weight:400;line-height:2;color:var(--text-secondary);max-width:560px;margin-bottom:64px}

/* ========== REVEAL ========== */
.reveal{opacity:0;transform:translateY(50px);transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
.reveal.active{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.12s}.reveal-delay-2{transition-delay:.24s}.reveal-delay-3{transition-delay:.36s}.reveal-delay-4{transition-delay:.48s}
.reveal-left{opacity:0;transform:translateX(-60px);transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
.reveal-right{opacity:0;transform:translateX(60px);transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
.reveal-left.active,.reveal-right.active{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.9);transition:opacity .7s var(--ease-out-expo),transform .7s var(--ease-out-expo)}
.reveal-scale.active{opacity:1;transform:scale(1)}

/* ========== MARQUEE ========== */
.marquee-wrap{overflow:hidden;padding:30px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);background:var(--bg-white)}
.marquee-track{display:flex;gap:60px;animation:marquee 30s linear infinite;width:max-content}
.marquee-track span{font-family:var(--font-display);font-size:2.4rem;font-weight:300;font-style:italic;color:rgba(17,159,143,.12);white-space:nowrap;display:flex;align-items:center;gap:60px}
.marquee-track span::after{content:'◇';font-style:normal;font-size:1rem;color:rgba(232,214,46,.3)}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ========== SERVICE ========== */
#service{background:var(--bg-white);overflow:hidden}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{background:var(--bg-cream);padding:48px 36px;border-radius:20px;border:1px solid var(--border-light);position:relative;overflow:hidden;transition:all .5s var(--ease-spring);cursor:default}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:20px 20px 0 0;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out-expo)}
.service-card:hover::before{transform:scaleX(1)}
.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(17,159,143,.1);border-color:rgba(17,159,143,.2)}
.service-card-glow{position:absolute;top:-80px;right:-80px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(17,159,143,.06),transparent 70%);transition:all .5s}
.service-card:hover .service-card-glow{transform:scale(1.4);background:radial-gradient(circle,rgba(17,159,143,.1),transparent 70%)}
.service-icon-wrap{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--teal-pale),rgba(17,159,143,.08));display:flex;align-items:center;justify-content:center;margin-bottom:28px;transition:all .4s var(--ease-spring)}
.service-card:hover .service-icon-wrap{background:linear-gradient(135deg,var(--teal),var(--teal-light));transform:rotate(-5deg) scale(1.1)}
.service-icon-wrap svg{width:26px;height:26px;color:var(--teal);transition:color .4s}
.service-card:hover .service-icon-wrap svg{color:var(--bg-white)}
.service-card h3{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;color:var(--dark);margin-bottom:6px}
.service-card .service-en{font-family:var(--font-display);font-size:.8rem;font-weight:300;font-style:italic;color:var(--teal);margin-bottom:18px;display:block}
.service-card p{font-size:.84rem;font-weight:400;line-height:1.9;color:var(--text-secondary)}

/* ========== STATS ========== */
.stats-bar{display:grid;grid-template-columns:repeat(2,1fr);background:linear-gradient(135deg,var(--teal),var(--teal-deep));border-radius:24px;padding:48px 20px;margin-top:80px;position:relative;overflow:hidden}
.stats-bar::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.stat-item{text-align:center;position:relative;z-index:1}
.stat-item+.stat-item{border-left:1px solid rgba(255,255,255,.15)}
.stat-number{font-family:var(--font-display);font-size:3.2rem;font-weight:300;color:var(--bg-white);line-height:1;margin-bottom:8px}
.stat-number .unit{font-size:1.4rem;margin-left:2px}
.stat-label{font-family:var(--font-heading);font-size:.72rem;font-weight:400;letter-spacing:.1em;color:rgba(255,255,255,.7)}

/* ========== VISION ========== */
#vision{background:var(--bg-teal-tint);overflow:hidden}
.vision-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.vision-visual{position:relative;height:480px;border-radius:24px;overflow:hidden;background:linear-gradient(160deg,var(--teal-pale),var(--gold-pale))}
.vision-visual-inner{position:absolute;inset:20px;border-radius:16px;background:var(--bg-white);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 60px rgba(17,159,143,.08)}
.vision-emblem{text-align:center}
.vision-emblem .emblem-f{font-family:var(--font-display);font-size:6rem;font-weight:300;font-style:italic;color:var(--teal);line-height:1;animation:emblemPulse 3s ease-in-out infinite}
@keyframes emblemPulse{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
.vision-emblem .emblem-text{font-family:var(--font-heading);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}
.vision-badge{position:absolute;background:var(--bg-white);padding:10px 18px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.06);font-family:var(--font-heading);font-size:.72rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:8px;animation:badgeFloat 5s ease-in-out infinite;z-index:2}
.vision-badge .badge-icon{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.7rem}
.vision-badge.b1{top:30px;left:-20px;animation-delay:0s}.vision-badge.b1 .badge-icon{background:var(--teal-pale);color:var(--teal)}
.vision-badge.b2{top:50px;right:-20px;animation-delay:1.5s}.vision-badge.b2 .badge-icon{background:var(--gold-pale);color:#c4b020}
.vision-badge.b3{bottom:60px;left:10px;animation-delay:3s}.vision-badge.b3 .badge-icon{background:rgba(17,159,143,.08);color:var(--teal)}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.vision-text .section-desc{margin-bottom:36px}
.vision-features{display:flex;flex-direction:column;gap:18px;margin-bottom:36px}
.vision-feature{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-radius:12px;transition:background .3s}
.vision-feature:hover{background:var(--bg-white)}
.vision-feature-icon{width:32px;height:32px;min-width:32px;border-radius:10px;background:linear-gradient(135deg,var(--teal),var(--teal-light));display:flex;align-items:center;justify-content:center;color:white;font-size:.7rem;margin-top:2px}
.vision-feature span{font-size:.86rem;color:var(--text-secondary);line-height:1.7}
.vision-feature strong{color:var(--dark);font-weight:600}

/* ========== ABOUT ========== */
#about{background:var(--bg-white)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.about-table{width:100%}
.about-row{display:flex;padding:18px 0;border-bottom:1px solid rgba(17,159,143,.06);gap:20px}
.about-row:first-child{border-top:1px solid rgba(17,159,143,.06)}
.about-label{font-family:var(--font-heading);font-size:.74rem;font-weight:600;letter-spacing:.1em;color:var(--teal);min-width:110px;white-space:nowrap}
.about-value{font-size:.88rem;font-weight:400;color:var(--text-primary);line-height:1.7}
.about-philosophy{padding:44px;border-radius:24px;background:linear-gradient(160deg,var(--teal-pale),var(--gold-pale));position:relative;overflow:hidden}
.about-philosophy::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:24px 24px 0 0}
.about-philosophy blockquote{font-family:var(--font-display);font-size:1.8rem;font-weight:300;font-style:italic;line-height:1.5;color:var(--dark);margin-bottom:20px}
.about-philosophy blockquote .teal{color:var(--teal)}
.about-philosophy p{font-size:.84rem;font-weight:400;color:var(--text-secondary);line-height:1.9}

/* ========== ACCESS ========== */
#access{background:var(--bg-main)}
.access-content{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.access-info h3{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--dark);margin-bottom:20px}
.access-address{font-size:.88rem;color:var(--text-secondary);line-height:2;margin-bottom:32px}
.access-routes{display:flex;flex-direction:column;gap:14px}
.access-route{display:flex;align-items:flex-start;gap:12px;font-size:.82rem;color:var(--text-secondary);line-height:1.6}
.access-route-badge{min-width:24px;height:24px;border-radius:8px;background:var(--teal-pale);display:flex;align-items:center;justify-content:center;margin-top:1px}
.access-route-badge svg{width:12px;height:12px;color:var(--teal)}
.access-map{border-radius:20px;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.06);aspect-ratio:4/3}
.access-map iframe{width:100%;height:100%;border:0}

/* ========== CONTACT CTA ========== */
#contact-cta{text-align:center;padding:120px 48px;background:var(--bg-white);position:relative;overflow:hidden}
.cta-shapes{position:absolute;inset:0;pointer-events:none}
.cta-shape{position:absolute;border-radius:50%;animation:ctaFloat 15s ease-in-out infinite}
.cta-shape.cs1{width:300px;height:300px;top:-80px;left:-80px;background:radial-gradient(circle,var(--teal-pale),transparent 70%)}
.cta-shape.cs2{width:250px;height:250px;bottom:-60px;right:-60px;background:radial-gradient(circle,var(--gold-pale),transparent 70%);animation-delay:4s}
.cta-shape.cs3{width:180px;height:180px;top:50%;right:20%;background:radial-gradient(circle,rgba(17,159,143,.04),transparent 70%);animation-delay:8s}
@keyframes ctaFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-20px) scale(1.05)}66%{transform:translate(-15px,15px) scale(.95)}}
.cta-content{position:relative;z-index:1}
.cta-content .section-label{justify-content:center}
.cta-title{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3.8rem);font-weight:300;font-style:italic;color:var(--dark);margin-bottom:16px}
.cta-desc{font-size:.9rem;font-weight:400;color:var(--text-secondary);max-width:440px;margin:0 auto 36px;line-height:2}

/* ========== FOOTER ========== */
footer.site-footer{padding:50px 48px 36px;background:var(--dark);display:flex;justify-content:space-between;align-items:flex-end;color:rgba(255,255,255,.5)}
.footer-left .footer-logo{font-family:var(--font-display);font-size:1.2rem;font-weight:300;letter-spacing:.12em;color:var(--teal);margin-bottom:10px}
.footer-left p{font-size:.7rem;letter-spacing:.04em}
.footer-right{display:flex;gap:28px}
.footer-right a{font-family:var(--font-heading);font-size:.68rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);transition:color .3s}
.footer-right a:hover{color:var(--teal)}

/* ========== PAGE HERO (Partner etc.) ========== */
.page-hero{padding:160px 48px 100px;text-align:center;position:relative;overflow:hidden;background:var(--bg-white)}
.page-hero-shapes{position:absolute;inset:0;pointer-events:none}
.ph-shape{position:absolute;border-radius:50%;animation:phFloat 20s ease-in-out infinite}
.ph-shape.ph1{width:350px;height:350px;top:-120px;right:-80px;background:radial-gradient(circle,var(--teal-pale),transparent 70%)}
.ph-shape.ph2{width:280px;height:280px;bottom:-80px;left:-60px;background:radial-gradient(circle,var(--gold-pale),transparent 70%);animation-delay:5s}
.ph-shape.ph3{width:200px;height:200px;top:40%;left:60%;background:radial-gradient(circle,rgba(17,159,143,.05),transparent 70%);animation-delay:10s}
@keyframes phFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-25px) scale(1.08)}66%{transform:translate(-20px,20px) scale(.92)}}
.page-hero-content{position:relative;z-index:1}
.page-hero-tag{font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:12px;background:var(--teal-pale);padding:6px 18px 6px 14px;border-radius:40px;margin-bottom:24px;opacity:0;animation:fadeUp2 .8s .2s forwards}
.page-hero-tag .tag-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:tagPulse 2s ease-in-out infinite}
.page-hero h1{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,4rem);font-weight:300;font-style:italic;color:var(--dark);line-height:1.15;margin-bottom:20px;opacity:0;animation:fadeUp2 .8s .35s forwards}
.page-hero h1 .teal{color:var(--teal);font-weight:500;font-style:normal}
.page-hero-desc{font-size:.95rem;color:var(--text-secondary);max-width:580px;margin:0 auto;line-height:2;opacity:0;animation:fadeUp2 .8s .5s forwards}
@keyframes fadeUp2{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* ========== PARTNER PAGE SECTIONS ========== */
#why{background:var(--bg-white)}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.why-card{padding:40px 32px;border-radius:20px;background:var(--bg-cream);border:1px solid var(--border-light);position:relative;overflow:hidden;transition:all .5s var(--ease-spring)}
.why-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(17,159,143,.08);border-color:rgba(17,159,143,.2)}
.why-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:20px 20px 0 0;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out-expo)}
.why-card:hover::before{transform:scaleX(1)}
.why-number{font-family:var(--font-display);font-size:3rem;font-weight:300;color:rgba(17,159,143,.1);line-height:1;margin-bottom:16px}
.why-card h3{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--dark);margin-bottom:12px}
.why-card p{font-size:.84rem;color:var(--text-secondary);line-height:1.9}

#fields{background:var(--bg-teal-tint)}
.fields-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.field-card{padding:36px 32px;border-radius:16px;background:var(--bg-white);border:1px solid var(--border-light);display:flex;align-items:flex-start;gap:20px;transition:all .4s var(--ease-spring)}
.field-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(17,159,143,.08)}
.field-icon{width:48px;height:48px;min-width:48px;border-radius:14px;background:linear-gradient(135deg,var(--teal-pale),rgba(17,159,143,.08));display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease-spring)}
.field-card:hover .field-icon{background:linear-gradient(135deg,var(--teal),var(--teal-light))}
.field-icon svg{width:22px;height:22px;color:var(--teal);transition:color .4s}
.field-card:hover .field-icon svg{color:white}
.field-info h3{font-family:var(--font-heading);font-size:.95rem;font-weight:600;color:var(--dark);margin-bottom:4px}
.field-info .field-en{font-family:var(--font-display);font-size:.72rem;font-style:italic;color:var(--teal);margin-bottom:8px;display:block}
.field-info p{font-size:.82rem;color:var(--text-secondary);line-height:1.8}

#flow{background:var(--bg-white)}
.flow-steps{display:flex;gap:0;position:relative;max-width:900px}
.flow-steps::before{content:'';position:absolute;top:32px;left:32px;right:32px;height:2px;background:linear-gradient(90deg,var(--teal-pale),var(--teal),var(--teal-pale));z-index:0}
.flow-step{flex:1;text-align:center;position:relative;z-index:1}
.flow-step-num{width:64px;height:64px;border-radius:50%;background:var(--bg-white);border:2px solid var(--teal);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.6rem;font-weight:300;color:var(--teal);margin:0 auto 20px;transition:all .4s var(--ease-spring)}
.flow-step:hover .flow-step-num{background:var(--teal);color:white;transform:scale(1.1)}
.flow-step h4{font-family:var(--font-heading);font-size:.85rem;font-weight:600;color:var(--dark);margin-bottom:6px}
.flow-step p{font-size:.78rem;color:var(--text-secondary);line-height:1.7;padding:0 8px}

#requirements{background:var(--bg-main)}
.req-box{max-width:800px;padding:48px;border-radius:24px;background:var(--bg-white);border:1px solid var(--border-light);box-shadow:0 8px 40px rgba(0,0,0,.03)}
.req-row{display:flex;padding:16px 0;border-bottom:1px solid rgba(17,159,143,.06);gap:20px;align-items:baseline}
.req-row:first-child{border-top:1px solid rgba(17,159,143,.06)}
.req-label{font-family:var(--font-heading);font-size:.74rem;font-weight:600;letter-spacing:.1em;color:var(--teal);min-width:140px;white-space:nowrap}
.req-value{font-size:.88rem;color:var(--text-primary);line-height:1.8}

#partner-cta{text-align:center;padding:100px 48px;background:var(--bg-white);position:relative;overflow:hidden}
.pcta-shapes{position:absolute;inset:0;pointer-events:none}
.pcta-shape{position:absolute;border-radius:50%;animation:ctaFloat 15s ease-in-out infinite}
.pcta-shape.pc1{width:300px;height:300px;top:-80px;left:-80px;background:radial-gradient(circle,var(--teal-pale),transparent 70%)}
.pcta-shape.pc2{width:250px;height:250px;bottom:-60px;right:-60px;background:radial-gradient(circle,var(--gold-pale),transparent 70%);animation-delay:4s}
.pcta-content{position:relative;z-index:1}
.pcta-title{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,3rem);font-weight:300;font-style:italic;color:var(--dark);margin-bottom:16px}
.pcta-desc{font-size:.9rem;color:var(--text-secondary);max-width:440px;margin:0 auto 32px;line-height:2}

/* ========== RESPONSIVE ========== */
@media(max-width:1024px){
  section{padding:100px 32px}nav.site-nav{padding:16px 24px}
  .service-grid{grid-template-columns:1fr}.about-grid,.vision-layout,.access-content{grid-template-columns:1fr}
  .stats-bar{grid-template-columns:1fr;gap:32px;padding:40px 20px}
  .stat-item+.stat-item{border-left:none;border-top:1px solid rgba(255,255,255,.15);padding-top:32px}
  .vision-visual{height:360px;margin-bottom:40px}.section-number{font-size:5rem;right:32px}
  footer.site-footer{flex-direction:column;gap:28px;align-items:flex-start}
  .why-grid,.fields-grid{grid-template-columns:1fr}
  .flow-steps{flex-direction:column;gap:24px}.flow-steps::before{display:none}
  .page-hero,.page-hero~section,#partner-cta{padding-left:32px;padding-right:32px}
}
@media(max-width:768px){
  section{padding:80px 20px}nav.site-nav{padding:14px 20px}
  .nav-links{display:none;position:fixed;inset:0;background:rgba(255,255,255,.98);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:28px;z-index:1000}
  .nav-links.open{display:flex}.nav-links a{font-size:.9rem;color:var(--dark)}
  .nav-cta{display:none}.nav-hamburger{display:flex}
  .nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
  .nav-hamburger.open span:nth-child(2){opacity:0}
  .nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}
  #hero{padding:0 20px;min-height:100svh}.hero-content{padding-top:100px}.hero-scroll{display:none}
  .service-card{padding:36px 28px}.about-row,.req-row{flex-direction:column;gap:4px}.about-label,.req-label{min-width:unset}
  .about-philosophy{padding:28px 22px}.about-philosophy blockquote{font-size:1.4rem}
  .vision-visual{height:280px}.vision-badge{display:none}
  .hero-cta-group{flex-direction:column;align-items:flex-start}
  .stats-bar{border-radius:16px}
  footer.site-footer{padding:36px 20px 28px}.access-content{gap:32px}
  .page-hero{padding:120px 20px 60px}
  .req-box{padding:28px 22px}
}
