/* Apple の製品ページを参考にした配色・文字 */
:root{
  --text:#1D1D1F; --sub:#6E6E73; --line:#E5E5EA; --gray:#F5F5F7;
  --blue:#0071E3; --link:#0066CC; --link-dark:#2997FF;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Sans","Noto Sans JP","Segoe UI",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);background:#fff;font-size:17px;line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased;line-break:strict;overflow-wrap:anywhere}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
ul{padding-left:1.2em}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
[hidden]{display:none !important}

/* ナビ */
.gnav{position:sticky;top:0;z-index:20;background:rgba(251,251,253,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
.gnav-in{max-width:1024px;margin:0 auto;padding:0 22px;min-height:48px;display:flex;flex-wrap:wrap;align-items:center;gap:0 28px}
.brand{font-size:15px;font-weight:600;color:var(--text);margin-right:auto}
.brand:hover{text-decoration:none}
.gnav nav{display:flex;flex-wrap:wrap;gap:0 24px}
.gnav nav a{font-size:13px;color:var(--sub);padding:13px 0;transition:color .2s}
.gnav nav a:hover{color:var(--text);text-decoration:none}
.gnav nav a[aria-current="page"]{color:var(--text);font-weight:600}
@media (max-width:560px){.gnav nav{gap:0 16px}.brand{flex-basis:100%;padding-top:10px}}

/* 共通 */
.band{padding:96px 22px}
.band.gray{background:var(--gray)}
.band.white{background:#fff}
.band.black{background:#000;color:#F5F5F7}
.center{text-align:center}
.in{max-width:1024px;margin:0 auto}
.narrow{max-width:820px;margin:0 auto}
.eyebrow{font-size:21px;font-weight:600;color:var(--sub)}
.eyebrow.blue-dark{color:var(--link-dark)}
.h-sec{font-size:40px;font-weight:700;line-height:1.15}
.h-big{margin:12px auto 0;max-width:16em;font-size:56px;font-weight:700;line-height:1.12}
.h-page{font-size:56px;font-weight:700;line-height:1.1}
.sub{margin-top:12px;font-size:19px;color:var(--sub)}
.page-lead{margin-top:12px;font-size:21px;color:var(--sub)}
.band.page{padding:72px 22px 96px;min-height:calc(100vh - 49px)}

.pill{display:inline-flex;align-items:center;min-height:44px;padding:0 24px;border-radius:980px;background:var(--blue);color:#fff;font-size:17px;transition:background .2s}
.pill:hover{background:#0077ED;text-decoration:none}
.more{display:inline-flex;align-items:center;gap:2px;font-size:17px}
.more::after{content:"";width:7px;height:7px;border-right:1.8px solid currentColor;border-top:1.8px solid currentColor;transform:rotate(45deg);margin-left:6px}
.more.on-dark{color:var(--link-dark)}

/* ヒーロー */
.hero{text-align:center;padding:104px 22px 80px}
.hero h1{margin-top:8px;font-size:clamp(40px,5vw,56px);font-weight:600;line-height:1.1;letter-spacing:-.01em}
.hero-lead{margin:20px auto 0;max-width:30em;font-size:clamp(19px,2.4vw,24px);font-weight:600;line-height:1.45}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 32px;margin-top:36px}

/* タイル */
.h-sec + .tiles{margin-top:28px}
.tiles{display:flex;flex-wrap:wrap;gap:20px}
.tile{flex:1 1 280px;min-width:0;min-height:340px;background:#fff;border-radius:28px;padding:40px;display:flex;flex-direction:column;gap:12px;text-align:left;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.tile.wide{flex:2 1 560px}
.tile.dark{background:#1D1D1F;color:#F5F5F7}
.tile:hover{transform:scale(1.015);box-shadow:0 14px 40px rgba(0,0,0,.08)}
.tile h3{font-size:clamp(26px,3vw,32px);font-weight:700;line-height:1.22}
.tile-kicker{margin-top:12px;font-size:14px;font-weight:600;color:var(--sub)}
.k-orange{color:#BF4800}.k-green{color:#1A7F37}.k-blue-dark{color:var(--link-dark)}
.tile-text{color:var(--sub);max-width:32em}
.tile.dark .tile-text{color:#A1A1A6}
.tile .more{margin-top:auto}
@media (max-width:600px){.tile{padding:30px;min-height:0;border-radius:22px}}

/* アプリアイコン風（色付きの角丸に白い線アイコン） */
.app-icon{flex:none;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center}
.app-icon svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-icon.sm{width:44px;height:44px;border-radius:11px}
.app-icon.sm svg{width:24px;height:24px}
.app-icon.xs{width:36px;height:36px;border-radius:9px}
.app-icon.xs svg{width:20px;height:20px}
.orange{background:linear-gradient(180deg,#FF9F0A,#FF6B00)}
.blue{background:linear-gradient(180deg,#5AC8FA,#0071E3)}
.green{background:linear-gradient(180deg,#34C759,#1E9E45)}
.yellow{background:linear-gradient(180deg,#FFD60A,#FF9F0A)}
.purple{background:linear-gradient(180deg,#BF5AF2,#8E3BD9)}
.gray{}
.app-icon.gray{background:linear-gradient(180deg,#8E8E93,#48484A)}
.app-icon.black{background:linear-gradient(180deg,#48484A,#1D1D1F)}

/* 黒い面 */
.band.black{padding:120px 22px}
.band-text{margin:24px auto 0;max-width:34em;font-size:19px;color:#A1A1A6}
.facts{display:flex;flex-wrap:wrap;justify-content:center;gap:32px 80px;margin:64px 0 56px}
.fact-num{font-size:64px;font-weight:700;line-height:1}
.fact-num span{font-size:26px;margin-left:2px}
.fact-label{margin-top:10px;color:#A1A1A6;font-size:15px}

/* 技術の概要 */
.tech-icons{display:flex;flex-wrap:wrap;justify-content:center;gap:40px 56px;margin:48px 0}
.tech-icons > div{width:150px}
.line-icon{width:44px;height:44px;fill:none;stroke:var(--blue);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.t-name{margin-top:10px;font-weight:600}
.t-sub{margin-top:2px;font-size:14px;color:var(--sub)}
.mail-big{margin-top:16px;font-size:21px}

/* 一覧（iPhone の設定画面風） */
.group{margin-top:40px;background:#fff;border-radius:18px;overflow:hidden}
.group-label{margin:36px 0 8px 22px;font-size:15px;color:var(--sub)}
.group-label + .group{margin-top:0}
.group > * + *{border-top:1px solid var(--line)}
.row{display:flex;align-items:center;gap:16px;padding:14px 22px;color:var(--text)}
.row.wrap{flex-wrap:wrap}
.row-name{flex:1;min-width:0}
.row-val{color:var(--sub);font-size:15px;text-align:right}
a.plain,.plain{color:var(--text)}
a.row:hover{background:#FAFAFC;text-decoration:none}
.copy{flex:none;min-height:40px;padding:0 18px;border-radius:980px;border:0;background:#E8F2FC;color:var(--link);font:inherit;font-size:15px;cursor:pointer}
.copy:hover{background:#DCEBFA}
.chev{flex:none;width:18px;height:18px;fill:none;stroke:#C7C7CC;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}

details summary{list-style:none;display:flex;align-items:center;gap:16px;padding:18px 22px;cursor:pointer}
details summary::-webkit-details-marker{display:none}
details summary:hover{background:#FAFAFC}
details[open] .chev{transform:rotate(90deg)}
.row-main{flex:1;min-width:0}
.row-title{display:block;font-size:19px;font-weight:600}
.row-sub{display:block;font-size:15px;color:var(--sub)}
.row-status{flex:none;font-size:15px;color:var(--sub)}
.detail{padding:0 22px 26px 82px;font-size:16px}
details[open] .detail{animation:open .35s ease}
@keyframes open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.detail > * + *{margin-top:14px}
.kv{display:grid;grid-template-columns:4em minmax(0,1fr);gap:6px 14px}
.kv dt{color:var(--sub)}
.muted{color:var(--sub)}
.links{display:flex;flex-wrap:wrap;gap:4px 24px}
@media (max-width:600px){.detail{padding:0 22px 24px}.row-status{display:none}}

.hrow{display:flex;gap:20px;padding:20px 22px}
.date{flex:none;width:7em;color:var(--sub);font-size:15px;padding-top:2px}
.h-title{font-weight:600;display:flex;align-items:center;gap:8px}
.h-sub{margin-top:2px;font-size:15px;color:var(--sub)}
.mini-icon{flex:none;width:18px;height:18px;fill:none;stroke:#FF9F0A;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:560px){.hrow{flex-direction:column;gap:2px}}
.foot-note{margin:28px 0 0 22px;font-size:15px;color:var(--sub)}

.foot{background:var(--gray);border-top:1px solid #D2D2D7}
.foot-in{max-width:1024px;margin:0 auto;padding:18px 22px 36px;font-size:12px;color:var(--sub)}

@media (max-width:600px){
  .band{padding:72px 18px}
  .h-sec{font-size:32px}
  .h-big{font-size:38px}
  .h-page{font-size:42px}
  .fact-num{font-size:52px}
}

/* スクロールしたときの登場（下から少し大きくなりながら） */
.js .rv{opacity:0;transform:translateY(48px) scale(.98)}
.js .rv.in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none}
  *,*::before,*::after{transition:none !important;animation:none !important}
}
