:root{
    --c:#00a8e8;
    --m:#ec008c;
    --y:#fff200;
    --k:#111;
    --g:#72757d;
    --bg:#f7f7f7;
    --max:1240px;
}

*{box-sizing:border-box;}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    color:var(--k);
    font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Yu Gothic",sans-serif;
    line-height:1.75;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

.wrap{
    width:min(calc(100% - 48px),var(--max));
    margin:auto;
}

/* ================= HEADER ================= */

.header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(12px);
    border-bottom:1px solid #eee;
}

.header-in{
    height:76px;
    display:flex;
    align-items:center;
    gap:25px;
}

.brand img{
    width:190px;
}

.tag{
    font-size:12px;
    color:#666;
    margin-right:auto;
}

.nav{
    display:flex;
    gap:22px;
    font-size:14px;
    font-weight:800;
}

.nav a:hover{
    color:var(--c);
}

.menu{
    display:none;
    border:0;
    background:none;
    font-size:28px;
}

/* ================= HERO ================= */

.hero{
    min-height:720px;
    display:grid;
    align-items:center;
    background:url("../images/hero-bg.png") center/cover;
}

.hero-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:35px;
    align-items:center;
}

.eyebrow{
    font-size:13px;
    letter-spacing:.2em;
    font-weight:900;
    color:var(--c);
}

.hero h1{
    font-size:clamp(56px,7vw,96px);
    line-height:.98;
    letter-spacing:-.06em;
    margin:16px 0 26px;
}

.hero p{
    font-size:21px;
    color:#434852;
}

.device{
    display:flex;
    gap:14px;
    align-items:center;
    margin-top:24px;
    font-size:14px;
    font-weight:800;
}

.device img{
    width:150px;
}

/* ================= SECTION ================= */

.section{
    padding:106px 0;
}

.gray{
    background:var(--bg);
}

.head{
    text-align:center;
    margin-bottom:46px;
}

.head h2{
    font-size:clamp(34px,5vw,58px);
    letter-spacing:-.045em;
    margin:7px 0 10px;
}

.head p{
    color:var(--g);
}

/* ================= ITEMS ================= */

.items{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}

.item{
    background:#fff;
    border:1px solid #e7e7e7;
    border-radius:14px;
    overflow:hidden;
    position:relative;
    transition:.25s;
}

.item:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.item img{
    aspect-ratio:1/1;
    object-fit:contain;
    background:#fafafa;
}

.item-body{
    padding:18px;
}

.item h3{
    font-size:17px;
    margin:0 0 5px;
}

.sub{
    font-size:12px;
    color:#777;
    margin-bottom:13px;
}

.positions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.positions a{
    font-size:11px;
    font-weight:900;
    padding:7px 10px;
    border:1px solid #ddd;
    border-radius:999px;
}

.positions a:hover{
    color:var(--c);
    border-color:var(--c);
}

.item:after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:4px;
    background:linear-gradient(90deg,var(--c) 0 33%,var(--m) 33% 66%,var(--y) 66%);
}

/* ================= FEATURES ================= */

.features{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    align-items:stretch;
}

.feature{
    background:#fff;
    border:1px solid #e7e7e7;
    border-radius:14px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

.feature img{
    width:100%;
    height:260px;
    object-fit:contain;
    object-position:center;
    padding:20px;
    background:#fff;
}

.feature div{
    padding:22px;
    flex:1;
}

.feature h3{
    margin:0 0 7px;
}

.feature p{
    margin:0;
    color:#666;
    font-size:14px;
}

/* ================= STEP ================= */

.step{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:68px;
    align-items:center;
    margin:70px 0;
}

.step:nth-child(even) .pic{
    order:2;
}

.pic img{
    border-radius:18px;
    border:1px solid #eee;
}

.step small{
    font-weight:900;
    letter-spacing:.15em;
    color:var(--c);
}

.step h3{
    font-size:38px;
    margin:8px 0;
}

.step p{
    color:#666;
}

/* ================= FAQ ================= */

.faq-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:48px;
    align-items:center;
}

.faq-list{
    display:grid;
    gap:12px;
}

.faq-item{
    background:#fff;
    border:1px solid #e5e5e5;
    border-radius:12px;
    overflow:hidden;
}

.faq-q{
    width:100%;
    padding:20px;
    border:0;
    background:#fff;
    text-align:left;
    font-weight:900;
    display:flex;
    justify-content:space-between;
    cursor:pointer;
}

