:root{--bg:#f7fbff;--card:rgba(255,255,255,.78);--text:#102033;--muted:#64748b;--blue:#08aeea;--deep:#005cb8;--green:#79d948;--line:rgba(0,130,220,.18);--shadow:0 24px 70px rgba(4,61,120,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans JP',sans-serif;background:radial-gradient(circle at 70% 10%,#e9faff,transparent 36%),linear-gradient(180deg,#fff,var(--bg));color:var(--text)}body.dark{--bg:#06111f;--card:rgba(9,25,45,.78);--text:#eef8ff;--muted:#a9bdd2;--line:rgba(80,210,255,.2);background:radial-gradient(circle at 70% 10%,#063a58,transparent 36%),#06111f}.loader{position:fixed;inset:0;background:#fff;display:grid;place-items:center;z-index:99;transition:.6s}.loader img{width:180px;border-radius:28px;box-shadow:var(--shadow)}.loader.hide{opacity:0;pointer-events:none}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 5vw;background:rgba(255,255,255,.72);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}body.dark .site-header{background:rgba(5,15,28,.72)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--text);letter-spacing:.08em}.brand img,footer img{width:32px;height:32px;border-radius:8px}.nav{display:flex;gap:22px}.nav a,footer a{color:var(--muted);text-decoration:none;font-size:14px}.mode{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:10px 13px}.hero{min-height:86vh;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:7vw 6vw;position:relative;overflow:hidden}.hud{position:absolute;inset:8%;background:repeating-linear-gradient(90deg,transparent 0 44px,var(--line) 45px 46px),repeating-linear-gradient(0deg,transparent 0 44px,var(--line) 45px 46px);mask-image:radial-gradient(circle,#000 0 45%,transparent 70%);opacity:.45}.label{color:var(--deep);font-weight:800;letter-spacing:.18em;font-size:13px}.hero h1{font-size:clamp(44px,7vw,90px);line-height:1.02;margin:10px 0}.hero h1 span{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;color:transparent}.hero p{font-size:18px;line-height:1.9;color:var(--muted);max-width:620px}.hero-visual img{width:100%;border-radius:38px;box-shadow:var(--shadow);transform:perspective(1000px) rotateY(-6deg)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border:1px solid var(--line);border-radius:999px;color:var(--text);text-decoration:none;background:var(--card);box-shadow:0 10px 30px rgba(0,174,234,.08)}.primary{background:linear-gradient(90deg,var(--deep),var(--blue));color:white}.actions{display:flex;gap:14px;flex-wrap:wrap}.section{padding:90px 6vw}.section h2{font-size:clamp(32px,5vw,58px);margin:0 0 28px}.section-head,.split{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center}.company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.company-card,.panel,.chat-card,.news-list article,.mission,form{background:var(--card);border:1px solid var(--line);border-radius:30px;padding:24px;box-shadow:var(--shadow);backdrop-filter:blur(18px)}.company-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:22px}.company-card h3{font-size:22px}.company-card p,.panel p{color:var(--muted);line-height:1.8}.company-card ul{display:flex;gap:8px;list-style:none;padding:0;flex-wrap:wrap}.company-card li{padding:7px 10px;border-radius:999px;background:rgba(8,174,234,.1);color:var(--deep);font-size:12px}.smart{background:linear-gradient(135deg,rgba(8,174,234,.08),rgba(121,217,72,.08))}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:20px 0}.service-grid button{padding:18px 10px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);font-weight:700;cursor:pointer}.chat-card{margin-top:20px}.chat-answer{min-height:70px;border-radius:18px;background:rgba(0,140,220,.08);padding:18px;color:var(--muted)}.chat-input{display:flex;gap:10px;margin-top:12px}.chat-input input,form input,form textarea{width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.6);color:var(--text)}.chat-input button,form button{border:0}.news-list{display:grid;gap:14px}.news-list article{display:flex;gap:22px;align-items:center}.news-list time{color:var(--deep);font-weight:800}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:24px;overflow:hidden}th,td{padding:18px;border-bottom:1px solid var(--line);text-align:left}th{width:120px;color:var(--deep)}.mission p{font-size:24px;line-height:1.8}form{display:grid;gap:12px;max-width:760px}textarea{min-height:150px}footer{display:flex;justify-content:space-between;align-items:center;padding:30px 6vw;border-top:1px solid var(--line);color:var(--muted)}footer nav{display:flex;gap:16px}.reveal{opacity:0;transform:translateY(24px);transition:.8s}.reveal.show{opacity:1;transform:none}@media(max-width:900px){.nav{display:none}.hero,.section-head,.split{grid-template-columns:1fr}.company-grid,.service-grid{grid-template-columns:1fr}.hero{padding-top:90px}footer{flex-direction:column;gap:14px}}


/* Dedicated company pages support */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.card img{width:100%;aspect-ratio:16/10;object-fit:contain;border-radius:20px;background:white;margin-bottom:18px}.card h3{font-size:24px;margin:8px 0}.card p,.card li{color:var(--muted);line-height:1.8}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.tags span{font-size:12px;padding:7px 10px;border-radius:999px;background:rgba(8,174,234,.1);border:1px solid var(--line);font-weight:800;color:var(--deep)}.feature-list{display:grid;gap:14px}.feature{padding:18px;border-left:4px solid var(--blue);background:rgba(255,255,255,.7);border-radius:16px}body.dark .feature{background:rgba(9,25,45,.7)}.service{background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(238,249,255,.78));border:1px solid var(--line);border-radius:24px;padding:22px;min-height:150px}body.dark .service{background:rgba(9,25,45,.72)}.service b{font-size:18px}.flow{counter-reset:n;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.flow div{counter-increment:n}.flow div:before{content:counter(n,decimal-leading-zero);display:block;color:var(--blue);font-weight:900;margin-bottom:8px}.mini-link{display:inline-flex;margin-top:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);color:var(--deep);font-weight:800;text-decoration:none;background:rgba(255,255,255,.55)}@media(max-width:900px){.grid,.flow{grid-template-columns:1fr}}

