
:root{--ink:#26383f;--muted:#5d7077;--teal:#3fa1a9;--teal-dark:#2f8e96;--teal-soft:#eaf8fa;--cream:#fff8eb;--peach:#fff0ea;--line:#dcecef;--bg:#fbfdfd;--shadow:0 18px 45px rgba(73,118,126,.12);--radius:24px;}
*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:#fff;line-height:1.9}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,92%);margin-inline:auto}.narrow{width:min(880px,92%)}.center{text-align:center}.mt{margin-top:32px}.section{padding:96px 0}.section-label{font-size:13px;letter-spacing:.22em;color:var(--teal);font-weight:700;margin:0 0 16px}.section h2,.page-hero h1{font-family:'Noto Serif JP',serif;font-weight:600;line-height:1.45;letter-spacing:.06em}.section h2{font-size:clamp(28px,3vw,40px);margin:0 0 24px}.section-heading{margin-bottom:44px}.section-heading p:last-child{color:var(--muted);margin:0}.bg-soft{background:linear-gradient(180deg,#f5fbfc 0%,#fff 100%)}.rounded-img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:100%;object-fit:cover}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(215,235,238,.72)}.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between}.site-logo{display:flex;flex-direction:column;line-height:1.15;font-weight:700;letter-spacing:.04em}.site-logo small{font-size:13px;letter-spacing:.28em;font-weight:600;margin-top:5px}.site-nav{display:flex;align-items:center;gap:26px;font-weight:600;font-size:15px}.site-nav a{color:#30444b}.site-nav a:hover{color:var(--teal)}.nav-contact{border:1px solid #b8dde3;border-radius:999px;padding:10px 22px;color:var(--teal)!important}.menu-toggle{display:none;background:none;border:0;font-size:28px;color:var(--ink)}.home-hero{position:relative;min-height:690px;display:flex;align-items:center;overflow:hidden;background:#fff}.hero-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 36%,rgba(255,255,255,.46) 58%,rgba(255,255,255,.04) 78%),url('images/hero-bg.jpg');background-size:cover;background-position:center right;background-repeat:no-repeat;z-index:0}.home-hero:after{content:"";position:absolute;left:-4%;right:-4%;bottom:-1px;height:105px;background:#fff;clip-path:ellipse(70% 70% at 50% 100%)}.hero-content{position:relative;z-index:1;padding:92px 0 120px}.hero-content h1{font-family:'Noto Serif JP',serif;font-size:clamp(36px,4.25vw,56px);line-height:1.5;letter-spacing:.06em;margin:0 0 26px;max-width:760px;white-space:normal}.hero-lead{max-width:620px;color:#41555d;font-size:17px}.hero-tags,.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.hero-tags a{display:inline-flex;align-items:center;border:1px solid var(--line);background:rgba(255,255,255,.86);border-radius:12px;padding:10px 18px;font-size:13px;font-weight:700;color:#4b5f66;box-shadow:0 10px 20px rgba(60,105,115,.06)}.hero-tags a:nth-child(1){background:#fff3ed}.hero-tags a:nth-child(2){background:#fff9df}.hero-tags a:nth-child(3){background:#eaf8fa}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:14px 30px;font-weight:700;border:1px solid transparent;transition:.2s ease}.btn:after{content:'→'}.btn.primary{background:linear-gradient(135deg,var(--teal),#61b7bf);color:#fff;box-shadow:0 12px 28px rgba(63,161,169,.28)}.btn.secondary{background:rgba(255,255,255,.88);color:var(--teal-dark);border-color:#b9dfe5}.btn:hover{transform:translateY(-2px)}.intro-section{padding-top:80px}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.business-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.business-card>img{width:100%;height:235px;object-fit:cover}.business-card-body{padding:28px}.brand-mark{width:92px;height:auto;object-fit:contain;margin-bottom:12px}.brand-mark.brass{width:140px}.icon-badge{width:46px;height:46px;border-radius:14px;background:var(--teal-soft);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:12px}.business-card h3{font-size:26px;letter-spacing:.08em;margin:0 0 6px}.business-subtitle{color:var(--teal-dark);font-weight:700;margin:0 0 16px}.text-link{display:inline-flex;margin-top:12px;color:var(--teal-dark);font-weight:700}.text-link:after{content:' →';margin-left:.4em}.value-band{background:linear-gradient(135deg,#eef9fb 0%,#fff 70%);position:relative}.split{display:grid;grid-template-columns:.8fr 1.6fr;gap:60px}.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.strength-item,.feature-grid article,.media-grid article{padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff}.strength-item span,.feature-grid span{display:inline-flex;width:38px;height:38px;background:var(--teal);color:#fff;align-items:center;justify-content:center;border-radius:50%;font-weight:800;margin-bottom:16px}.strength-item h3,.feature-grid h3,.media-grid h3{margin:0 0 10px;font-size:20px}.message-card{display:grid;grid-template-columns:1.35fr .75fr;gap:46px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:30px;padding:46px;box-shadow:var(--shadow)}.message-card>img{border-radius:22px;width:100%;height:440px;object-fit:cover}.signature{text-align:right;font-weight:700;margin-top:24px}.cta-card{display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(135deg,#eef9fb,#fff);border:1px solid var(--line);border-radius:30px;padding:42px 50px}.site-footer{background:#f4fafb;border-top:1px solid var(--line);padding:48px 0 20px}.footer-grid{display:flex;justify-content:space-between;gap:30px}.footer-logo{display:flex;flex-direction:column;line-height:1.4;margin-bottom:12px}.footer-logo span{letter-spacing:.22em;font-size:12px}.footer-links{display:flex;gap:18px;flex-wrap:wrap;font-weight:700}.copyright{text-align:center;color:#7c8d93;font-size:13px;margin:30px 0 0}.page-hero{padding:90px 0;background:linear-gradient(135deg,#fff 0%,#f0fbfc 100%)}.page-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.page-hero h1{font-size:clamp(34px,4vw,54px);margin:0 0 18px}.page-lead{font-size:20px;font-weight:700;color:var(--teal-dark)}.page-hero img{border-radius:28px;box-shadow:var(--shadow);width:100%;height:420px;object-fit:cover}.soft-art{background:linear-gradient(135deg,#fff 0%,#fff9f4 60%,#eefafa 100%)}.soft-music{background:linear-gradient(135deg,#fff 0%,#f5f8fa 60%,#fff7e8 100%)}.soft-ai{background:linear-gradient(135deg,#fff 0%,#eef9fb 100%)}.simple-page{padding:78px 0}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.two-column.reverse{grid-template-columns:1fr 1fr}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.feature-grid.four{grid-template-columns:repeat(4,1fr)}.scene-grid,.product-grid,.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.product-grid{grid-template-columns:repeat(4,1fr)}.scene-grid article,.product-grid article,.case-grid article{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 32px rgba(73,118,126,.08)}.scene-grid img,.product-grid img,.case-grid img{height:220px;width:100%;object-fit:cover}.product-grid img{height:170px}.scene-grid h3,.product-grid h3,.case-grid h3{font-size:20px;margin:20px 22px 8px}.scene-grid p,.product-grid p,.case-grid p{margin:0 22px 24px;color:var(--muted)}.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.photo-row img{border-radius:18px;height:220px;width:100%;object-fit:cover;box-shadow:0 10px 24px rgba(73,118,126,.08)}.music-message>img{height:360px;object-position:center top}.check-list{list-style:none;padding:0;margin:0 0 24px}.check-list li{position:relative;padding-left:30px;margin:10px 0}.check-list li:before{content:'✓';position:absolute;left:0;top:0;color:var(--teal);font-weight:800}.flow-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.flow-list div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.flow-list span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--teal);color:#fff;border-radius:50%;font-weight:800}.company-table{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden}.company-table th,.company-table td{border-bottom:1px solid var(--line);padding:14px 16px;text-align:left;vertical-align:top}.company-table th{width:150px;color:var(--teal-dark);background:#f4fbfc}.timeline{max-width:900px;margin:auto;border-left:3px solid #c9e8ed}.timeline div{position:relative;margin:0 0 26px 28px;padding:2px 0 0}.timeline div:before{content:'';position:absolute;left:-38px;top:8px;width:16px;height:16px;background:var(--teal);border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 2px #c9e8ed}.timeline time{font-weight:800;color:var(--teal-dark)}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.contact-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:38px}.contact-form{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:28px;padding:36px}.contact-form label{display:block;font-weight:700;margin-bottom:18px}.contact-form span{font-size:12px;color:#fff;background:var(--teal);border-radius:999px;padding:3px 8px;margin-left:6px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;margin-top:8px;border:1px solid #ccdfe4;border-radius:12px;padding:12px 14px;font:inherit;background:#fff}.contact-aside{display:flex;flex-direction:column;gap:20px}.info-card{background:#f4fbfc;border:1px solid var(--line);border-radius:22px;padding:28px}.info-card h2{font-size:20px;margin-top:0}.form-success,.form-error{padding:14px 18px;border-radius:12px;font-weight:700}.form-success{background:#eaf8f1;color:#20764a}.form-error{background:#fff0f0;color:#a33}.contact-hero{background:#f7fcfd}@media(max-width:980px){.site-nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:22px 6%;gap:18px;border-bottom:1px solid var(--line)}.site-nav.is-open{display:flex}.menu-toggle{display:block}.home-hero{position:relative;min-height:690px;display:flex;align-items:center;overflow:hidden;background:#fff}.hero-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 36%,rgba(255,255,255,.46) 58%,rgba(255,255,255,.04) 78%),url('images/hero-bg.jpg');background-size:cover;background-position:center right;background-repeat:no-repeat;z-index:0}.hero-content{position:relative;z-index:1;padding:92px 0 120px}.hero-content h1{font-family:'Noto Serif JP',serif;font-size:clamp(36px,4.25vw,56px);line-height:1.5;letter-spacing:.06em;margin:0 0 26px;max-width:760px;white-space:normal}.business-grid,.strength-grid,.feature-grid,.feature-grid.four,.scene-grid,.product-grid,.case-grid,.media-grid,.flow-list{grid-template-columns:1fr 1fr}.split,.message-card,.two-column,.page-hero-grid,.contact-layout{grid-template-columns:1fr}.message-card>img,.page-hero img{height:auto}.cta-card,.footer-grid{flex-direction:column;align-items:flex-start}.photo-row{grid-template-columns:1fr}.photo-row img{height:auto}}@media(max-width:640px){.section{padding:64px 0}.header-inner{height:72px}.site-nav{top:72px}.site-logo span{font-size:15px}.site-logo small{font-size:11px}.hero-content{position:relative;z-index:1;padding:92px 0 120px}.hero-tags,.hero-actions{flex-direction:column;align-items:stretch}.btn{width:100%}.business-grid,.strength-grid,.feature-grid,.feature-grid.four,.scene-grid,.product-grid,.case-grid,.media-grid,.flow-list{grid-template-columns:1fr}.business-card>img,.scene-grid img,.case-grid img{height:210px}.page-hero{padding:64px 0}.page-hero h1{font-size:32px}.message-card,.contact-form,.cta-card{padding:26px}.company-table th,.company-table td{display:block;width:100%}.company-table th{border-bottom:0}.company-table td{padding-top:0}.footer-links{flex-direction:column}.product-grid img{height:190px}}

/* v12 top page revisions */
.mission-section{padding-top:76px;background:#fff}
.mission-statement{font-family:'Noto Serif JP',serif;font-size:clamp(22px,2.6vw,34px);line-height:2.05;letter-spacing:.06em;color:#2c4048;margin:0 auto;max-width:860px}
.business-brand-row{display:flex;align-items:center;gap:16px;margin-bottom:12px;min-height:54px}
.business-brand-row span{display:inline-flex;align-items:center;border:1px solid var(--line);background:#f8fcfd;border-radius:999px;padding:7px 12px;color:var(--teal-dark);font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.business-brand-row .brand-mark{margin-bottom:0;max-height:48px;object-fit:contain}
.business-brand-row .brand-mark.brass{width:116px;max-height:44px}
.business-brand-row.ai-row .icon-badge{margin-bottom:0;flex:0 0 auto}
.value-band{background:linear-gradient(135deg,#eef9fb 0%,#ffffff 68%);position:relative;overflow:hidden}
.value-band:before,.value-band:after{content:"";position:absolute;border-radius:50%;background:rgba(89,180,189,.08)}
.value-band:before{width:240px;height:240px;left:-90px;top:40px}.value-band:after{width:300px;height:300px;right:-110px;bottom:-110px}
.value-catch{font-family:'Noto Serif JP',serif;font-size:clamp(22px,2.5vw,32px);font-weight:600;letter-spacing:.05em;color:#2c4048;margin:0 0 24px}
.strengths-section{background:linear-gradient(180deg,#fff 0%,#f6fbfc 100%)}
.strength-lead{font-size:18px;color:#526970;margin-top:-8px}.strength-cards{grid-template-columns:repeat(3,1fr)}
.strength-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px 30px;box-shadow:0 16px 38px rgba(73,118,126,.08);min-height:245px}
.strength-no{position:absolute;right:22px;top:8px;font-size:64px;font-weight:800;color:rgba(63,161,169,.11);line-height:1}
.strength-icon{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,#e8f8fa,#fff);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:800;margin-bottom:18px;border:1px solid #cce9ee}
.strength-card h3{font-size:20px;margin:0 0 10px}.strength-card p{margin:0;color:var(--muted)}
.company-link-section{padding-top:72px;padding-bottom:28px;background:#fff}.company-link-card{background:#fff;border:1px solid var(--line)}

@media(max-width:980px){.strength-cards{grid-template-columns:1fr 1fr}.mission-statement br{display:none}.business-brand-row{align-items:flex-start;flex-direction:column;gap:8px}.business-brand-row span{white-space:normal}.hero-content h1{white-space:normal}}
@media(max-width:640px){.mission-statement{font-size:21px;line-height:1.9}.strength-cards{grid-template-columns:1fr}.value-catch{font-size:22px}.home-hero:after{height:70px}}

/* v13 top refinements */
.hero-bg{
  background-image:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.94) 34%,rgba(255,255,255,.52) 54%,rgba(255,255,255,.08) 76%),url('images/hero-bg.jpg');
  background-size:cover;
  background-position:center right;
}
.hero-content h1{
  font-size:clamp(38px,4.05vw,56px);
  line-height:1.48;
  max-width:760px;
}
.hero-tags a{display:inline-flex;align-items:center;gap:8px;}
.hero-tag-icon{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;font-size:12px;font-weight:800;line-height:1;background:rgba(255,255,255,.72)}
.hero-tag-icon.art{color:#e8957d}.hero-tag-icon.music{color:#d6a735}.hero-tag-icon.ai{color:#48aeb9}
.business-brand-row{gap:18px;min-height:60px;margin-bottom:16px}
.business-brand-row span{font-size:14px;padding:9px 16px}
.business-brand-row .brand-mark{max-height:58px;width:auto}
.business-brand-row .brand-mark.brass{width:132px;max-height:54px}
.business-brand-row .icon-badge{width:58px;height:58px;font-size:22px}
.business-subtitle{font-size:18px;line-height:1.85}
.value-band .narrow{width:min(980px,92%)}
.value-catch{white-space:nowrap;font-size:clamp(22px,2.25vw,30px);line-height:1.8;margin-bottom:26px}
.value-band p:not(.section-label):not(.value-catch){font-size:18px;line-height:2.2;max-width:900px;margin-left:auto;margin-right:auto}
.company-link-section{display:none!important}

@media(max-width:980px){
  .hero-content h1{font-size:clamp(34px,7vw,48px);max-width:680px;}
  .value-catch{white-space:normal;}
  .business-brand-row span{font-size:13px}
}
@media(max-width:640px){
  .hero-bg{background-position:60% center;}
  .hero-content h1{font-size:32px;line-height:1.55;}
  .business-brand-row{min-height:auto}
  .business-brand-row .brand-mark{max-height:52px}
  .business-brand-row .brand-mark.brass{width:124px}
  .business-brand-row .icon-badge{width:52px;height:52px}
  .value-band p:not(.section-label):not(.value-catch){font-size:15px;line-height:2}
}


/* v14 top refinements */
.hero-bg{
  background-image:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 34%,rgba(255,255,255,.56) 55%,rgba(255,255,255,.10) 78%),url('images/hero-bg.jpg') !important;
  background-size:auto 100% !important;
  background-position:right top !important;
  background-repeat:no-repeat !important;
}
.home-hero{min-height:680px;}
.hero-content{padding:88px 0 118px;}
.business-subtitle{
  font-size:16.5px !important;
  line-height:1.65 !important;
  white-space:nowrap;
  letter-spacing:.02em;
}
.business-card-body > p:not(.business-subtitle){font-size:15.5px;line-height:2.05;}
.strengths-section{padding-top:104px;padding-bottom:104px;}
.strengths-section .section-heading{margin-bottom:54px;}
.strengths-section .section-heading h2{
  font-size:clamp(34px,3.8vw,52px);
  margin-bottom:22px;
}
.strength-lead{font-size:20px;letter-spacing:.04em;color:#4f6870;}
.strength-card{
  min-height:218px;
  padding:32px 34px 30px;
  border-radius:28px;
  box-shadow:0 20px 48px rgba(73,118,126,.12);
}
.strength-no{
  right:26px;
  top:0px;
  font-size:104px;
  color:rgba(63,161,169,.16);
  letter-spacing:-.06em;
}
.strength-icon{
  width:62px;
  height:62px;
  border-radius:20px;
  font-size:28px;
  margin-bottom:20px;
  position:relative;
  z-index:1;
}
.strength-card h3{
  position:relative;
  z-index:1;
  font-size:23px;
  line-height:1.55;
  font-weight:800;
  margin-bottom:14px;
}
.strength-card p{
  position:relative;
  z-index:1;
  font-size:16px;
  line-height:1.95;
}

@media(max-width:1100px){
  .business-subtitle{font-size:15.2px!important;letter-spacing:0;}
  .business-card-body{padding:24px;}
}
@media(max-width:980px){
  .hero-bg{background-size:auto 88% !important;background-position:right top !important;}
  .business-subtitle{white-space:normal;font-size:17px!important;}
  .strengths-section .section-heading h2{font-size:40px;}
}
@media(max-width:640px){
  .hero-bg{background-size:auto 78% !important;background-position:68% top !important;}
  .home-hero{min-height:690px;}
  .strengths-section{padding-top:72px;padding-bottom:72px;}
  .strength-no{font-size:86px;right:22px;}
  .strength-card h3{font-size:21px;}
}


/* v15 refinements */
.site-logo span{
  order:1;
  font-size:20px;
  font-weight:800;
  letter-spacing:.18em;
  line-height:1.05;
}
.site-logo small{
  order:2;
  font-size:12px;
  font-weight:500;
  letter-spacing:.08em;
  margin-top:7px;
  color:#53656c;
}
.hero-bg{
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.995) 0%,rgba(255,255,255,.96) 36%,rgba(255,255,255,.72) 55%,rgba(255,255,255,.30) 72%,rgba(255,255,255,.08) 100%),
    radial-gradient(circle at 92% 92%, rgba(120,214,226,.50) 0%, rgba(120,214,226,.30) 23%, rgba(255,255,255,0) 57%),
    url('images/hero-bg.jpg') !important;
  background-size:cover, cover, auto 90% !important;
  background-position:center, center, right top !important;
  background-repeat:no-repeat !important;
}
.home-hero{min-height:680px;}
.business-brand-row .brand-mark.brass{
  width:152px !important;
  max-height:64px !important;
}
.business-subtitle{
  font-size:16px !important;
  line-height:1.65 !important;
  white-space:nowrap;
  letter-spacing:0;
}
@media(max-width:1200px){
  .business-subtitle{font-size:15px!important;}
  .business-card-body{padding:24px 22px;}
  .business-brand-row .brand-mark.brass{width:142px!important;}
}
@media(max-width:980px){
  .hero-bg{
    background-size:cover, cover, auto 82% !important;
    background-position:center, center, right top !important;
  }
  .site-logo span{font-size:18px;}
  .site-logo small{font-size:11px;}
  .business-subtitle{white-space:normal;font-size:17px!important;}
}
@media(max-width:640px){
  .hero-bg{
    background-size:cover, cover, auto 72% !important;
    background-position:center, center, 64% top !important;
  }
  .site-logo span{font-size:17px;letter-spacing:.12em;}
  .site-logo small{font-size:10px;}
}

/* v16: hero image restored to v14 while keeping v15 text/menu/business updates */
.hero-bg{
  background-image:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 34%,rgba(255,255,255,.56) 55%,rgba(255,255,255,.10) 78%),url('images/hero-bg.jpg') !important;
  background-size:auto 100% !important;
  background-position:right top !important;
  background-repeat:no-repeat !important;
}
.home-hero{min-height:680px !important;}
.hero-content{padding:88px 0 118px !important;}
@media(max-width:980px){
  .hero-bg{
    background-size:auto 84% !important;
    background-position:right top !important;
  }
}
@media(max-width:640px){
  .hero-bg{
    background-size:auto 72% !important;
    background-position:62% top !important;
  }
}

/* v17: hero globe size/position unchanged; add only a soft bottom-right aqua gradient */
.home-hero{
  position:relative;
  overflow:hidden;
}
.hero-bg{
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 34%,rgba(255,255,255,.56) 55%,rgba(255,255,255,.10) 78%),
    url('images/hero-bg.jpg') !important;
  background-size:auto 100% !important;
  background-position:right top !important;
  background-repeat:no-repeat !important;
  z-index:0;
}
.home-hero::before{
  content:"";
  position:absolute;
  right:-6%;
  bottom:0;
  width:60%;
  height:42%;
  background:radial-gradient(
    ellipse at 100% 100%,
    rgba(106,211,226,.40) 0%,
    rgba(174,234,242,.24) 36%,
    rgba(235,250,252,.10) 56%,
    rgba(255,255,255,0) 78%
  );
  pointer-events:none;
  z-index:1;
}
.home-hero::after{
  z-index:2;
}
.hero-content{
  position:relative;
  z-index:3;
}
@media(max-width:980px){
  .hero-bg{
    background-size:auto 84% !important;
    background-position:right top !important;
  }
  .home-hero::before{
    width:78%;
    height:38%;
    right:-18%;
  }
}
@media(max-width:640px){
  .hero-bg{
    background-size:auto 72% !important;
    background-position:62% top !important;
  }
  .home-hero::before{
    width:100%;
    height:30%;
    right:-32%;
    opacity:.75;
  }
}

/* AI page additions: value strength cards / services / works / vertical flow / concern cards */
.page-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

/* 代表者ネームプレート */
.about-name{
  display:flex;flex-direction:column;
  gap:4px;
  align-items:flex-end;
  text-align:right;
  padding:0 6px;
  margin-top:-4px;
}
.about-name-role{
  font-size:11px;
  letter-spacing:.18em;
  color:var(--teal-dark);
  font-weight:800;
  font-family:'Noto Serif JP',serif;
  line-height:1;
}
.about-name-name{
  font-size:22px;
  color:#26383f;
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.3;
}

/* OUR VALUE - 3つのキーワードバッジで強調 */
.strength-keywords{
  display:flex;align-items:center;justify-content:center;
  gap:14px;flex-wrap:wrap;
  margin-top:20px;
}
.strength-keywords .kw{
  display:inline-block;
  padding:10px 22px;
  border-radius:999px;
  font-weight:800;
  font-size:15.5px;
  letter-spacing:.08em;
  font-family:'Noto Sans JP',sans-serif;
  box-shadow:0 6px 16px rgba(73,118,126,.10);
}
.strength-keywords .kw-1{
  background:linear-gradient(135deg,#eaf8fa,#fff);
  color:var(--teal-dark);
  border:1px solid #cce9ee;
}
.strength-keywords .kw-2{
  background:linear-gradient(135deg,#fdf1ea,#fff);
  color:#c97142;
  border:1px solid #f3cfb6;
}
.strength-keywords .kw-3{
  background:linear-gradient(135deg,#fdf6e3,#fff);
  color:#a07b1c;
  border:1px solid #ecd6a4;
}
.strength-keywords .kw-times{
  color:#8b9aa1;
  font-weight:700;
  font-size:15px;
}
.strength-lead{font-size:18px}

/* サービス6カード - 3色アクセント(tone-1: ティール / tone-2: コーラル / tone-3: ゴールド) */
.service-card.tone-1 .service-icon{
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border-color:#cce9ee;
  color:var(--teal-dark);
}
.service-card.tone-1 .service-num{color:rgba(63,161,169,.22)}
.service-card.tone-1 ul li:before{background:var(--teal)}
.service-card.tone-1{border-top:3px solid var(--teal)}

.service-card.tone-2 .service-icon{
  background:linear-gradient(135deg,#fdf1ea,#fff);
  border-color:#f3cfb6;
  color:#c97142;
}
.service-card.tone-2 .service-num{color:rgba(224,138,94,.24)}
.service-card.tone-2 ul li:before{background:#e08a5e}
.service-card.tone-2{border-top:3px solid #e08a5e}

.service-card.tone-3 .service-icon{
  background:linear-gradient(135deg,#fdf6e3,#fff);
  border-color:#ecd6a4;
  color:#a07b1c;
}
.service-card.tone-3 .service-num{color:rgba(214,167,53,.26)}
.service-card.tone-3 ul li:before{background:#d6a735}
.service-card.tone-3{border-top:3px solid #d6a735}

/* 大切にしていること3カード - 3色アクセント */
.value-cards .strength-card.tone-1 .strength-icon{
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border-color:#cce9ee;
  color:var(--teal-dark);
}
.value-cards .strength-card.tone-1 .strength-no{color:rgba(63,161,169,.18)}
.value-cards .strength-card.tone-1{border-top:4px solid var(--teal)}

.value-cards .strength-card.tone-2 .strength-icon{
  background:linear-gradient(135deg,#fdf1ea,#fff);
  border-color:#f3cfb6;
  color:#c97142;
}
.value-cards .strength-card.tone-2 .strength-no{color:rgba(224,138,94,.20)}
.value-cards .strength-card.tone-2{border-top:4px solid #e08a5e}

.value-cards .strength-card.tone-3 .strength-icon{
  background:linear-gradient(135deg,#fdf6e3,#fff);
  border-color:#ecd6a4;
  color:#a07b1c;
}
.value-cards .strength-card.tone-3 .strength-no{color:rgba(214,167,53,.20)}
.value-cards .strength-card.tone-3{border-top:4px solid #d6a735}

@media(max-width:640px){
  .strength-keywords .kw{padding:8px 16px;font-size:14px}
  .strength-keywords .kw-times{font-size:13px}
}

/* AI開発のメリット(merit-section) */
/* 注:.value-cards .strength-card(L832)を上書きするため、複合セレクタで優先度を上げる */
.merit-section{background:linear-gradient(180deg,#f5fbfc 0%,#fff 100%);padding:96px 0}
.value-cards.merit-cards .strength-card{padding:240px 30px 32px;overflow:hidden}
.value-cards.merit-cards .merit-photo{position:absolute;top:60px;left:14px;right:14px;width:calc(100% - 28px);height:170px;object-fit:contain;display:block;z-index:1}
.value-cards.merit-cards .strength-card h3{font-size:26px;line-height:1.5;margin-bottom:18px;letter-spacing:.01em}
.value-cards.merit-cards .strength-no{z-index:3;top:14px;bottom:auto;right:26px;font-size:72px;line-height:.85;pointer-events:none}
@media(max-width:980px){
  .value-cards.merit-cards .strength-card{padding:200px 28px 28px}
  .value-cards.merit-cards .merit-photo{top:50px;height:140px}
  .value-cards.merit-cards .strength-card h3{font-size:24px}
  .value-cards.merit-cards .strength-no{font-size:60px;top:12px;right:22px}
}
@media(max-width:640px){
  .value-cards.merit-cards .strength-card{padding:178px 22px 24px}
  .value-cards.merit-cards .merit-photo{top:40px;height:120px}
  .value-cards.merit-cards .strength-card h3{font-size:22px}
  .value-cards.merit-cards .strength-no{font-size:76px;top:8px;right:18px}
}

/* 「こんな経営者の方に」3カード(target-section) */
.target-section{background:linear-gradient(180deg,#fff 0%,#f5fbfc 100%);padding:96px 0}
.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.target-card{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:48px 34px 34px;
  box-shadow:0 16px 38px rgba(73,118,126,.10);
  display:flex;flex-direction:column;
  overflow:hidden;
  transition:.2s ease;
}
.target-card:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 52px rgba(73,118,126,.16);
}
.target-card:before{
  content:"";
  position:absolute;left:0;top:0;
  width:6px;height:100%;
  background:linear-gradient(180deg,var(--teal),var(--teal-dark));
}
.target-quote{
  position:absolute;
  top:18px;right:30px;
  font-family:'Noto Serif JP',serif;
  font-size:110px;font-weight:700;
  color:rgba(63,161,169,.12);
  line-height:.6;
  pointer-events:none;
  z-index:0;
}
.target-head{
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  margin-bottom:18px;
  position:relative;z-index:1;
}
.target-meta{
  display:flex;align-items:center;gap:14px;
  width:100%;
}
.target-icon{
  flex:0 0 auto;
  width:56px;height:56px;
  border-radius:16px;
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border:1px solid #cce9ee;
  color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;
}
.target-icon svg{width:30px;height:30px}
.target-label{
  display:flex;flex-direction:column;
  gap:3px;
  flex:1 1 auto;
  min-width:0;
}
.target-no{
  font-family:'Noto Serif JP',serif;
  font-size:11px;
  letter-spacing:.22em;
  font-weight:800;
  color:var(--teal-dark);
  line-height:1;
}
.target-cat{
  font-size:14px;
  font-weight:700;
  color:#26383f;
  letter-spacing:.04em;
  line-height:1.4;
}
.target-card h3{
  margin:0;
  font-size:19px;line-height:1.6;
  color:#26383f;
  font-family:'Noto Serif JP',serif;
  font-weight:700;
  letter-spacing:.04em;
  word-break:keep-all;
  overflow-wrap:break-word;
  line-break:strict;
}
.target-card p{
  margin:0;
  font-size:15.5px;line-height:1.95;
  color:#3e535b;
  position:relative;z-index:1;
}

@media(max-width:1100px){
  .target-grid{grid-template-columns:1fr;max-width:760px;margin:0 auto}
  .target-card{padding:40px 32px 32px}
  .target-card h3 br{display:none}
}
@media(max-width:640px){
  .target-section{padding:72px 0}
  .target-card{padding:36px 24px 24px}
  .target-card h3{font-size:17.5px}
  .target-quote{font-size:88px;top:12px;right:22px}
}

/* target-card 写真(absolute positioningで確実に上端ピッタリに) */
.target-card{padding:232px 34px 34px}
.target-photo{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
  background:#eef4f6;
}
.target-card:before{z-index:2}
.target-card .target-quote{top:228px;right:24px;font-size:96px;z-index:2}

/* flow-step 写真(badge と content の間に正方形) */
.flow-photo{
  flex:0 0 auto;
  width:140px;
  height:140px;
  border-radius:18px;
  object-fit:cover;
  box-shadow:0 14px 30px rgba(73,118,126,.14);
  border:3px solid #fff;
  margin-top:-9px;
}

@media(max-width:1100px){
  .target-card{padding:222px 32px 32px}
  .target-card .target-quote{top:218px}
}
@media(max-width:980px){
  .flow-photo{width:100px;height:100px;margin-top:0;border-radius:14px}
}
@media(max-width:640px){
  .target-card{padding:200px 24px 24px}
  .target-photo{height:180px}
  .target-card .target-quote{top:188px;font-size:80px;right:18px}
  .flow-photo{width:78px;height:78px;border-radius:12px}
}

/* target-card 3色アクセント(tone-1: ティール / tone-2: コーラル / tone-3: ゴールド) */
.target-card.tone-1:before{background:linear-gradient(180deg,#3fa1a9,#2f8e96)}
.target-card.tone-1 .target-icon{background:linear-gradient(135deg,#eaf8fa,#fff);border-color:#cce9ee;color:var(--teal-dark)}
.target-card.tone-1 .target-quote{color:rgba(63,161,169,.13)}
.target-card.tone-1 .target-no{color:var(--teal-dark)}

.target-card.tone-2:before{background:linear-gradient(180deg,#e8a37d,#cc7d52)}
.target-card.tone-2 .target-icon{background:linear-gradient(135deg,#fdf1ea,#fff);border-color:#f3cfb6;color:#c97142}
.target-card.tone-2 .target-quote{color:rgba(224,138,94,.16)}
.target-card.tone-2 .target-no{color:#c97142}

.target-card.tone-3:before{background:linear-gradient(180deg,#d6a735,#b88a1a)}
.target-card.tone-3 .target-icon{background:linear-gradient(135deg,#fdf6e3,#fff);border-color:#ecd6a4;color:#a07b1c}
.target-card.tone-3 .target-quote{color:rgba(214,167,53,.18)}
.target-card.tone-3 .target-no{color:#a07b1c}

/* 「私たちについて」セクション - 代表者写真+三豊市風景 */
.about-section .two-column{
  grid-template-columns:1.5fr .9fr;
  gap:56px;
  align-items:center;
}
.about-photos{
  display:flex;
  flex-direction:column;
  gap:18px;
  margin-left:auto;
  max-width:360px;
  width:100%;
}
.about-photos > img{
  width:100%;
  height:auto;
  border-radius:24px;
  box-shadow:0 14px 32px rgba(73,118,126,.12);
  display:block;
}
.about-photos > img.representative-photo{
  aspect-ratio:5/4;
  object-fit:cover;
  object-position:center 30%;
}

/* AI事業:できること(WHAT WE DO)セクション */
.dekiru-section{
  background:linear-gradient(180deg,#fff 0%,#f0f9fa 60%,#eaf5f7 100%);
  position:relative;
  overflow:hidden;
}
.dekiru-section:before,
.dekiru-section:after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.dekiru-section:before{
  width:320px;
  height:320px;
  left:-110px;
  top:80px;
  background:radial-gradient(circle,rgba(63,161,169,.08) 0%,transparent 70%);
}
.dekiru-section:after{
  width:380px;
  height:380px;
  right:-150px;
  bottom:-150px;
  background:radial-gradient(circle,rgba(89,180,189,.10) 0%,transparent 70%);
}
.dekiru-section .container{
  position:relative;
  z-index:1;
}
.dekiru-lead{
  max-width:880px;
  margin:0 auto 48px;
  text-align:left;
}
.dekiru-lead p{
  font-size:16px;
  line-height:2;
  color:var(--ink);
  margin:0 0 16px;
}
.dekiru-lead p:last-child{margin-bottom:0}
.dekiru-keyword{
  font-weight:800;
  padding:0 4px;
  background:linear-gradient(transparent 62%,rgba(255,225,100,.6) 62%);
}

/* AI事業:ヒーローのサブコピー */
.hero-subcopy{
  font-size:19px;
  font-weight:700;
  color:#1d3035;
  line-height:1.85;
  margin:0 0 22px;
  letter-spacing:.02em;
}


/* トップページ:ヒーロー背景画像 */
.hero-photo{
  position:absolute;
  inset:0;
  z-index:0;
  background-size:auto 160%;
  background-position:75% 48%;
  background-repeat:no-repeat;
  background-color:#fff;
  animation:heroIntro 6s ease-in-out 1 both;
  will-change:transform;
}
@keyframes heroIntro{
  0%   {transform:scale(1);}
  100% {transform:scale(1.05);}
}
@media (prefers-reduced-motion: reduce){
  .hero-photo{animation:none;}
}
@media(max-width:640px){
  /* スマホではリード文を非表示 */
  .hero-lead{display:none !important;}
  /* 上の空白を詰める */
  .home-hero .hero-content{padding:24px 0 50px !important;}
  /* AI/ITボタンから下を少し下げる */
  .home-hero .hero-tags{margin-top:60px !important;}
  /* キャッチコピーのフォント・字間を調整 */
  .hero-content h1{font-size:27px !important; line-height:1.55 !important; letter-spacing:.02em !important;}
  /* 地球イメージ:91%(1.1倍)、上位置を維持 */
  .hero-photo{
    animation-duration:8s;
    background-size:auto 91% !important;
    background-position:center -180px !important;
  }
  /* 白オーバーレイを強化(本文エリアも読みやすく) */
  .home-hero .hero-bg{
    background-image:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.95) 30%,rgba(255,255,255,.92) 55%,rgba(255,255,255,.75) 78%,rgba(255,255,255,.30) 100%) !important;
  }
}
.home-hero .hero-bg{
  z-index:1 !important;
  background-image:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.80) 30%,rgba(255,255,255,.45) 55%,rgba(255,255,255,.10) 80%) !important;
}
.home-hero .hero-content{
  position:relative;
  z-index:2;
}

/* 会社概要:沿革下の3事業ショーケース */
.enkaku-photos{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.enkaku-item img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 10px 24px rgba(73,118,126,.08);
  margin-bottom:18px;
  display:block;
}
.enkaku-label{
  font-size:24px;
  color:#26383f;
  letter-spacing:.04em;
  font-weight:800;
  margin:0 0 10px;
  opacity:1;
  line-height:1.45;
}
.enkaku-catch{
  font-size:15.5px;
  font-weight:700;
  color:var(--teal-dark);
  margin:0 0 12px;
  line-height:1.6;
  letter-spacing:.03em;
}
.enkaku-desc{
  font-size:14.5px;
  line-height:1.85;
  color:var(--muted);
  margin:0;
}
@media(max-width:980px){
  .enkaku-photos{grid-template-columns:1fr;gap:32px;max-width:520px;margin-left:auto;margin-right:auto}
}

/* 会社概要:ミッションセクション(装飾円のみ) */
.mission-section{
  position:relative;
  overflow:hidden;
  padding-bottom:96px;
}
.mission-section:before,
.mission-section:after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.mission-section:before{
  width:300px;
  height:300px;
  left:-110px;
  top:80px;
  background:radial-gradient(circle,rgba(232,180,160,.10) 0%,transparent 70%);
}
.mission-section:after{
  width:340px;
  height:340px;
  right:-130px;
  bottom:-100px;
  background:radial-gradient(circle,rgba(89,180,189,.08) 0%,transparent 70%);
}
.mission-section .container{
  position:relative;
  z-index:1;
}

/* 会社概要:ミッション詳細説明 */
.mission-detail{
  max-width:780px;
  margin:64px auto 0;
  padding:42px 44px 38px;
  background:linear-gradient(135deg,#ffffff 0%,#ebf6f9 100%);
  border:1px solid rgba(73,118,126,.10);
  border-radius:20px;
  box-shadow:0 10px 30px rgba(73,118,126,.08);
  position:relative;
  text-align:left;
}
.mission-detail:before{
  content:"";
  position:absolute;
  top:-2px;
  left:50%;
  transform:translateX(-50%);
  width:80px;
  height:4px;
  background:linear-gradient(90deg,#3fa1a9 0%,#61b7bf 100%);
  border-radius:0 0 4px 4px;
}
.mission-detail p{
  font-size:18.5px;
  line-height:2.1;
  color:#2c4048;
  margin:0 0 22px;
  letter-spacing:.02em;
}
.mission-detail p:last-child{margin-bottom:0}
@media(max-width:640px){
  .mission-detail{padding:32px 26px 28px}
  .mission-detail p{font-size:17px;line-height:2}
}
.dekiru-lead strong{
  font-weight:700;
  color:#1d3035;
}

/* AI事業:料金セクション */
.pricing-section .section-heading p{text-align:center}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-bottom:40px;
}
.pricing-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:12px 26px 28px;
  text-align:center;
  box-shadow:0 8px 22px rgba(73,118,126,.06);
  transition:.25s ease;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.pricing-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(73,118,126,.13);
}
.pricing-icon{
  width:185px;
  height:185px;
  object-fit:contain;
  margin:0 auto -18px;
  display:block;
}
.pricing-card h3{
  font-size:18px;
  margin:0 0 18px;
  color:#243842;
  letter-spacing:.03em;
  line-height:1.5;
  font-weight:700;
  position:relative;
  padding-bottom:14px;
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pricing-card h3:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:36px;
  height:2px;
  background:linear-gradient(90deg,#3fa1a9 0%,#61b7bf 100%);
  border-radius:2px;
  opacity:.7;
}
.pricing-amount{
  font-size:26px;
  font-weight:800;
  color:var(--teal-dark);
  margin:0 0 18px;
  letter-spacing:.02em;
  font-family:'Noto Serif JP',serif;
  position:relative;
  display:inline-block;
  padding:0 6px;
  background:linear-gradient(transparent 65%,rgba(89,180,189,.18) 65%);
}
.pricing-desc{
  font-size:14.5px;
  line-height:1.85;
  color:var(--muted);
  margin:0;
  text-align:left;
  flex:1;
}
.pricing-note{
  position:relative;
  text-align:center;
  max-width:780px;
  margin:0 auto;
  padding:36px 28px 30px;
  background:linear-gradient(135deg,#f5fbfc 0%,#fff 50%,#fef9ed 100%);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 8px 22px rgba(73,118,126,.06);
}
.pricing-note-icon{
  width:62px;
  height:62px;
  margin:0 auto 14px;
  border-radius:50%;
  background:linear-gradient(135deg,#eaf8fa 0%,#fff 100%);
  border:1.5px solid #cce9ee;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--teal-dark);
  box-shadow:0 6px 16px rgba(63,161,169,.14);
}
.pricing-note-icon svg{width:30px;height:30px}
.pricing-mark{
  display:inline-block;
  font-size:16.5px;
  font-weight:700;
  padding:0 5px;
  background:linear-gradient(transparent 60%,rgba(255,212,120,.55) 60%);
}
.pricing-note p{
  font-size:14.5px;
  line-height:1.95;
  color:#3e535b;
  margin:0 0 10px;
}
.pricing-free{
  font-size:15.5px !important;
  color:var(--teal-dark) !important;
  font-weight:700;
  margin-top:16px !important;
  margin-bottom:0 !important;
  display:inline-block;
  padding:8px 20px;
  background:#fff;
  border:1px solid #cce9ee;
  border-radius:999px;
  box-shadow:0 4px 10px rgba(63,161,169,.08);
}
.pricing-disclaimer{
  font-size:13px !important;
  color:var(--muted) !important;
  margin-top:18px !important;
  margin-bottom:0 !important;
  line-height:1.7;
  text-align:center;
  max-width:680px;
  margin-left:auto !important;
  margin-right:auto !important;
}
@media(max-width:980px){
  .pricing-grid{grid-template-columns:1fr;gap:20px;max-width:520px;margin-left:auto;margin-right:auto;margin-bottom:36px}
  .pricing-card h3{min-height:auto}
}
.dekiru-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.dekiru-card{
  position:relative;
  display:grid;
  grid-template-columns:104px 1fr;
  gap:14px;
  padding:32px 22px 28px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 10px 30px rgba(73,118,126,.08);
  transition:.3s ease;
  overflow:hidden;
}
.dekiru-card:before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg,#3fa1a9 0%,#61b7bf 100%);
  opacity:.75;
  transition:opacity .3s ease;
}
.dekiru-card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 48px rgba(73,118,126,.16);
}
.dekiru-card:hover:before{opacity:1}
.dekiru-card-left{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding-top:6px;
}
.dekiru-num{
  font-family:'Noto Serif JP',serif;
  font-size:22px;
  font-weight:700;
  color:var(--teal-dark);
  letter-spacing:.04em;
  line-height:1;
  padding:6px 16px;
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border:1px solid #cce9ee;
  border-radius:999px;
  box-shadow:0 4px 10px rgba(63,161,169,.08);
}
.dekiru-icon{
  width:94px;
  height:94px;
  object-fit:contain;
  display:block;
}
.dekiru-card-content{padding-top:6px}
.dekiru-card-content h3{
  font-size:18px;
  margin:0 0 14px;
  padding-bottom:10px;
  color:#1d3035;
  letter-spacing:.03em;
  line-height:1.55;
  font-weight:800;
  line-break:strict;
  word-break:keep-all;
  position:relative;
}
.dekiru-card-content h3:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:32px;
  height:2px;
  background:linear-gradient(90deg,#3fa1a9 0%,#61b7bf 100%);
  border-radius:2px;
}
.dekiru-card-content p{
  font-size:14.5px;
  line-height:1.85;
  color:var(--muted);
  margin:0;
}
@media(max-width:980px){
  .dekiru-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .dekiru-grid{grid-template-columns:1fr}
  .dekiru-card{grid-template-columns:96px 1fr;padding:26px 20px}
  .dekiru-icon{width:84px;height:84px}
  .dekiru-num{font-size:18px;padding:5px 14px}
}
.about-area-figure{
  margin:0;
  position:relative;
}
.about-area-figure img{
  width:100%;
  height:200px;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 10px 24px rgba(73,118,126,.10);
  display:block;
}
.about-area-figure figcaption{
  position:absolute;
  left:14px;
  bottom:14px;
  background:rgba(255,255,255,.92);
  color:var(--teal-dark);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  padding:6px 12px;
  border-radius:999px;
  backdrop-filter:blur(6px);
  box-shadow:0 4px 12px rgba(73,118,126,.10);
}
@media(max-width:980px){
  .about-section .two-column{grid-template-columns:1fr;gap:36px}
  .about-photos{max-width:300px;margin:0 auto}
  .about-area-figure img{height:180px}
}

/* AI実績ブロック - 暖色アクセントを強調(メイン感) */
.works-block.is-ai{
  background:linear-gradient(135deg,#fff,#fff8f0);
  border:1.5px solid #f3cfb6;
  box-shadow:0 22px 50px rgba(225,138,93,.16);
  margin-bottom:34px;
}

/* 代表のこれまでの開発実績(is-history)- 控えめなグレー系 */
.works-block.is-history{
  background:#f9fbfc;
  border:1px solid #dde9eb;
  box-shadow:0 6px 18px rgba(73,118,126,.05);
  padding:32px 36px;
}
.works-block.is-history .works-icon{
  width:54px;height:54px;
  background:#eef4f6;
  border-color:#d4dee0;
  color:#6e8087;
}
.works-block.is-history .works-icon svg{width:26px;height:26px}
.works-tag.works-tag-history{
  background:#7d8e94;
  font-size:11px;
  letter-spacing:.18em;
}
.works-block.is-history .works-block-header{
  padding-bottom:18px;
  margin-bottom:18px;
  gap:18px;
}
.works-block.is-history .works-block-header h3{
  font-size:17px;
  font-weight:500;
  color:#41555d;
  letter-spacing:.04em;
}
.works-block.is-history .works-list li{
  padding:11px 4px;
  font-size:15px;
  border-bottom:1px dashed #e3eaec;
}
.works-block.is-history .works-item-icon{
  width:32px;height:32px;
  background:#eef4f6;
  color:#7d8e94;
  border-radius:9px;
}
.works-block.is-history .works-item-icon svg{width:16px;height:16px}
.works-block.is-history .works-name{color:#5a6c73;font-weight:400}
.works-block.is-history .works-note{color:#8b9aa1;margin-top:14px}

/* お悩みカード - サイクル色(ティール / コーラル / ゴールド) */
.concern-card:nth-child(3n+2){border-left-color:#e08a5e}
.concern-card:nth-child(3n+2) .check-mark{background:#fdf1ea;color:#c97142}
.concern-card:nth-child(3n+3){border-left-color:#d6a735}
.concern-card:nth-child(3n+3) .check-mark{background:#fdf6e3;color:#a07b1c}

/* ヒーロー強化 - eyebrowバッジ風 + h1サブテキスト */
.ai-hero .hero-eyebrow{
  display:inline-flex;align-items:center;gap:6px;
  font-size:14px;letter-spacing:.14em;font-weight:800;
  color:var(--teal-dark);
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border:1px solid #cce9ee;
  border-radius:999px;
  padding:10px 22px;
  margin:0 0 26px;
  box-shadow:0 8px 20px rgba(63,161,169,.14);
}
.hero-eyebrow .eyebrow-divider{
  color:#8fbec3;font-weight:400;letter-spacing:0;margin:0 2px;
}
.ai-hero h1{
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  font-size:clamp(32px,4vw,52px);
  line-height:1.5;
  letter-spacing:.05em;
  margin:0 0 22px;
}
.ai-hero h1 .hero-sub{
  display:block;
  margin-top:20px;
  font-size:22px;
  font-weight:500;
  color:var(--teal-dark);
  letter-spacing:.05em;
  line-height:1.55;
  font-family:'Noto Serif JP',serif;
  position:relative;
  padding-left:22px;
}
.ai-hero h1 .hero-sub:before{
  content:"";
  position:absolute;left:0;top:50%;
  width:14px;height:2px;
  background:var(--teal);
  transform:translateY(-50%);
}
.ai-hero .page-lead{
  font-size:25px;
  font-weight:700;
  line-height:1.75;
  color:#2f9298;
  margin:0 0 18px;
}

/* サマリーバー */
.summary-section{
  padding:40px 0 16px;
  background:#fff;
  position:relative;
  z-index:2;
  margin-top:-50px;
}
.summary-bar{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:0;
  margin:0;
  box-shadow:0 18px 44px rgba(73,118,126,.14);
  overflow:hidden;
}
.summary-bar > li{
  display:flex;
  align-items:center;
  gap:18px;
  padding:26px 26px;
  border-right:1px solid var(--line);
  background:#fff;
  transition:background .2s ease;
}
.summary-bar > li:hover{background:#f7fcfd}
.summary-bar > li:last-child{border-right:0}
.summary-icon{
  flex:0 0 auto;
  width:54px;height:54px;
  border-radius:14px;
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border:1px solid #cce9ee;
  color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;
}
.summary-icon svg{width:28px;height:28px}
.summary-text{flex:1 1 auto;min-width:0}
.summary-label{
  display:block;
  font-size:11px;
  letter-spacing:.22em;
  font-weight:800;
  color:var(--teal-dark);
  margin-bottom:4px;
}
.summary-desc{
  margin:0;
  font-size:15.5px;
  font-weight:700;
  color:#26383f;
  line-height:1.55;
}

@media(max-width:980px){
  .summary-section{margin-top:-30px;padding:28px 0 12px}
  .summary-bar{grid-template-columns:repeat(2,1fr)}
  .summary-bar > li{border-right:0;border-bottom:1px solid var(--line)}
  .summary-bar > li:nth-child(odd){border-right:1px solid var(--line)}
  .summary-bar > li:nth-last-child(-n+2){border-bottom:0}
  .ai-hero h1 .hero-sub{font-size:18px;margin-top:16px}
}
@media(max-width:640px){
  .summary-section{margin-top:0;padding:22px 0 8px}
  .summary-bar{grid-template-columns:1fr}
  .summary-bar > li{
    border-right:0!important;
    border-bottom:1px solid var(--line);
    padding:20px 22px;
  }
  .summary-bar > li:last-child{border-bottom:0}
  .ai-hero h1 .hero-sub{font-size:16px}
  .ai-hero .hero-eyebrow{font-size:12px;padding:8px 16px;letter-spacing:.1em}
}

/* 大切にしていること(.strength-cardデザインを流用、長文対応) */
.value-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.value-cards .strength-card{min-height:auto;padding:40px 36px 36px}
.value-cards .strength-card h3{font-size:22px;line-height:1.6;margin-bottom:16px}
.value-cards .strength-card p{font-size:16px;line-height:2;color:#3e535b}
.value-cards .strength-no{font-size:104px;top:-6px;right:26px}
.value-cards .strength-icon svg{width:32px;height:32px}

/* 大切にしていること:画像ありレイアウト(merit-cardsと同じ方式) */
.strengths-section .value-cards .strength-card{padding:248px 30px 32px;overflow:hidden}
.strengths-section .value-cards .value-photo{position:absolute;top:64px;left:14px;right:14px;width:calc(100% - 28px);height:170px;object-fit:contain;display:block;z-index:1}
.strengths-section .value-cards .strength-card h3{font-size:22px;line-height:1.55;margin-bottom:14px;letter-spacing:.01em}
.strengths-section .value-cards .strength-no{z-index:3;top:14px;right:26px;font-size:104px;line-height:.85;pointer-events:none}
.strengths-section .value-cards .value-badge{
  position:absolute;
  top:22px;left:26px;
  z-index:3;
  display:inline-block;
  padding:7px 16px;
  border-radius:999px;
  font-family:'Noto Sans JP',sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 4px 10px rgba(73,118,126,.10);
  white-space:nowrap;
}
.strengths-section .value-cards .tone-1 .value-badge{background:linear-gradient(135deg,#eaf8fa,#fff);color:var(--teal-dark);border:1px solid #cce9ee}
.strengths-section .value-cards .tone-2 .value-badge{background:linear-gradient(135deg,#fdf1ea,#fff);color:#c97142;border:1px solid #f3cfb6}
.strengths-section .value-cards .tone-3 .value-badge{background:linear-gradient(135deg,#fdf6e3,#fff);color:#a07b1c;border:1px solid #ecd6a4}
@media(max-width:980px){
  .strengths-section .value-cards .strength-card{padding:212px 28px 28px}
  .strengths-section .value-cards .value-photo{top:58px;height:140px}
  .strengths-section .value-cards .strength-no{font-size:88px;top:12px;right:22px}
  .strengths-section .value-cards .value-badge{top:20px;left:22px;font-size:12.5px;padding:6px 14px}
}
@media(max-width:640px){
  .strengths-section .value-cards .strength-card{padding:188px 22px 24px}
  .strengths-section .value-cards .value-photo{top:50px;height:120px}
  .strengths-section .value-cards .strength-no{font-size:76px;top:8px;right:18px}
  .strengths-section .value-cards .value-badge{top:16px;left:18px;font-size:12px;padding:5px 12px}
}

/* サービス6カード */
/* 私たちのスタイル(サービス差別化コラム) */
.service-style-note{
  display:flex;align-items:center;gap:28px;
  background:linear-gradient(135deg,#eaf6f8 0%,#fff 50%,#fff3e4 100%);
  border:1.5px solid #c4dfe3;
  border-radius:22px;
  padding:34px 42px 34px 46px;
  margin:0 0 40px;
  box-shadow:0 20px 44px rgba(73,118,126,.14);
  position:relative;
  overflow:hidden;
}
.service-style-note:before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:8px;height:100%;
  background:linear-gradient(180deg,var(--teal) 0%,var(--teal) 33%,#e08a5e 33%,#e08a5e 66%,#d6a735 66%,#d6a735 100%);
}
.style-note-icon{
  flex:0 0 auto;
  width:72px;height:72px;
  border-radius:20px;
  background:linear-gradient(135deg,#fff,#d9eef1);
  border:1.5px solid #b6dadf;
  color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(63,161,169,.18);
}
.style-note-icon svg{width:34px;height:34px}
.style-note-text{flex:1 1 auto;min-width:0}
.style-note-title{
  font-family:'Noto Serif JP',serif;
  font-size:24px;
  font-weight:800;
  color:var(--teal-dark);
  letter-spacing:.08em;
  margin:0 0 12px;
  line-height:1.4;
}
.style-note-title:before{content:"💡 ";font-style:normal}
.style-note-body{
  font-size:17.5px;
  line-height:1.95;
  color:#26363c;
  margin:0;
  font-weight:500;
}
.style-note-body strong{
  color:#1f5e64;
  font-weight:800;
  background:linear-gradient(transparent 58%,rgba(224,138,94,.32) 58%);
  padding:0 2px;
}
@media(max-width:980px){
  .service-style-note{padding:30px 32px 30px 36px;gap:22px}
  .style-note-icon{width:64px;height:64px}
  .style-note-icon svg{width:30px;height:30px}
  .style-note-title{font-size:21px}
  .style-note-body{font-size:16.5px}
}
@media(max-width:640px){
  .service-style-note{flex-direction:column;align-items:flex-start;padding:26px 22px 26px 28px;gap:18px;margin-bottom:32px}
  .style-note-icon{width:56px;height:56px}
  .style-note-icon svg{width:28px;height:28px}
  .style-note-title{font-size:19px;letter-spacing:.06em}
  .style-note-body{font-size:15.5px;line-height:1.9}
}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.service-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:230px 32px 30px;box-shadow:0 14px 32px rgba(73,118,126,.08);display:flex;flex-direction:column;transition:.2s ease;overflow:hidden}
.service-photo{position:absolute;top:0;left:0;width:100%;height:210px;object-fit:cover;display:block;background:#eef4f6}
.service-card.tone-1 .service-photo{object-position:center 0%}
@media(max-width:980px){.service-card{padding:200px 28px 26px}.service-photo{height:180px}}
@media(max-width:640px){.service-card{padding:180px 22px 22px}.service-photo{height:160px}}
.service-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px rgba(73,118,126,.13)}
.service-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.service-icon{width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,#e8f8fa,#fff);border:1px solid #cce9ee;color:var(--teal-dark);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.service-icon svg{width:32px;height:32px}
.service-num{font-family:'Noto Serif JP',serif;font-weight:700;font-size:38px;line-height:1;color:rgba(63,161,169,.22);letter-spacing:-.02em;background:none;width:auto;height:auto;border-radius:0;display:inline-block;padding:0;margin:0}
.service-card h3{font-size:24px;line-height:1.55;margin:0 0 16px;color:#26383f;letter-spacing:.02em;font-weight:700}
.service-card .service-desc{
  font-size:14.5px;
  line-height:1.85;
  color:#41555d;
  margin:0 0 8px;
}
.service-card ul{list-style:none;padding:0;margin:0}
.service-card ul li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.9;color:#3e535b;margin:10px 0}
.service-card ul li:before{content:"";position:absolute;left:2px;top:12px;width:9px;height:9px;border-radius:50%;background:var(--teal);opacity:.85}
.service-card ul li .service-item-example{
  display:block;
  font-size:14px;
  color:#5a6c73;
  line-height:1.7;
  margin-top:4px;
  padding-left:0;
  font-weight:500;
}
.service-card ul li .service-item-example:before{content:"↳ "}

/* 開発実績ブロック */
.works-block{background:#fff;border:1px solid var(--line);border-radius:24px;padding:40px 44px;box-shadow:0 16px 38px rgba(73,118,126,.08);margin-bottom:34px}
.works-block:last-child{margin-bottom:0}
.works-block-header{display:flex;align-items:flex-start;gap:24px;margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.works-icon{flex:0 0 auto;width:68px;height:68px;border-radius:18px;background:linear-gradient(135deg,#eaf8fa,#fff);border:1px solid #cce9ee;display:flex;align-items:center;justify-content:center;color:var(--teal-dark)}
.works-icon svg{width:34px;height:34px}
.works-block.is-ai .works-icon{background:linear-gradient(135deg,#fdf1ea,#fff);border-color:#f3cfb6;color:#c97142}
.works-header-text{flex:1 1 auto;min-width:0}
.works-tag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;color:#fff;background:var(--teal);border-radius:999px;padding:6px 14px;margin-bottom:12px}
.works-tag.works-tag-ai{background:#e08a5e}
.works-block-header h3{font-size:20px;line-height:1.65;margin:0;color:#26383f;font-family:'Noto Serif JP',serif;font-weight:600;letter-spacing:.04em}
.works-list{list-style:none;padding:0;margin:0 0 8px}
.works-list li{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 4px;border-bottom:1px dashed #d8e8eb;font-size:16px;line-height:1.7}
.works-list li:last-child{border-bottom:0}
.works-item-icon{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--teal-soft);color:var(--teal-dark);display:inline-flex;align-items:center;justify-content:center}
.works-item-icon svg{width:22px;height:22px}
.works-block.is-ai .works-item-icon{background:#fdf1ea;color:#c97142}
.works-list .works-name{flex:1 1 260px;color:#33474e;min-width:0;font-weight:500}
.works-list .works-tech{flex:0 0 auto;font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--teal-dark);background:#eef9fb;border:1px solid #cce9ee;border-radius:999px;padding:5px 13px;white-space:nowrap}
.works-note{margin:16px 0 0;font-size:13px;color:#7c8d93}
.works-screens{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.works-screens article{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.works-screens img{width:100%;height:190px;object-fit:cover;display:block}
.works-screens h4{margin:20px 22px 8px;font-size:17px;letter-spacing:.04em;color:#26383f}
.works-screens p{margin:0 22px 20px;color:var(--muted);font-size:14.5px;line-height:1.85}

/* 流れ5ステップ - 縦タイムライン */
.flow-timeline{position:relative;max-width:920px;margin:0 auto;padding:8px 0}
.flow-timeline:before{content:"";position:absolute;left:60px;top:60px;bottom:60px;width:2px;background:repeating-linear-gradient(to bottom,#b8d8dc 0,#b8d8dc 6px,transparent 6px,transparent 12px)}
.flow-step{position:relative;display:flex;align-items:flex-start;gap:40px;padding:14px 0 44px}
.flow-step:last-child{padding-bottom:0}
.flow-badge{flex:0 0 auto;width:122px;height:122px;border-radius:50%;border:2px solid var(--teal);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;position:relative;z-index:1;box-shadow:0 8px 24px rgba(63,161,169,.14)}
.flow-badge .step-label{font-size:11px;letter-spacing:.26em;color:var(--teal-dark);font-weight:800;line-height:1;margin-bottom:8px}
.flow-badge .step-num{font-size:36px;font-weight:700;color:var(--teal-dark);line-height:1;letter-spacing:.02em}
.flow-content{flex:1 1 auto;padding-top:18px;min-width:0}
.flow-content-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.flow-content-head .flow-icon{width:44px;height:44px;border-radius:13px;background:var(--teal-soft);border:1px solid #cce9ee;color:var(--teal-dark);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.flow-content-head .flow-icon svg{width:24px;height:24px}
.flow-content h3{font-size:23px;line-height:1.5;color:#26383f;margin:0;font-family:'Noto Serif JP',serif;font-weight:600;letter-spacing:.04em}
.flow-content p{font-size:16.5px;line-height:2;color:#3e535b;margin:0}

/* お悩みカードリスト */
.concern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.concern-card{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:14px;padding:24px 28px;box-shadow:0 6px 18px rgba(73,118,126,.06);transition:.2s ease}
.concern-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(73,118,126,.12)}
.concern-card .check-mark{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark);display:flex;align-items:center;justify-content:center}
.concern-card .check-mark svg{width:20px;height:20px}
.concern-card .concern-text{font-size:16px;line-height:1.7;color:#33474e;font-weight:500}

/* セクション全体の読みやすさ調整 */
.section-heading p{font-size:16.5px;line-height:1.95;color:#4f6870}
.page-lead{font-size:21px;line-height:1.85}
.two-column p{font-size:16.5px;line-height:2.05;color:#3e535b}

@media(max-width:1100px){
  .service-grid{grid-template-columns:1fr 1fr}
  .works-block{padding:34px 30px}
  .value-cards{grid-template-columns:1fr 1fr}
}
@media(max-width:980px){
  .works-screens{grid-template-columns:1fr 1fr}
  .concern-grid{grid-template-columns:1fr}
  .works-block-header{flex-direction:column;gap:14px}
  .works-list li{align-items:flex-start}
  .flow-timeline:before{left:36px;top:40px;bottom:40px}
  .flow-step{gap:24px;padding:8px 0 36px}
  .flow-badge{width:74px;height:74px}
  .flow-badge .step-label{font-size:9px;letter-spacing:.22em;margin-bottom:4px}
  .flow-badge .step-num{font-size:24px}
  .flow-content{padding-top:6px}
  .flow-content h3{font-size:20px}
}
@media(max-width:640px){
  .service-grid{grid-template-columns:1fr}
  .works-screens{grid-template-columns:1fr}
  .works-screens img{height:200px}
  .works-block{padding:28px 22px}
  .works-block-header h3{font-size:18px}
  .value-cards{grid-template-columns:1fr}
  .works-list li{flex-wrap:wrap}
  .works-list .works-name{flex:1 1 100%}
  .concern-card{padding:20px 22px;gap:14px}
  .concern-card .concern-text{font-size:15px}
  .flow-content-head{flex-wrap:wrap;gap:10px}
  .flow-content-head .flow-icon{width:38px;height:38px}
  .flow-content-head .flow-icon svg{width:20px;height:20px}
  .flow-content h3{font-size:18px}
  .flow-content p{font-size:15px}
}

/* v18: soften hero aqua gradient without changing globe size/position */
.hero-bg{
  background-image:
    linear-gradient(90deg,
      rgba(255,255,255,.99) 0%,
      rgba(255,255,255,.96) 32%,
      rgba(255,255,255,.68) 52%,
      rgba(255,255,255,.20) 72%,
      rgba(255,255,255,.04) 100%
    ),
    url('images/hero-bg.jpg') !important;
  background-size:auto 100% !important;
  background-position:right top !important;
  background-repeat:no-repeat !important;
}
.home-hero::before{
  content:"";
  position:absolute;
  right:-10%;
  bottom:-14%;
  width:56%;
  height:44%;
  background:radial-gradient(
    ellipse at 100% 100%,
    rgba(112,212,228,.18) 0%,
    rgba(170,232,241,.12) 34%,
    rgba(222,248,251,.06) 58%,
    rgba(255,255,255,0) 86%
  );
  pointer-events:none;
  z-index:1;
}
.hero-content{position:relative;z-index:3;}
@media(max-width:980px){
  .hero-bg{background-size:auto 84% !important;background-position:right top !important;}
  .home-hero::before{width:74%;height:36%;right:-18%;bottom:-10%;}
}
@media(max-width:640px){
  .hero-bg{background-size:auto 72% !important;background-position:62% top !important;}
  .home-hero::before{width:100%;height:30%;right:-32%;bottom:-8%;opacity:.65;}
}

/* ================================
   音楽事業ページ(BRASS DESIGN)専用
   ================================ */

/* メッセージセクション微調整 */
.music-message h2{font-size:clamp(28px,3vw,38px);line-height:1.55}
.music-message{grid-template-columns:1.75fr .45fr}
.music-message>img{height:280px}
@media(max-width:980px){
  .music-message{grid-template-columns:1fr}
  .music-message>img{height:auto}
}

/* 3. 開発プロセス(6ステップ) */
.music-process-section .section-heading h2{
  font-family:'Noto Serif JP',serif;
  letter-spacing:.05em;
}
.music-process{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:18px;
  position:relative;
}
.process-step{
  position:relative;
  background:#fff;
  border:1px solid #ecd6a4;
  border-top:4px solid #d6a735;
  border-radius:18px;
  padding:32px 18px 22px;
  text-align:center;
  box-shadow:0 14px 32px rgba(214,167,53,.10);
  transition:.2s ease;
}
.process-step:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 40px rgba(214,167,53,.18);
}
.process-no{
  display:inline-block;
  font-family:'Noto Serif JP',serif;
  font-size:14px;
  font-weight:700;
  color:#a07b1c;
  letter-spacing:.18em;
  margin-bottom:10px;
}
.process-icon{
  width:54px;
  height:54px;
  margin:0 auto 14px;
  border-radius:50%;
  background:linear-gradient(135deg,#fdf6e3,#fff);
  border:1px solid #ecd6a4;
  color:#a07b1c;
  display:flex;
  align-items:center;
  justify-content:center;
}
.process-icon svg{width:26px;height:26px}
.process-step h3{
  font-size:16px;
  margin:0 0 10px;
  color:#2c4048;
  letter-spacing:.04em;
}
.process-step p{
  font-size:13px;
  line-height:1.75;
  color:var(--muted);
  margin:0;
  text-align:left;
}
.process-step:not(:last-child):after{
  content:'›';
  position:absolute;
  right:-15px;
  top:46%;
  transform:translateY(-50%);
  font-size:30px;
  color:#d6a735;
  font-weight:800;
  z-index:2;
  pointer-events:none;
  line-height:1;
}

/* Phase 1: 聴く(ティール)- 01,02 */
.process-step.phase-1{
  border-color:#cce9ee;
  border-top-color:var(--teal);
  box-shadow:0 14px 32px rgba(63,161,169,.10);
}
.process-step.phase-1:hover{
  box-shadow:0 20px 40px rgba(63,161,169,.18);
}
.process-step.phase-1 .process-no{color:var(--teal-dark)}
.process-step.phase-1 .process-icon{
  background:linear-gradient(135deg,#eaf8fa,#fff);
  border-color:#cce9ee;
  color:var(--teal-dark);
}
.process-step.phase-1:not(:last-child):after{color:var(--teal)}

/* Phase 2: 作る(ゴールド)- 03,04 ※デフォルト色維持 */
.process-step.phase-2{} /* 既定スタイルそのまま */

/* Phase 3: 届ける(コーラル)- 05,06 */
.process-step.phase-3{
  border-color:#f3cfb6;
  border-top-color:#e08a5e;
  box-shadow:0 14px 32px rgba(224,138,94,.10);
}
.process-step.phase-3:hover{
  box-shadow:0 20px 40px rgba(224,138,94,.18);
}
.process-step.phase-3 .process-no{color:#c97142}
.process-step.phase-3 .process-icon{
  background:linear-gradient(135deg,#fdf1ea,#fff);
  border-color:#f3cfb6;
  color:#c97142;
}
.process-step.phase-3:not(:last-child):after{color:#e08a5e}

/* 4. 3つのこだわり(3色アクセント・メリハリ強化版) */
.feature-grid.feature-grid-3tone article{
  position:relative;
  border-top:4px solid var(--teal);
  padding:36px 30px 32px;
  border-radius:22px;
  box-shadow:0 14px 32px rgba(73,118,126,.08);
  transition:.2s ease;
  overflow:hidden;
}
.feature-grid.feature-grid-3tone article:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(73,118,126,.16);
}
.feature-grid.feature-grid-3tone article > span{
  width:46px;
  height:46px;
  font-size:16px;
  margin-bottom:20px;
  box-shadow:0 6px 14px rgba(73,118,126,.18);
}
.feature-grid.feature-grid-3tone article h3{
  font-size:21px;
  letter-spacing:.04em;
  margin-bottom:12px;
}
/* 01: ゴールド(BRASS DESIGNのテーマカラー) */
.feature-grid.feature-grid-3tone article:nth-child(1){
  border-top-color:#d6a735;
  background:linear-gradient(180deg,#fffbf0 0%,#fff 60%);
}
.feature-grid.feature-grid-3tone article:nth-child(1) > span{
  background:#d6a735;
  box-shadow:0 6px 14px rgba(214,167,53,.32);
}
.feature-grid.feature-grid-3tone article:nth-child(1):hover{
  box-shadow:0 24px 48px rgba(214,167,53,.20);
}
/* 02: ティール(3D技術のクールな印象) */
.feature-grid.feature-grid-3tone article:nth-child(2){
  border-top-color:var(--teal);
  background:linear-gradient(180deg,#eef9fb 0%,#fff 60%);
}
.feature-grid.feature-grid-3tone article:nth-child(2) > span{
  background:var(--teal);
  box-shadow:0 6px 14px rgba(63,161,169,.32);
}
.feature-grid.feature-grid-3tone article:nth-child(2):hover{
  box-shadow:0 24px 48px rgba(63,161,169,.20);
}
/* 03: コーラル(サポートの温かさ) */
.feature-grid.feature-grid-3tone article:nth-child(3){
  border-top-color:#e08a5e;
  background:linear-gradient(180deg,#fdf1ea 0%,#fff 60%);
}
.feature-grid.feature-grid-3tone article:nth-child(3) > span{
  background:#e08a5e;
  box-shadow:0 6px 14px rgba(224,138,94,.32);
}
.feature-grid.feature-grid-3tone article:nth-child(3):hover{
  box-shadow:0 24px 48px rgba(224,138,94,.20);
}

/* 5. 商品ラインナップ CTA行 */
.product-cta-row{
  text-align:center;
  margin-top:42px;
}

/* 6. 技術紹介セクション */
.music-tech-section .check-list li{
  font-size:15.5px;
  line-height:1.95;
  margin:8px 0;
}
.music-tech-section .check-list li:before{
  color:#d6a735;
}
.music-tech-section .tech-img{
  width:100%;
  height:auto;
  max-height:320px;
  object-fit:contain;
  background:#3a3a3a;
}
@media(max-width:980px){
  .music-tech-section .tech-img{max-height:260px}
}
.music-tech-section .section-label{color:#a07b1c}
.music-tech-section h2{
  font-family:'Noto Serif JP',serif;
  letter-spacing:.05em;
}

/* 7. 演奏家の声 */
.voice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.voice-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:42px 30px 28px;
  position:relative;
  box-shadow:0 14px 32px rgba(73,118,126,.08);
  transition:.2s ease;
}
.voice-card:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 44px rgba(73,118,126,.14);
}
.voice-quote{
  position:absolute;
  top:-8px;
  left:24px;
  font-family:'Noto Serif JP',serif;
  font-size:90px;
  line-height:1;
  color:rgba(214,167,53,.28);
  font-weight:700;
  pointer-events:none;
}
.voice-card p{
  font-size:15.5px;
  line-height:1.95;
  color:#3e535b;
  margin:0 0 20px;
  font-weight:500;
}
.voice-card footer{
  font-size:13px;
  font-weight:700;
  color:#a07b1c;
  border-top:1px solid #ecd6a4;
  padding-top:14px;
  letter-spacing:.04em;
}

/* 9. メディア・推薦 */
.music-media-section .section-label{color:#a07b1c}
.media-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.media-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:36px 28px 30px;
  text-align:center;
  box-shadow:0 12px 30px rgba(73,118,126,.06);
  transition:.2s ease;
}
.media-item:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 40px rgba(73,118,126,.12);
}
.media-icon{
  width:64px;
  height:64px;
  margin:0 auto 18px;
  border-radius:18px;
  background:linear-gradient(135deg,#fdf6e3,#fff);
  border:1px solid #ecd6a4;
  color:#a07b1c;
  display:flex;
  align-items:center;
  justify-content:center;
}
.media-icon svg{width:28px;height:28px}
.media-item h3{
  font-size:18px;
  margin:0 0 12px;
  color:#2c4048;
}
.media-item p{
  font-size:14.5px;
  line-height:1.85;
  color:var(--muted);
  margin:0;
}
.media-item .media-links{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:14px;
  font-size:13.5px;
  line-height:1.6;
}
.media-item .media-links a{
  color:#a07b1c;
  font-weight:600;
  transition:.2s ease;
}
.media-item .media-links a:hover{
  color:#7a5e15;
  text-decoration:underline;
}

/* 10. CTA セクション */
.music-cta-section{
  padding-top:40px;
  padding-bottom:96px;
}
.music-cta-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}
.music-cta-card{
  background:linear-gradient(135deg,#fff 0%,#fff7e8 100%);
  border:1.5px solid #ecd6a4;
  border-radius:28px;
  padding:46px 40px;
  text-align:center;
  box-shadow:0 20px 44px rgba(214,167,53,.14);
  transition:.2s ease;
}
.music-cta-card:hover{
  transform:translateY(-3px);
  box-shadow:0 28px 54px rgba(214,167,53,.20);
}
.music-cta-card.cta-contact{
  background:linear-gradient(135deg,#fff 0%,#eaf8fa 100%);
  border-color:#cce9ee;
  box-shadow:0 20px 44px rgba(63,161,169,.12);
}
.music-cta-card.cta-contact:hover{
  box-shadow:0 28px 54px rgba(63,161,169,.18);
}
.music-cta-icon{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  border-radius:22px;
  background:linear-gradient(135deg,#fff,#fdf6e3);
  border:1.5px solid #ecd6a4;
  color:#a07b1c;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 20px rgba(214,167,53,.16);
}
.music-cta-card.cta-contact .music-cta-icon{
  background:linear-gradient(135deg,#fff,#eaf8fa);
  border-color:#cce9ee;
  color:var(--teal-dark);
  box-shadow:0 8px 20px rgba(63,161,169,.16);
}
.music-cta-icon svg{width:36px;height:36px}
.music-cta-card h3{
  font-size:23px;
  margin:0 0 14px;
  font-family:'Noto Serif JP',serif;
  letter-spacing:.04em;
  color:#2c4048;
}
.music-cta-card p{
  font-size:15px;
  line-height:1.9;
  color:#3e535b;
  margin:0 0 26px;
}

/* レスポンシブ調整 */
@media(max-width:980px){
  .music-process{grid-template-columns:repeat(3,1fr);gap:22px}
  .process-step:not(:last-child):after{display:none}
  .voice-grid,.media-list{grid-template-columns:repeat(2,1fr)}
  .music-cta-grid{grid-template-columns:1fr;gap:22px}
  .music-tech-section .tech-img{height:auto;max-height:360px}
}
@media(max-width:640px){
  .music-process{grid-template-columns:1fr;gap:16px}
  .voice-grid,.media-list{grid-template-columns:1fr}
  .music-cta-card{padding:34px 24px}
  .music-cta-card h3{font-size:20px}
  .voice-quote{font-size:74px;left:18px}
  .voice-card{padding:34px 24px 24px}
  .process-step{padding:26px 18px 20px}
  .process-step p{font-size:14px}
}

/* v15: BRASS DESIGN logo inside CTA shop card icon (music.html) */
.music-cta-icon-brand{
  padding:8px;
}
.music-cta-icon .music-cta-brand{
  display:block;
  width:auto;
  height:54px;
  max-width:none;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  object-fit:contain;
}
@media(max-width:640px){
  .music-cta-icon .music-cta-brand{height:48px}
}


/* ================================
   アート事業ページ(KAWAII ART)専用
   ================================ */

/* 2. メッセージセクション(写真は人物が小さめに見えるよう全体表示) */
.art-message{grid-template-columns:1.4fr .65fr}
.art-message h2{font-size:clamp(28px,3vw,38px);line-height:1.55}
.art-message>img{
  height:360px;
  object-fit:cover;
  object-position:center top;
  border-radius:18px;
}
@media(max-width:980px){
  .art-message{grid-template-columns:1fr}
  .art-message>img{height:380px}
}

/* FEATURES セクション(画像付きカード) */
.feature-grid article{
  overflow:hidden;
}
.feature-grid article > img{
  width:calc(100% + 56px);
  max-width:none;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  margin:-28px -28px 22px;
}

/* 3. NAMING セクション(ブランド名にこめた想い) */
.art-naming-section{
  background:linear-gradient(135deg,#fef5f0 0%,#fff 60%,#fdebef 100%);
  position:relative;
  overflow:hidden;
}
.art-naming-section:before,
.art-naming-section:after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.art-naming-section:before{
  width:280px;
  height:280px;
  left:-100px;
  top:60px;
  background:radial-gradient(circle,rgba(232,180,160,.18) 0%,transparent 70%);
}
.art-naming-section:after{
  width:340px;
  height:340px;
  right:-120px;
  bottom:-100px;
  background:radial-gradient(circle,rgba(232,138,168,.14) 0%,transparent 70%);
}
.art-naming-section .container{
  position:relative;
  z-index:1;
}
.art-naming-section .naming-tagline{
  font-family:'Noto Serif JP',serif;
  font-style:italic;
  font-size:17px;
  color:rgba(184,122,138,.85);
  letter-spacing:.04em;
  margin:-8px 0 22px;
  font-weight:500;
}
.art-naming-section h2{
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  letter-spacing:.06em;
  margin-bottom:36px;
}
.art-naming-section p:not(.section-label):not(.naming-tagline){
  font-size:16.5px;
  line-height:2.1;
  color:#3a2a32;
  margin:0 auto 22px;
  max-width:720px;
  line-break:strict;
  text-wrap:pretty;
  word-break:auto-phrase;
}
.art-naming-section p:not(.section-label):not(.naming-tagline):last-child{
  margin-bottom:0;
}

/* 3. CONCEPT スライドショー */
.concept-slideshow{
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.concept-slideshow img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  animation:conceptFade 18s infinite;
}
.concept-slideshow img:nth-child(1){animation-delay:0s}
.concept-slideshow img:nth-child(2){animation-delay:6s}
.concept-slideshow img:nth-child(3){animation-delay:12s}
@keyframes conceptFade {
  0%   { opacity:1; }
  28%  { opacity:1; }
  33%  { opacity:0; }
  95%  { opacity:0; }
  100% { opacity:1; }
}
@media (prefers-reduced-motion: reduce) {
  .concept-slideshow img{animation:none}
  .concept-slideshow img:nth-child(1){opacity:1}
}

/* 5. 作家紹介セクション */
.artist-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.artist-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  text-align:center;
  box-shadow:0 8px 22px rgba(73,118,126,.06);
  transition:.2s ease;
}
.artist-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 36px rgba(73,118,126,.12);
}
.artist-card>img,
.artist-card .artist-photo-placeholder{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}

/* 6. SCENE セクション(画像 1200×700、12:7比率) */
.scene-grid img{
  aspect-ratio:12/7;
  height:auto;
}
.artist-card .artist-photo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#fff5e8 0%,#fce4eb 60%,#f8d6e0 100%);
  color:rgba(190,130,160,.55);
  font-family:'Noto Serif JP',serif;
  font-size:64px;
  font-weight:600;
  letter-spacing:.04em;
}
.artist-card h3{
  font-size:17px;
  margin:18px 12px 6px;
  letter-spacing:.04em;
  color:#3a2a32;
}
.artist-card p{
  font-size:13px;
  color:var(--muted);
  margin:0 14px 22px;
  line-height:1.6;
}
.artist-note{
  text-align:center;
  margin-top:32px;
  font-size:14px;
  color:var(--muted);
}
@media(max-width:980px){
  .artist-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .artist-grid{grid-template-columns:1fr}
}

/* 9. ハイライト(アート用カラーアクセント) */
.art-highlights-section .media-icon{
  background:linear-gradient(135deg,#fdebef,#fff);
  border-color:#f5cdd6;
  color:#c8607c;
  box-shadow:0 8px 20px rgba(200,96,124,.14);
}

/* 10. CTA セクション */
.art-cta-section{
  background:linear-gradient(180deg,#fff 0%,#fdf3f5 100%);
}
.art-cta-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  max-width:980px;
  margin-inline:auto;
}
.art-cta-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  padding:48px 36px 40px;
  text-align:center;
  box-shadow:0 18px 40px rgba(73,118,126,.08);
  transition:.2s ease;
}
.art-cta-card:hover{
  transform:translateY(-3px);
  box-shadow:0 28px 54px rgba(200,96,124,.18);
}
.art-cta-icon{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  border-radius:22px;
  background:linear-gradient(135deg,#fff,#fdebef);
  border:1.5px solid #f5cdd6;
  color:#c8607c;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 20px rgba(200,96,124,.14);
}
.art-cta-card.cta-contact .art-cta-icon{
  background:linear-gradient(135deg,#fff,#eaf8fa);
  border-color:#cce9ee;
  color:var(--teal-dark);
  box-shadow:0 8px 20px rgba(63,161,169,.16);
}
.art-cta-icon svg{width:36px;height:36px}
.art-cta-icon-brand{
  background:#fff;
  padding:6px;
}
.art-cta-icon .art-cta-brand{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.art-cta-card h3{
  font-size:23px;
  margin:0 0 14px;
  font-family:'Noto Serif JP',serif;
  letter-spacing:.04em;
  color:#2c4048;
}
.art-cta-card p{
  font-size:15px;
  line-height:1.9;
  color:#3e535b;
  margin:0 0 26px;
}
@media(max-width:980px){
  .art-cta-grid{grid-template-columns:1fr;gap:22px}
}
@media(max-width:640px){
  .art-cta-card{padding:34px 24px}
  .art-cta-card h3{font-size:20px}
}

/* ================================
   v19: トップページ ヒーロー微調整
   - 下部の白い余白を少しコンパクトに
   - 底辺全体ににじむ淡い水色グラデを広げる(右下が中心)
   - 地球画像/コピー/ボタンの位置・サイズは変更しない
   ================================ */
.home-hero{min-height:640px !important;}
.hero-content{padding:84px 0 92px !important;}
/* MISSION をヒーローに近づける(さらに詰めて 4px) */
.home-hero + .mission-section,
.home-hero ~ #about.mission-section{padding-top:4px !important;}
/* トップページ MISSION 本文のサイズ調整 */
#about.mission-section .mission-statement{
  font-size:28px !important;
  line-height:2.1 !important;
}
@media(max-width:640px){
  #about.mission-section .mission-statement{
    font-size:18px !important;
    line-height:1.95 !important;
    letter-spacing:.04em !important;
  }
}
.home-hero::before{
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:82% !important;
  background:
    radial-gradient(
      ellipse 95% 90% at 80% 110%,
      rgba(118,210,226,.48) 0%,
      rgba(170,230,240,.32) 32%,
      rgba(220,246,250,.18) 60%,
      rgba(255,255,255,0) 88%
    ),
    linear-gradient(
      to top,
      rgba(190,234,243,.42) 0%,
      rgba(216,244,249,.24) 32%,
      rgba(240,251,253,.10) 55%,
      rgba(255,255,255,0) 78%
    ) !important;
  pointer-events:none;
  z-index:1;
}
@media(max-width:980px){
  .home-hero{min-height:auto !important;}
  .hero-content{padding:72px 0 80px !important;}
  .home-hero::before{
    height:70% !important;
    opacity:.9;
  }
}
@media(max-width:640px){
  .hero-content{padding:60px 0 60px !important;}
  .home-hero::before{
    height:48% !important;
    opacity:.55;
  }
}

/* ================================
   v20: OUR STRENGTH メリハリ追加
   A. 番号(01/02/03)を大きく・主役級に
   C. ホバーでカードが浮き上がる動き
   - 色は増やさず、ティール系のまま
   ================================ */
/* A. 番号をより大胆に */
.strengths-section .strength-no{
  font-size:108px !important;
  color:rgba(63,161,169,.22) !important;
  letter-spacing:-.07em !important;
  font-weight:900 !important;
}
/* C. ホバーで浮き上がる */
.strengths-section .strength-card{
  transition:transform .35s ease, box-shadow .35s ease !important;
}
.strengths-section .strength-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(63,140,150,.18) !important;
}
/* レスポンシブ:番号サイズ調整 */
@media(max-width:980px){
  .strengths-section .strength-no{font-size:94px !important;}
}
@media(max-width:640px){
  .strengths-section .strength-no{font-size:84px !important;}
  /* スマホはホバー機能ないのでtap反応にも自然な範囲で */
  .strengths-section .strength-card:hover{transform:translateY(-3px);}
}

/* CONTACT カードのボタンが折り返さないように */
.cta-section .cta-card .btn{
  white-space:nowrap;
  padding:14px 36px !important;
  flex-shrink:0;
}
@media(max-width:640px){
  .cta-section .cta-card .btn{padding:14px 26px !important;}
}

/* ================================
   v21: BUSINESS カードの「詳しく見る」を
   アウトラインボタン風に格上げ
   - 既存の上品さは保ったまま、CTA感を強める
   - カード本体・余白・色のバランスは維持
   - すべてのカードでボタンが下端揃いに
   ================================ */
/* カード本体を縦flexにしてボタンを下端揃えに */
.business-card-body{
  display:flex;
  flex-direction:column;
}
/* 塗りボタン化(濃いティール背景) */
.business-card .text-link{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin-top:auto;
  padding:12px 28px;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg,var(--teal),#61b7bf);
  font-size:14.5px;
  font-weight:700;
  letter-spacing:.04em;
  color:#fff;
  box-shadow:0 10px 22px rgba(63,161,169,.24);
  transition:transform .25s ease, box-shadow .25s ease;
}
.business-card .text-link:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(63,161,169,.34);
}
.business-card .text-link:after{
  margin-left:.55em;
  transition:transform .25s ease;
}
.business-card .text-link:hover:after{
  transform:translateX(4px);
}
@media(max-width:640px){
  .business-card .text-link{padding:11px 24px;font-size:14px;}
}

/* キャッチコピーと本文の間を詰める */
.business-card .business-subtitle{margin:0 0 10px !important;}
.business-card-body > p:not(.business-subtitle){margin-top:10px !important;}

/* ================================
   v22: アート事業/音楽事業ページの
   ヒーロー背景をシンプルな2色グラデに整理
   - 暖色×寒色の混在をやめて単一トーンに
   ================================ */
.soft-art{
  background:linear-gradient(180deg,#ffffff 0%,#ffffff 55%,#f4f8f9 100%) !important;
}
.soft-music{
  background:linear-gradient(180deg,#ffffff 0%,#ffffff 55%,#f1f2f4 100%) !important;
}
.soft-ai{
  background:linear-gradient(180deg,#ffffff 0%,#eaf6f8 100%) !important;
}

/* ================================
   v23: 音楽事業ページ FEATURES セクション
   3つのカードのアクセントカラーを撤去し、
   ブランドティール1色で統一(シンプル化)
   ================================ */
.feature-grid.feature-grid-3tone article{
  border-top:1px solid var(--line) !important;
  background:#fff !important;
}
.feature-grid.feature-grid-3tone article:nth-child(1),
.feature-grid.feature-grid-3tone article:nth-child(2),
.feature-grid.feature-grid-3tone article:nth-child(3){
  border-top-color:var(--line) !important;
  background:#fff !important;
}
.feature-grid.feature-grid-3tone article:nth-child(1) > span,
.feature-grid.feature-grid-3tone article:nth-child(2) > span,
.feature-grid.feature-grid-3tone article:nth-child(3) > span{
  background:var(--teal) !important;
  box-shadow:0 6px 14px rgba(63,161,169,.22) !important;
}
.feature-grid.feature-grid-3tone article:hover,
.feature-grid.feature-grid-3tone article:nth-child(1):hover,
.feature-grid.feature-grid-3tone article:nth-child(2):hover,
.feature-grid.feature-grid-3tone article:nth-child(3):hover{
  box-shadow:0 24px 48px rgba(73,118,126,.14) !important;
}

/* ================================
   v24: AIサービスカード「こんなことができます」バッジ
   ================================ */
.service-list-label{
  display:inline-block;
  font-size:13.5px;
  font-weight:800;
  letter-spacing:.08em;
  color:#fff;
  background:linear-gradient(135deg,var(--teal),#61b7bf);
  border:none;
  border-radius:999px;
  padding:8px 18px;
  margin:22px 0 14px;
  box-shadow:0 8px 18px rgba(63,161,169,.28);
}

/* ================================
   v25: OUR VALUE 装飾円をふんわり浮遊させる
   - 2つの円が異なるリズムで動く
   - 位置ドリフト + わずかなスケール変化
   - prefers-reduced-motion 配慮
   ================================ */
.value-band:before{
  animation:floatCircleA 16s ease-in-out infinite;
  will-change:transform;
}
.value-band:after{
  animation:floatCircleB 19s ease-in-out infinite;
  will-change:transform;
}
@keyframes floatCircleA{
  0%   {transform:translate(0,0) scale(1);}
  33%  {transform:translate(22px,-16px) scale(1.06);}
  66%  {transform:translate(-14px,12px) scale(0.95);}
  100% {transform:translate(0,0) scale(1);}
}
@keyframes floatCircleB{
  0%   {transform:translate(0,0) scale(1);}
  33%  {transform:translate(-20px,16px) scale(1.07);}
  66%  {transform:translate(13px,-10px) scale(0.95);}
  100% {transform:translate(0,0) scale(1);}
}
@media (prefers-reduced-motion: reduce){
  .value-band:before,
  .value-band:after{animation:none;}
}

/* ================================
   v26: プライバシーポリシーページ
   ================================ */
.privacy-content{
  max-width:820px;
  margin:0 auto;
}
.privacy-content > p{
  font-size:16px;
  line-height:2;
  color:#3e535b;
  margin:0 0 24px;
}
.privacy-content h2{
  font-size:22px;
  font-weight:700;
  color:#26383f;
  margin:42px 0 14px;
  padding-bottom:12px;
  border-bottom:2px solid var(--teal-soft);
  letter-spacing:.04em;
}
.privacy-content h2:first-of-type{margin-top:14px;}
.privacy-content ul{
  margin:0 0 24px;
  padding-left:24px;
}
.privacy-content ul li{
  font-size:15.5px;
  line-height:1.95;
  color:#3e535b;
  margin:6px 0;
}
.privacy-contact{
  background:#f4fbfc;
  border:1px solid var(--line);
  border-radius:14px;
  padding:24px 28px;
  margin:14px 0 24px;
}
.privacy-contact p{margin:0;font-size:15px;line-height:1.95;color:#3e535b;}
.privacy-contact strong{font-size:17px;color:var(--teal-dark);}
.privacy-date{
  text-align:right;
  font-size:14px;
  color:var(--muted);
  margin-top:32px;
}
@media(max-width:640px){
  .privacy-content h2{font-size:19px;margin-top:32px;}
  .privacy-content > p,.privacy-content ul li{font-size:15px;}
  .privacy-contact{padding:20px;}
}

/* ================================
   v27: AI事業 FAQ セクション
   ================================ */
.faq-section{
  background:linear-gradient(180deg,#fff 0%,#f7fbfc 100%);
}
.faq-list{
  max-width:820px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.faq-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:0;
  box-shadow:0 6px 18px rgba(73,118,126,.06);
  transition:box-shadow .25s ease;
  overflow:hidden;
}
.faq-item:hover{box-shadow:0 12px 28px rgba(73,118,126,.12);}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:22px 56px 22px 28px;
  font-size:17px;
  font-weight:700;
  color:#26383f;
  position:relative;
  line-height:1.6;
  letter-spacing:.02em;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{
  content:"Q";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  background:linear-gradient(135deg,var(--teal),#61b7bf);
  color:#fff;
  border-radius:50%;
  font-size:14px;
  font-weight:800;
  margin-right:14px;
  flex-shrink:0;
  vertical-align:middle;
}
.faq-item summary::after{
  content:"+";
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eaf8fa;
  color:var(--teal-dark);
  border-radius:50%;
  font-size:22px;
  font-weight:600;
  transition:transform .25s ease, background .25s ease;
}
.faq-item[open] summary::after{
  content:"−";
  background:var(--teal);
  color:#fff;
  transform:translateY(-50%) rotate(180deg);
}
.faq-item p{
  padding:0 28px 26px 28px;
  margin:0;
  font-size:15.5px;
  line-height:2;
  color:#3e535b;
  border-top:1px dashed var(--line);
  padding-top:20px;
}
.faq-item p strong{color:var(--teal-dark);}
@media(max-width:640px){
  .faq-item summary{font-size:15.5px;padding:18px 50px 18px 20px;}
  .faq-item summary::before{width:24px;height:24px;font-size:12px;margin-right:10px;}
  .faq-item summary::after{right:18px;width:26px;height:26px;font-size:18px;}
  .faq-item p{padding:18px 20px 22px 20px;font-size:15px;}
}

/* ================================
   v28: お問い合わせフォーム同意チェックボックス
   ================================ */
.form-agree{
  display:flex !important;
  align-items:center;
  gap:10px;
  font-weight:600 !important;
  font-size:15px !important;
  margin:8px 0 18px !important;
  color:#3e535b !important;
}
.form-agree input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  cursor:pointer;
  accent-color:var(--teal);
}
.form-agree span{
  background:#e35858 !important;
  font-size:11px !important;
  padding:2px 7px !important;
}

/* ================================
   v29: 価格カード v2(6カード対応・営業日換算入り)
   ================================ */
.pricing-grid-6{
  grid-template-columns:repeat(3,1fr) !important;
  gap:24px !important;
}
.pricing-card-v2{
  text-align:left !important;
  align-items:stretch !important;
  padding:28px 26px !important;
  display:flex !important;
  flex-direction:column !important;
}
.pricing-card-v2 .pricing-icon{
  width:120px !important;
  height:120px !important;
  margin:0 auto 8px !important;
  object-fit:contain;
}
.pricing-card-v2 h3{
  font-size:19px !important;
  text-align:center !important;
  min-height:auto !important;
  padding-bottom:16px !important;
  margin-bottom:14px !important;
  display:block !important;
  line-height:1.45 !important;
  font-weight:800 !important;
}
.pricing-card-v2 .pricing-amount{
  text-align:center !important;
  font-size:30px !important;
  margin:0 auto 18px !important;
}
.pricing-card-v2 .pricing-desc{
  font-size:14px !important;
  line-height:1.85 !important;
  margin:0 0 18px !important;
  color:#3e535b !important;
  text-align:left !important;
  flex:0 0 auto !important;
}
/* 統計ブロックと効果リストを1つの枠に統合 */
.pricing-card-v2 .pricing-stats{
  background:linear-gradient(135deg,#f5fbfc 0%,#fff 100%);
  border:1px solid #d6ecef;
  border-bottom:none;
  border-radius:14px 14px 0 0;
  padding:16px 18px;
  margin:auto 0 0;
}
.pricing-card-v2 .pricing-stats + .pricing-extra{
  margin-top:0 !important;
  border:1px solid #d6ecef !important;
  border-top:1px dashed #c8e2e6 !important;
  border-radius:0 0 14px 14px !important;
  background:linear-gradient(135deg,#f9fcfd 0%,#fff 100%) !important;
}
.pc-stat{
  margin:0 0 12px;
}
.pc-stat:last-child{margin-bottom:0;}
.pc-stat-label{
  font-size:14px;
  font-weight:700;
  color:var(--teal-dark);
  margin:0 0 5px;
  letter-spacing:.02em;
}
.pc-stat-value{
  font-size:15.5px;
  line-height:1.7;
  color:#26383f;
  margin:0;
  font-weight:600;
}
.pc-stat-sub{
  display:inline-block;
  font-size:13.5px;
  color:#4f6870;
  font-weight:500;
  margin-top:3px;
}
/* 当社の実例ボックス */
.pricing-real-example{
  background:linear-gradient(135deg,#fff8ee 0%,#fff 100%);
  border:1px dashed #e4c682;
  border-radius:12px;
  padding:14px 16px;
  margin-top:auto;
}
.pre-label{
  font-size:13px;
  font-weight:700;
  color:#a87d2a;
  margin:0 0 6px;
  letter-spacing:.02em;
}
.pre-body{
  font-size:13.5px;
  line-height:1.7;
  color:#3e535b;
  margin:0;
}
/* チェックリスト・課題リスト */
.pricing-extra{
  background:#fafdfd;
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 18px;
  margin-top:auto;
}
.pe-label{
  font-size:13px;
  font-weight:700;
  color:var(--teal-dark);
  margin:0 0 8px;
  letter-spacing:.02em;
}
.pe-list{
  list-style:none;
  padding:0;
  margin:0;
}
.pe-list li{
  position:relative;
  padding-left:18px;
  font-size:13.5px;
  line-height:1.7;
  color:#3e535b;
  margin:5px 0;
}
.pe-list li::before{
  content:"・";
  position:absolute;
  left:0;
  color:var(--teal);
  font-weight:800;
}
/* レスポンシブ */
@media(max-width:980px){
  .pricing-grid-6{
    grid-template-columns:repeat(2,1fr) !important;
  }
}
@media(max-width:640px){
  .pricing-grid-6{
    grid-template-columns:1fr !important;
  }
  .pricing-card-v2{padding:24px 22px !important;}
  .pricing-card-v2 .pricing-icon{width:100px !important;height:100px !important;}
  .pricing-card-v2 h3{font-size:18px !important;}
  .pricing-card-v2 .pricing-amount{font-size:26px !important;}
}

/* ヒーロータグの背景色を順番に合わせて再割り当て(AI=水色 / MUSIC=黄色 / ART=ピンク) */
.hero-tags a:nth-child(1){background:#fdebef !important;}  /* ART:ピンク */
.hero-tags a:nth-child(2){background:#fff9df !important;}  /* MUSIC:黄色 */
.hero-tags a:nth-child(3){background:#eaf8fa !important;}  /* 業務サポートツール:水色 */

/* スマホ表示時、各事業ページの画像を先に表示(画像 → テキストの順) */
@media(max-width:640px){
  .page-hero .page-hero-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"image" "text" !important;
    gap:36px !important;
  }
  .page-hero .page-hero-grid > img{
    grid-area:image !important;
    height:auto !important;
    width:100% !important;
    border-radius:18px !important;
    margin:0 !important;
  }
  .page-hero .page-hero-grid > div{
    grid-area:text !important;
  }
  .page-hero{padding:30px 0 !important;}
  /* AI事業ページの見出し・キャッチコピーを他ページに揃える */
  .ai-hero h1{font-size:30px !important;}
  .ai-hero .page-lead{font-size:20px !important;}
  .hero-subcopy{font-size:15.5px !important;}
}

/* MESSAGE セクションの代表写真:
   PC では右側に / スマホでは MESSAGE 直後に表示 */
.msg-photo-mobile{display:none;}
.msg-photo-pc{display:block;}
@media(max-width:640px){
  .msg-photo-mobile{
    display:block !important;
    width:100%;
    height:auto;
    border-radius:18px;
    margin:14px 0 22px;
    box-shadow:0 12px 28px rgba(73,118,126,.10);
  }
  .msg-photo-pc{display:none !important;}
}


/* ================================
   v25: トップページ ヒーロー スマホ画面いっぱい表示(リクルート参考)
   2026-05-09: 画面いっぱい縦長で、地球を画面上端に、バッヂ・ボタンはスリムに
   ================================ */
@media(max-width:640px){
  /* 1. ヒーローセクション:画面の高さいっぱい */
  .home-hero{
    min-height:100vh !important;
    min-height:100svh !important;
    height:100svh !important;
    display:flex !important;
    align-items:flex-end !important;
    padding:0 !important;
    overflow:hidden;
  }
  /* 2. 背景写真:1.611倍サイズ、5%左、上方シフトをマイルド補正(実機を少しだけ下げる) */
  .hero-photo{
    background-size:auto 120.79% !important;
    background-position:55% calc(-9vh - 240px) !important;                                /* フォールバック */
    background-position:55% calc(-9vh - 240px + (100lvh - 100svh) / 4) !important;        /* マイルド補正 */
    animation:heroIntro 14s ease-out forwards !important;
  }
  /* 3. 白オーバーレイのみ(水色は ::before で別レイヤーに) */
  .home-hero .hero-bg{
    background-image:linear-gradient(180deg,
      rgba(255,255,255,.04) 0%,
      rgba(255,255,255,.00) 22%,
      rgba(255,255,255,.30) 58%,
      rgba(255,255,255,.85) 84%,
      rgba(255,255,255,.96) 100%) !important;
  }
  /* 4. ::before:箱を AI/IT の上の線より上だけに配置、円の中心は箱の右下 */
  .home-hero::before{
    display:block !important;
    content:"" !important;
    position:absolute !important;
    bottom:294px !important;                                /* 古いブラウザ用フォールバック */
    bottom:calc(294px - (100lvh - 100svh) / 2) !important;  /* モダンブラウザ:padding に追従 */
    right:-20px !important;        /* さらに右に20px(円の中心を画面右端より20px右へ) */
    left:auto !important;
    top:auto !important;
    width:90% !important;          /* 元の100%から 90%(半径をひと回り小さく) */
    height:54% !important;         /* 元の60%から 54%(同じく90%) */
    background:radial-gradient(circle at 100% 100%,
      rgba(120,214,226,.55) 0%,
      rgba(120,214,226,.35) 22%,
      rgba(170,228,234,.15) 42%,
      rgba(255,255,255,0) 62%) !important;
    z-index:2 !important;
    pointer-events:none;
    opacity:1 !important;
  }
  .home-hero:after{display:none !important;}
  /* 5. コンテンツを画面下端に寄せ、左右にゆったり余白
     padding-bottom はハーフ補正(案B):
     - PC シミュ(lvh=svh):132px(変化なし)
     - 実機(lvh > svh):実機 viewport の比率に合わせて自動的に 70px 程度に */
  .home-hero .hero-content{
    padding:0 8% 132px 8% !important;                                 /* 古いブラウザ用フォールバック */
    padding:0 8% calc(132px - (100lvh - 100svh) / 2) 8% !important;   /* モダンブラウザ:ハーフ補正 */
    width:100% !important;
    box-sizing:border-box !important;
  }
  /* 6. eyebrow:スマホでは非表示(ヘッダーで会社名表示済み) */
  .home-hero .hero-content .eyebrow{
    display:none !important;
  }
  /* 7. キャッチコピー */
  .home-hero .hero-content h1{
    font-size:28px !important;
    line-height:1.6 !important;
    letter-spacing:.02em !important;
    margin-bottom:24px !important;
  }
  .home-hero .hero-lead{display:none !important;}
  /* 8. 事業バッヂ:細くシンプルに、線で区切る軽快なリスト風 */
  .home-hero .hero-tags{
    margin-top:0 !important;
    gap:0 !important;
    display:flex !important;
    flex-direction:column !important;
    border-top:1px solid rgba(60,120,130,.18);
  }
  .home-hero .hero-tags a{
    padding:13px 4px !important;
    font-size:12.5px !important;
    border:none !important;
    border-bottom:1px solid rgba(60,120,130,.18) !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    font-weight:600 !important;
    letter-spacing:.04em !important;
    color:#2c4048 !important;
    display:flex !important;
    align-items:center !important;
    gap:12px;
    position:relative;
  }
  .home-hero .hero-tags a::after{
    content:"→";
    margin-left:auto;
    color:var(--teal);
    font-weight:700;
    font-size:14px;
    transition:transform .2s ease;
  }
  .home-hero .hero-tags a:hover::after{
    transform:translateX(3px);
  }
  /* 9. ボタンはスマホでは非表示(ヘッダーに「お問い合わせ」あり、自然スクロールで十分) */
  .home-hero .hero-actions{
    display:none !important;
  }
}


/* ================================
   v26: 音楽事業ページ 主な商品ラインナップ
   2026-05-09: スマホでも商品写真の上下が切れないように
   PCの4列より1列の方が横幅が広く、固定高さ190pxだと
   landscape比になりすぎて上下が大きくクロップされていた。
   スマホは自然な縦横比で全体を表示する。
   ================================ */
@media(max-width:640px){
  .product-grid article > img{
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    background:#fff;
  }
}


/* ================================
   v27: ミッション ←→ 事業紹介 の余白(現在の 80%)
   2026-05-10: mission-bottom:77 + business-top:83 = 160px
   ================================ */
.mission-section{padding-bottom:77px !important;}
.business-section{padding-top:83px !important;}
@media(max-width:640px){
  .mission-section{padding-bottom:77px !important;}
  .business-section{padding-top:58px !important;}
}

/* ================================
   v33: トップページ オンラインショップへの導線(横並びカード版)
   2026-05-10: 1カードを画像左+テキスト右の横長レイアウトに、2カードを縦に積む
   2カード目は画像と本文を左右反転(雑誌風の交互レイアウト)
   ================================ */
.online-shop-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  max-width:1100px;
  margin:0 auto;
}
.online-shop-card{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 18px 45px rgba(73,118,126,.10);
  transition:transform .3s ease, box-shadow .3s ease;
  min-height:320px;
}
.online-shop-card:hover{
  transform:translateY(-4px);
  box-shadow:0 28px 60px rgba(73,118,126,.18);
}
.online-shop-card > img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* 2 カード目は画像を右、本文を左に反転(交互レイアウト) */
.online-shop-card:nth-child(even) > img{
  grid-column:2;
  grid-row:1;
}
.online-shop-card:nth-child(even) .online-shop-card-body{
  grid-column:1;
  grid-row:1;
}
.online-shop-card-body{
  padding:44px 48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.online-shop-label{
  display:inline-block;
  width:auto;
  align-self:flex-start;
  font-size:13px;
  color:var(--teal-dark);
  background:#f4fbfc;
  border:1px solid #cfe6ea;
  border-radius:999px;
  padding:6px 16px;
  font-weight:700;
  letter-spacing:.06em;
  margin:0 0 18px;
}
.online-shop-card h3{
  font-family:'Noto Serif JP',serif;
  font-size:32px;
  font-weight:600;
  letter-spacing:.08em;
  margin:0 0 18px;
  color:var(--ink);
  line-height:1.4;
}
.online-shop-card-body > p{
  margin:0 0 28px;
  color:var(--muted);
  line-height:1.95;
  font-size:15.5px;
}
.online-shop-card .btn{
  align-self:flex-start;
}

/* タブレット:左右レイアウトはキープ、パディング・サイズ調整 */
@media(max-width:980px){
  .online-shop-card-body{padding:32px 36px;}
  .online-shop-card h3{font-size:28px;}
  .online-shop-card{min-height:280px;}
}

/* スマホ:画像上 + 本文下に縦積み */
@media(max-width:640px){
  .online-shop-grid{gap:24px;}
  .online-shop-card{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .online-shop-card > img{
    height:220px;
  }
  /* 2 カード目もスマホでは画像上 → 本文下に統一 */
  .online-shop-card:nth-child(even) > img{
    grid-column:1;
    grid-row:1;
  }
  .online-shop-card:nth-child(even) .online-shop-card-body{
    grid-column:1;
    grid-row:2;
  }
  .online-shop-card-body{padding:26px;}
  .online-shop-card h3{font-size:24px;}
  .online-shop-card-body > p{font-size:14.5px;}
}


/* ================================
   v32: 各事業ページ ヒーロー section-label に副題を統合
   2026-05-10: 「ART ｜ 絵画通販」のように1行で
   ================================ */
.page-hero .section-label{
  font-size:15px;
  letter-spacing:.08em;
}
.page-hero .section-label .en{
  letter-spacing:.22em;
  margin-right:4px;
}
@media(max-width:640px){
  .page-hero .section-label{
    font-size:13.5px;
  }
}


/* ================================
   v31: 上部メニュー オンラインショップ ドロップダウン
   2026-05-10: PC はホバーで展開、スマホは縦並びでインライン表示
   ================================ */
.site-nav .nav-shop{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-shop-label{
  cursor:default;
  display:flex;
  align-items:center;
  gap:6px;
  color:#30444b;
  font-weight:600;
  font-size:15px;
  user-select:none;
}
.nav-shop-label::after{
  content:"▾";
  font-size:11px;
  color:#7a9298;
}
.nav-shop-menu{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 12px 32px rgba(60,105,115,.14);
  padding:8px 0;
  min-width:180px;
  z-index:100;
  opacity:0;
  visibility:hidden;
  transition:opacity .15s ease, transform .15s ease;
  transform:translateX(-50%) translateY(4px);
}
.nav-shop:hover .nav-shop-menu,
.nav-shop:focus-within .nav-shop-menu{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.nav-shop-menu a{
  display:block;
  padding:11px 22px;
  color:#30444b;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}
.nav-shop-menu a:hover{
  background:#f4fbfc;
  color:var(--teal);
}
/* タブレット・スマホ:インライン表示(常に展開) */
@media(max-width:980px){
  .site-nav .nav-shop{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    width:100%;
  }
  .nav-shop-label{
    color:#7a9298;
    font-size:13px;
    letter-spacing:.04em;
    padding:0;
  }
  .nav-shop-label::after{display:none;}
  .nav-shop-menu{
    position:static;
    transform:none;
    border:none;
    box-shadow:none;
    padding:0;
    background:transparent;
    min-width:auto;
    opacity:1;
    visibility:visible;
    margin-top:6px;
  }
  .nav-shop-menu a{
    padding:6px 0 6px 16px;
    color:#30444b;
    font-size:15px;
    font-weight:600;
  }
}


/* ================================
   v30: art / music ページ ヒーロー → メッセージ の余白
   2026-05-10: 元の 80% から、さらに 70%(累計 56%)
   PC: page-hero-bottom:50 + message-section-top:54 = 104px
   ================================ */
.page-hero.soft-art,
.page-hero.soft-music{
  padding-bottom:50px !important;
}
.page-hero + .section.message-section{
  padding-top:54px !important;
}
@media(max-width:640px){
  .page-hero.soft-art,
  .page-hero.soft-music{
    padding-bottom:34px !important;
  }
  .page-hero + .section.message-section{
    padding-top:36px !important;
  }
}

/* ================================
   v28: 事業紹介カード:タブレット・スマホでもロゴ+バッヂを横並びに
   2026-05-10: PC と統一感のあるレイアウトに
   ================================ */
@media(max-width:980px){
  .business-brand-row{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:12px !important;
  }
  .business-brand-row span{
    white-space:nowrap !important;
  }
}
@media(max-width:640px){
  .business-brand-row{
    gap:10px !important;
  }
  .business-brand-row span{
    font-size:11.5px !important;
    padding:6px 10px !important;
    /* 万一狭すぎる端末で text を改行 */
    white-space:normal !important;
  }
}

/* ================================
   v29: お問い合わせ プライバシーポリシー同意ブロック
   2026-05-10: 説明文と目立つリンクを追加して安心感アップ
   ================================ */
.form-privacy-block{
  background:#f5fbfc;
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px 22px;
  margin:18px 0 24px;
}
.form-privacy-note{
  margin:0 0 12px;
  font-size:14px;
  line-height:1.85;
  color:#3e535b;
}
.form-privacy-link{
  margin:0 0 14px;
}
.form-privacy-link a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--teal-dark);
  font-weight:700;
  font-size:14px;
  text-decoration:underline;
  text-underline-offset:3px;
}
.form-privacy-link a:hover{
  color:var(--teal);
}
.form-privacy-link svg{
  flex-shrink:0;
}
.form-privacy-block .form-agree{
  margin:0 !important;
  padding:0;
  background:transparent;
  border:none;
  font-weight:500;
}
.form-privacy-block .form-agree a{
  color:var(--teal-dark);
  font-weight:600;
  text-decoration:underline;
}
@media(max-width:640px){
  .form-privacy-block{
    padding:16px 14px;
  }
  .form-privacy-note{
    font-size:13.5px;
    line-height:1.8;
  }
  .form-privacy-link a{
    font-size:13px;
  }
}