.faq-a{
    display:none;
    padding:0 20px 20px;
    color:#666;
}

.faq-item.open .faq-a{
    display:block;
}

/* ================= ORDER ================= */

.orders{
    padding:88px 0;
    background:#111;
    color:#fff;
}

.order-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}

.order{
    padding:40px;
    border-radius:16px;
    background:#1c1f25;
}

.order h3{
    font-size:34px;
    margin:0 0 10px;
}

.order p{
    color:#bec4ce;
}

.btn{
    display:inline-flex;
    min-height:52px;
    align-items:center;
    justify-content:center;
    padding:0 24px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-weight:900;
}

.btn.white{
    background:#fff;
    color:#111;
}

.btn.rakuten{
    background:#bf0000;
}

/* ================= CTA 修正版 ================= */

.cta{
    position:relative;
    overflow:hidden;
    text-align:center;
    color:#fff;
    padding:110px 0;
    background:url("../images/cta-bg.png") center/cover no-repeat;
}

.cta::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.55);
}

.cta .wrap{
    position:relative;
    z-index:2;
}

.cta h2{
    font-size:52px;
}

.cta p{
    color:#eee;
}

/* 以下（page-hero〜footer〜modal〜media）は今のままでOK */


.page-hero{padding:108px 0 70px;background:#f7f7f7}.page-hero h1{font-size:clamp(44px,6vw,68px);line-height:1.05;margin:0 0 18px}.content{max-width:900px}.card{background:#fff;border:1px solid #e7e7e7;border-radius:16px;padding:34px;margin-bottom:22px}.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.full{grid-column:1/-1}label{font-size:14px;font-weight:900}input,select,textarea{width:100%;padding:14px;border:1px solid #cfd3da;border-radius:10px;font:inherit}textarea{min-height:170px}.req{color:#e60012}.legal table{width:100%;border-collapse:collapse}.legal th,.legal td{padding:16px;border-bottom:1px solid #e5e5e5;text-align:left;vertical-align:top}.legal th{width:28%;background:#fafafa}
.footer{background:#0e1014;color:#fff;padding:66px 0 25px}.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:38px}.footer img{width:220px;filter:brightness(0) invert(1)}.footer a{display:block;color:#adb3bf;margin:8px 0;font-size:14px}.copy{border-top:1px solid #2b2e34;margin-top:42px;padding-top:20px;color:#777;font-size:12px}
.float{display:none;position:fixed;right:22px;bottom:22px;z-index:90;border:0;border-radius:999px;background:#111;color:#fff;padding:16px 22px;font-weight:900;box-shadow:0 15px 35px rgba(0,0,0,.24)}.float.show{display:block}.modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.55);place-items:center;padding:20px}.modal.open{display:grid}.modal-box{width:min(100%,560px);background:#fff;border-radius:18px;padding:30px}.modal-head{display:flex;justify-content:space-between}.close{border:0;width:40px;height:40px;border-radius:50%;font-size:20px}.modal-actions{display:grid;gap:12px;margin-top:22px}.modal-actions a{display:grid;place-items:center;min-height:54px;border-radius:999px;color:#fff;font-weight:900}.estimate{background:#111}
@media(max-width:960px){.nav{display:none;position:absolute;left:0;right:0;top:76px;background:#fff;padding:24px;flex-direction:column}.nav.open{display:flex}.menu{display:block}.tag{margin-right:auto}.hero-grid,.faq-grid,.order-grid,.footer-grid{grid-template-columns:1fr}.items,.features{grid-template-columns:repeat(2,1fr)}.hero{min-height:auto;padding:70px 0}.step{gap:30px}.step:nth-child(even) .pic{order:0}}
@media(max-width:640px){.wrap{width:min(calc(100% - 28px),var(--max))}.tag{display:none}.brand img{width:155px}.section{padding:74px 0}.hero h1{font-size:56px}.hero p{font-size:17px}.items{grid-template-columns:repeat(2,1fr);gap:12px}.item-body{padding:13px}.item h3{font-size:14px}.positions a{font-size:9px;padding:6px 7px}.features{grid-template-columns:1fr}.step{grid-template-columns:1fr;margin:46px 0}.step h3{font-size:30px}.form{grid-template-columns:1fr}.full{grid-column:auto}.order{padding:27px}.order h3{font-size:28px}.cta h2{font-size:38px}.legal table,.legal tbody,.legal tr,.legal th,.legal td{display:block;width:100%}.float{right:14px;bottom:14px}}