/* =========================================================
   Final Responsive Fix
   - PC表示は既存デザインを維持
   - 900px以下でスマホ・iPhone Pro Max対応
   - 画像を確実に角丸
   ========================================================= */

/* 全画像のはみ出し防止 */
img {
  max-width: 100%;
  height: auto;
}

/* 107Studioなどのヒーローロゴ画像 */
.hero-logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* PCでも画像を角丸にする */
.hero-logo img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 28px !important;
  overflow: hidden;
}

/* 既存の .hero-visual 画像も角丸を維持 */
.hero-visual img {
  border-radius: 38px;
}

/* iPhone Pro Max / 大きめスマホ / タブレット縦向き */
@media screen and (max-width: 900px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .site-header {
    width: 100%;
    padding: 14px 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .brand {
    min-width: 0;
  }

  .brand span {
    font-size: 14px;
    line-height: 1.35;
  }

  .brand img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
  }

  /* 既存CSSの .nav{display:none} を上書きして表示 */
  .nav {
    display: flex !important;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 14px;
    margin-top: 6px;
  }

  .nav a {
    font-size: 14px;
    white-space: nowrap;
  }

  .mode {
    margin-left: auto;
  }

  .hero {
    width: 100%;
    min-height: auto;
    display: flex !important;
    flex-direction: column !important;
    align-items: center;
    text-align: center;
    padding: 56px 18px 42px;
    gap: 28px;
    overflow: hidden;
  }

  .hero > div {
    width: 100%;
    max-width: 100%;
  }

  .hero h1 {
    font-size: clamp(32px, 9vw, 54px);
    line-height: 1.12;
  }

  .hero p {
    max-width: 100%;
    font-size: 15px;
    line-height: 1.8;
    margin-inline: auto;
  }

  .actions {
    width: 100%;
    max-width: 320px;
    margin: 24px auto 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .actions .btn,
  .btn {
    width: 100%;
    justify-content: center;
  }

  /* ここが重要：iPhoneでもヒーロー画像を小さく固定 */
  .hero-logo {
    width: 100%;
    max-width: 280px !important;
    margin: 0 auto;
    display: flex !important;
    justify-content: center;
    overflow: hidden;
    border-radius: 28px;
  }

  .hero-logo img {
    width: min(280px, 76vw) !important;
    max-width: 280px !important;
    height: auto !important;
    object-fit: contain;
    border-radius: 28px !important;
    display: block;
  }

  .hero-visual img {
    width: 100%;
    max-width: 360px;
    height: auto;
    margin-inline: auto;
    transform: none;
  }

  .section {
    width: 100%;
    padding: 48px 18px;
  }

  .section-head,
  .split {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px;
  }

  .company-grid,
  .grid,
  .service-grid,
  .flow {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .card,
  .service,
  .feature,
  .company-card,
  .panel,
  .chat-card,
  .news-list article,
  .mission,
  form {
    width: 100%;
  }

  .feature-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .chat-input {
    flex-direction: column;
  }

  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    white-space: normal;
  }

  th,
  td {
    word-break: break-word;
  }

  .contact form input,
  .contact form textarea,
  .contact form button {
    width: 100%;
  }

  footer {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px 18px;
    text-align: center;
  }

  footer nav {
    justify-content: center;
    flex-wrap: wrap;
  }
}

/* 小さめスマホ */
@media screen and (max-width: 480px) {
  .hero {
    padding-top: 44px;
  }

  .hero h1 {
    font-size: clamp(30px, 10vw, 42px);
  }

  .hero-logo {
    max-width: 230px !important;
    border-radius: 22px;
  }

  .hero-logo img {
    width: min(230px, 72vw) !important;
    max-width: 230px !important;
    border-radius: 22px !important;
  }
}

/* =========================================================
   Strong Mobile Rounded Image Fix
   モバイル版で角丸が効かない場合の最終上書き
   ========================================================= */

.hero-logo,
.hero-logo img,
.hero-visual,
.hero-visual img {
  border-radius: 28px !important;
}

/* 画像の白背景・親枠まで角丸にする */
.hero-logo,
.hero-visual {
  overflow: hidden !important;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
}

/* img自体にも強制的に角丸 */
.hero-logo img,
.hero-visual img {
  display: block !important;
  overflow: hidden !important;
  clip-path: inset(0 round 28px) !important;
  -webkit-clip-path: inset(0 round 28px) !important;
}

/* iPhone / モバイル専用 */
@media screen and (max-width: 900px) {
  .hero-logo {
    max-width: 280px !important;
    border-radius: 28px !important;
    overflow: hidden !important;
    background: transparent !important;
  }

  .hero-logo img {
    width: min(280px, 76vw) !important;
    max-width: 280px !important;
    border-radius: 28px !important;
    clip-path: inset(0 round 28px) !important;
    -webkit-clip-path: inset(0 round 28px) !important;
  }

  .hero-visual {
    border-radius: 28px !important;
    overflow: hidden !important;
  }

  .hero-visual img {
    border-radius: 28px !important;
    clip-path: inset(0 round 28px) !important;
    -webkit-clip-path: inset(0 round 28px) !important;
  }
}

@media screen and (max-width: 480px) {
  .hero-logo,
  .hero-logo img,
  .hero-visual,
  .hero-visual img {
    border-radius: 22px !important;
    clip-path: inset(0 round 22px) !important;
    -webkit-clip-path: inset(0 round 22px) !important;
  }
}


/* Company profile / EyE Records audition */
.company-intro>p{color:var(--muted);line-height:2;max-width:680px}.company-profile-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:stretch}.profile-table-wrap{border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.profile-table{height:100%}.company-profile .mission{height:100%;display:flex;flex-direction:column;justify-content:center}.company-profile .mission h3{font-size:clamp(30px,4vw,48px);margin:10px 0;background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;color:transparent}.news-list a{color:inherit;text-decoration:none}.news-list a:hover{color:var(--deep)}.audition-link{margin-left:6px;background:linear-gradient(90deg,var(--deep),var(--blue));color:#fff}.audition-hero{background:linear-gradient(135deg,rgba(8,174,234,.08),rgba(121,217,72,.06))}.audition-status{font-size:13px!important;color:var(--deep)!important;font-weight:800;margin-top:24px}.audition-message{max-width:1000px;text-align:center;margin:auto}.audition-message>p:last-child{color:var(--muted);line-height:2;max-width:820px;margin:auto}.audition-category{grid-template-columns:repeat(3,1fr)}.audition-representative{max-width:1100px;margin:auto}.audition-representative .mission{padding:50px}.audition-representative h3{font-size:clamp(28px,4vw,48px)}.representative-name{text-align:right}.audition-entry>p{color:var(--muted)}.audition-entry form{max-width:920px}.application-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.audition-entry label{display:grid;gap:8px}.audition-entry label>span{font-weight:700}.audition-entry em{font-style:normal;font-size:10px;color:#fff;background:var(--deep);padding:3px 7px;border-radius:999px}.audition-entry select{width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.6);color:var(--text)}body.dark .audition-entry select{background:rgba(9,25,45,.8)}.audition-entry small,.form-note{color:var(--muted);font-size:12px}.check-row{display:flex!important;align-items:center;grid-template-columns:auto 1fr!important}.check-row input{width:20px!important}.check-row a{color:var(--deep)}.application-submit{border:0;cursor:pointer;width:100%}.honeypot{position:absolute;left:-9999px}.thanks-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,rgba(8,174,234,.12),rgba(121,217,72,.1))}.thanks-card{width:min(680px,100%);text-align:center;background:var(--card);border:1px solid var(--line);border-radius:32px;padding:50px;box-shadow:var(--shadow)}.thanks-card img{width:180px;border-radius:24px}.thanks-card h1{font-size:clamp(44px,8vw,80px);margin:12px}.thanks-card p{color:var(--muted)}
@media(max-width:900px){.company-profile-grid,.application-grid{grid-template-columns:1fr}.audition-category{grid-template-columns:1fr!important}.audition-representative .mission{padding:28px}.representative-name{text-align:left}}
