/* ======================================================
   大阪お墓参り代行サービス
====================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:"Noto Sans JP",sans-serif;

    color:#333;

    line-height:1.8;

    background:#f4f4f4;

}

/* ==========================================
   共通
========================================== */

.container{

    width:min(1100px,92%);

    margin:auto;

}

section{

    padding:80px 0;

}

h2{

    text-align:center;

    font-size:2.2rem;

    margin-bottom:50px;

    color:#222;

    position:relative;

}

h2::after{

    content:"";

    width:80px;

    height:4px;

    background:#b30000;

    display:block;

    margin:18px auto;

}

p{

    margin-bottom:20px;

}

ul{

    list-style:none;

}

/* ==========================================
   Hero
========================================== */

.hero{

    position:relative;

    min-height:100vh;

    background-image:url("images/hero.jpg");

    background-size:cover;

    background-position:center center;

    display:flex;

    align-items:center;

    justify-content:center;

}

.overlay{

    width:100%;

    height:100%;

    background:rgba(0,0,0,.45);

    padding:70px 0;

}

.hero-content{

    width:min(1100px,92%);

    margin:auto;

    color:#fff;

}

.sub{

    font-size:1.2rem;

    letter-spacing:2px;

    margin-bottom:15px;

}

.hero h1{

    font-size:4rem;

    line-height:1.25;

    font-weight:900;

    text-shadow:0 3px 15px rgba(0,0,0,.6);

}

.lead{

    margin-top:30px;

    font-size:1.3rem;

    max-width:700px;

}

/* ==========================================
   キャンペーン
========================================== */

.campaign{

    margin-top:45px;

    max-width:650px;

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    box-shadow:0 10px 35px rgba(0,0,0,.25);

}

.campaign-title{

    background:#333;

    color:#fff;

    text-align:center;

    padding:15px;

    font-weight:bold;

}

.campaign-band{

    background:#d60000;

    color:#fff;

    font-size:2rem;

    font-weight:bold;

    text-align:center;

    padding:20px;

    letter-spacing:2px;

}

.price{

    text-align:center;

    padding:35px;

}

.old{

    display:block;

    color:#777;

    text-decoration:line-through;

    font-size:1.5rem;

    margin-bottom:15px;

}

.new{

    display:block;

    color:#d60000;

    font-size:3rem;

    font-weight:900;

}

.period{

    text-align:center;

    padding-bottom:25px;

    font-size:.95rem;

    color:#555;

}

/* ==========================================
   ボタン
========================================== */

.button-area{

    display:flex;

    gap:20px;

    margin-top:40px;

    flex-wrap:wrap;

}

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:18px 36px;

    border-radius:8px;

    text-decoration:none;

    color:#fff;

    font-size:1.1rem;

    font-weight:bold;

    transition:.3s;

    min-width:260px;

}

.apply{

    background:#0a8d3b;

}

.contact{

    background:#005bbb;

}

.btn:hover{

    transform:translateY(-4px);

    box-shadow:0 12px 25px rgba(0,0,0,.25);

}

/* ==========================================
   紹介
========================================== */

.intro{

    background:#fff;

}

.intro p{

    max-width:900px;

    margin:20px auto;

    text-align:center;

    font-size:1.1rem;

}

/* ==========================================
   ご利用の流れ
========================================== */

.flow{

    background:#f7f7f7;

}

