.gift-page { --blue:#2C7BE5; --orange:#FF7A3D; --ink:#14213d; --muted:#5d6b82; --line:#e3eaf4; color:var(--ink); background:#fff; overflow-x:hidden; }
.gift-page .wrap { max-width:1120px; }
.gift-page svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.gift-page a:focus-visible,.gift-page summary:focus-visible { outline:3px solid var(--blue); outline-offset:3px; border-radius:8px; }
.skip-link { position:absolute; top:-100px; right:16px; z-index:100; padding:10px 18px; background:#fff; color:var(--blue); border-radius:10px; }
.skip-link:focus { top:12px; }

.gift-header { background:#fff; }
.gift-header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:64px; }
.gift-header .brand-name { font-weight:900; font-size:1.15rem; color:var(--blue); }
.gift-header nav { display:flex; gap:32px; font-size:.88rem; font-weight:600; color:var(--muted); }
.gift-header nav a:hover { color:var(--blue); }

.gift-hero { position:relative; overflow:hidden; margin-inline:clamp(0px,2vw,24px); border-radius:0 0 28px 28px; background:linear-gradient(160deg,#eaf3ff 0%,#dcebff 60%,#cfe3ff 100%); }
.gift-hero::before { content:""; position:absolute; inset:auto -10% -40% 30%; height:80%; border-radius:50%; background:radial-gradient(#ffffff90,transparent 70%); }
.gift-bubble { position:absolute; border-radius:50%; background:radial-gradient(circle at 35% 30%,#bcdcff,#7fb6f5); }
.gift-bubble-a { width:24px; height:24px; top:34px; left:46%; }
.gift-bubble-b { width:40px; height:40px; bottom:28px; left:40%; }
.gift-hero-grid { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); align-items:center; gap:32px; padding-block:56px 64px; }
.gift-hero h1 { font-size:clamp(2.1rem,4.6vw,3.4rem); line-height:1.45; font-weight:900; letter-spacing:-.02em; }
.gift-hero h1 span { color:var(--blue); }
.gift-hero-copy > p { max-width:420px; margin-top:14px; color:var(--muted); font-size:1.02rem; line-height:1.95; }
.gift-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.gift-button.gift-button-outline { border:2px solid var(--blue); background:#fff; color:var(--blue); }
.gift-art { position:relative; }
.gift-art img { display:block; width:min(100%,460px); height:auto; margin-inline:auto; border:6px solid #fff; border-radius:18px; box-shadow:0 26px 50px #2c7be540; transform:rotate(-6deg); }
.gift-spark { position:absolute; left:-2%; top:4%; width:48px; height:48px; }
.gift-spark i { position:absolute; width:6px; height:22px; border-radius:4px; background:var(--orange); left:50%; top:50%; transform-origin:50% 36px; }
.gift-spark i:nth-child(1) { transform:rotate(-60deg) translateY(-36px); }
.gift-spark i:nth-child(2) { transform:rotate(-15deg) translateY(-36px); }
.gift-spark i:nth-child(3) { transform:rotate(30deg) translateY(-36px); }

.gift-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:54px; padding:12px 28px; border-radius:14px; color:#fff; font-size:1rem; font-weight:800; transition:transform .18s,box-shadow .18s; }
.gift-button svg { width:22px; height:22px; }
.gift-button:hover:not(.gift-button-unavailable) { transform:translateY(-2px); }
.gift-button-lg { min-height:58px; padding-inline:40px; }
.gift-button-accent { background:linear-gradient(90deg,#ff9150,var(--orange)); box-shadow:0 10px 24px #ff7a3d45; }
.gift-button-primary { background:linear-gradient(90deg,#3b8cf2,#1d63d6); box-shadow:0 10px 24px #2c7be540; }
.gift-button-unavailable { background:#eef1f6; color:#5e6d84; box-shadow:none; cursor:default; }

.gift-section { padding-block:64px; }
.gift-section-head { max-width:720px; margin:0 auto 34px; text-align:center; }
.gift-section h2 { font-size:clamp(1.45rem,2.8vw,2rem); line-height:1.5; font-weight:900; }
.gift-section-head p { margin-top:10px; color:var(--muted); font-size:.95rem; line-height:1.9; }
.gift-lined { display:flex; align-items:center; justify-content:center; gap:28px; }
.gift-lined::before,.gift-lined::after { content:""; flex:0 1 180px; height:2px; background:linear-gradient(90deg,transparent,#bcd5f5); }
.gift-lined::after { transform:scaleX(-1); }

.gift-download-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.gift-download-card { position:relative; overflow:hidden; display:flex; flex-direction:column; padding:28px 28px 30px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 10px 30px #1d3b6812; }
.gift-download-card::before { content:""; position:absolute; top:-80px; left:-60px; width:200px; height:200px; border-radius:50%; background:#f3f8ff; }
.gift-download-card-web::before { background:#fff4ec; }
.gift-download-card > * { position:relative; }
.gift-download-icon { display:grid; place-items:center; width:62px; height:62px; border-radius:50%; background:#e7f0fd; color:var(--blue); }
.gift-download-card-web .gift-download-icon { background:#ffeee4; color:var(--orange); }
.gift-download-icon svg { width:30px; height:30px; }
.gift-download-card h3 { margin-top:16px; font-size:1.35rem; font-weight:900; }
.gift-download-card p { margin:8px 0 24px; color:var(--muted); font-size:.95rem; line-height:1.9; }
.gift-download-card .gift-button { margin-top:auto; }

.gift-steps-section { background:linear-gradient(#f3f8ff,#f8fbff); }
.gift-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.gift-steps li { position:relative; display:flex; flex-direction:column; align-items:center; min-width:0; padding:24px 20px 20px; border:1px solid var(--line); border-radius:20px; background:#fff; text-align:center; box-shadow:0 8px 24px #1d3b680d; }
.gift-steps li + li::before { content:"›"; position:absolute; top:62%; right:-30px; color:var(--blue); font-size:2.4rem; font-weight:900; line-height:1; transform:scaleX(-1); }
.gift-step-no { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; color:#fff; font-size:1.3rem; font-weight:900; }
.gift-step-no-blue { background:var(--blue); box-shadow:0 6px 14px #2c7be555; }
.gift-step-no-orange { background:var(--orange); box-shadow:0 6px 14px #ff7a3d55; }
.gift-steps h3 { margin-top:14px; font-size:1.1rem; font-weight:900; }
.gift-steps p { margin:8px 0 18px; color:var(--muted); font-size:.88rem; line-height:1.9; }
.gift-shot { width:100%; margin-top:auto; padding:6px; border:1px solid var(--line); border-radius:18px; background:#f6f8fb; }
.gift-shot img { display:block; width:100%; height:auto; border-radius:13px; }

.gift-faq .wrap { max-width:820px; }
.gift-faq-list { display:grid; gap:12px; }
.gift-faq-list details { border:1px solid var(--line); border-radius:12px; background:#fff; }
.gift-faq-list summary { position:relative; padding:14px 20px 14px 48px; cursor:pointer; font-weight:700; list-style:none; }
.gift-faq-list summary::-webkit-details-marker { display:none; }
.gift-faq-list summary::after { content:""; position:absolute; left:22px; top:50%; width:8px; height:8px; border:solid var(--ink); border-width:0 2px 2px 0; transform:translateY(-70%) rotate(45deg); transition:transform .18s; }
.gift-faq-list details[open] summary::after { transform:translateY(-30%) rotate(-135deg); }
.gift-faq-list details p { padding:0 20px 16px; color:var(--muted); font-size:.92rem; line-height:1.9; }
.gift-faq-list a { color:var(--blue); font-weight:700; }

.gift-footer { border-top:1px solid var(--line); }
.gift-footer-inner { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:72px; color:var(--muted); font-size:.85rem; }
.gift-footer a:hover { color:var(--blue); }

@media (max-width:900px) {
    .gift-steps { gap:20px; }
    .gift-steps li + li::before { display:none; }
}
@media (max-width:720px) {
    .gift-header nav { display:none; }
    .gift-hero { margin:0; border-radius:0 0 22px 22px; }
    .gift-hero-grid { display:flex; flex-direction:column-reverse; gap:28px; padding-block:30px 44px; text-align:center; }
    .gift-hero-copy > p { margin-inline:auto; }
    .gift-hero-actions { justify-content:center; }
    .gift-art img { width:min(86%,380px); }
    .gift-spark { transform:scale(.7); }
    .gift-section { padding-block:48px; }
    .gift-download-grid,.gift-steps { grid-template-columns:1fr; }
    .gift-download-card { padding:22px; }
    .gift-download-card .gift-button { width:100%; }
    .gift-lined::before,.gift-lined::after { display:none; }
    .gift-shot { max-width:300px; }
}
@media (prefers-reduced-motion:reduce) { .gift-button,.gift-faq-list summary::after { transition:none; } }
.gift-lined { white-space:nowrap; }
.gift-footer { padding:0; background:#fff; }
@media (max-width:720px) { .gift-bubble { display:none; } .gift-lined { white-space:normal; } }