.flow-list{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.flow-item{

    background:#fff;

    border-radius:10px;

    padding:35px;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.step{

    display:inline-block;

    background:#b30000;

    color:#fff;

    padding:8px 18px;

    border-radius:50px;

    margin-bottom:20px;

    font-size:.9rem;

}

.flow-item h3{

    margin-bottom:20px;

}

/* ==========================================
   基本プラン
========================================== */

.plan{

    background:#ffffff;

}

.plan-box{

    max-width:900px;

    margin:auto;

    background:#fff;

    border-radius:12px;

    padding:45px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.plan-box h3{

    color:#b30000;

    margin-bottom:20px;

}

.plan-price{

    font-size:1.2rem;

}

.plan-price span{

    text-decoration:line-through;

    color:#777;

    margin-left:10px;

}

.plan-sale{

    font-size:1.4rem;

    margin:20px 0;

}

.plan-sale strong{

    color:#d60000;

    font-size:2.5rem;

    font-weight:900;

}

.plan-box hr{

    margin:35px 0;

    border:none;

    border-top:1px solid #ddd;

}

.plan-box ul{

    margin-top:25px;

}

.plan-box li{

    padding:14px 0;

    border-bottom:1px solid #ececec;

    position:relative;

    padding-left:30px;

}

.plan-box li::before{

    content:"✓";

    position:absolute;

    left:0;

    color:#0a8d3b;

    font-weight:bold;

}

.note{

    margin-top:25px;

    font-size:.95rem;

    color:#666;

}

/* ==========================================
   サービスのご利用にあたって
========================================== */

.service{

    background:#f7f7f7;

}

.service-box{

    max-width:950px;

    margin:auto;

    background:#fff;

    border-radius:12px;

    padding:40px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.service-box li{

    margin-bottom:25px;

    padding-left:34px;

    position:relative;

}

.service-box li::before{

    content:"●";

    position:absolute;

    left:0;

    color:#b30000;

}

/* ==========================================
   お問い合わせ
========================================== */

.contact-section{

    background:#fff;

}

.contact-box{

    max-width:760px;

    margin:auto;

    text-align:center;

    background:#fafafa;

    border-radius:12px;

    padding:50px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.contact-box h3{

    font-size:2rem;

    color:#333;

    margin-bottom:25px;

}

.contact-box p{

    margin-bottom:18px;

}

.contact-box .button-area{

    justify-content:center;

}

/* ==========================================
   フッター
========================================== */

footer{

    background:#222;

    color:#fff;

    text-align:center;

    padding:35px 20px;

}

footer p{

    margin:0;

    font-size:.95rem;

}

/* ==========================================
   アニメーション
========================================== */

.flow-item,
.plan-box,
.service-box,
.contact-box{

    transition:.35s;

}

.flow-item:hover,
.plan-box:hover,
.service-box:hover,
.contact-box:hover{

    transform:translateY(-6px);

    box-shadow:0 15px 35px rgba(0,0,0,.15);

}

/* ==========================================
   レスポンシブ（タブレット）
========================================== */

@media (max-width:960px){

.hero h1{

    font-size:3rem;

}

.flow-list{

    grid-template-columns:1fr;

}

.button-area{

    flex-direction:column;

}

.btn{

    width:100%;

}

.plan-box,
.service-box,
.contact-box{

    padding:30px;

}

}

/* ==========================================
   レスポンシブ（スマホ）
========================================== */

@media (max-width:600px){

section{

    padding:60px 0;

}

.hero{

    min-height:90vh;

    background-position:center;

}

.hero-content{

    text-align:center;

}

.hero h1{

    font-size:2.2rem;

    line-height:1.4;

}

.sub{

    font-size:1rem;

}

.lead{

    font-size:1rem;

}

.campaign{

    margin-top:30px;

}

.campaign-band{

    font-size:1.5rem;

}

.new{

    font-size:2.3rem;

}

.price{

    padding:25px;

}

.button-area{

    display:block;

}

.btn{

    display:flex;

    width:100%;

    margin-bottom:15px;

    min-width:auto;

    font-size:1rem;

}

h2{

    font-size:1.7rem;

}

.flow-item{

    padding:25px;

}

.plan-box,
.service-box,
.contact-box{

    padding:25px;

}

.contact-box h3{

    font-size:1.5rem;

}

}

/* ==========================================
   ページトップへ戻るボタン用
========================================== */

#pagetop{

    position:fixed;

    right:20px;

    bottom:20px;

    width:55px;

    height:55px;

    border-radius:50%;

    background:#b30000;

    color:#fff;

    text-decoration:none;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:1.5rem;

    box-shadow:0 5px 15px rgba(0,0,0,.25);

    opacity:0;

    pointer-events:none;

    transition:.3s;

}

#pagetop.show{

    opacity:1;

    pointer-events:auto;

}