@charset "utf-8";
/* CSS Document */



/* 追加
------------------------------------------------------------*/


.fb_timeline{text-align:center;margin:0 auto 10px;}
.indent-1 {padding-left:1em;text-indent:-1em;}
.indent-2 {padding-left:2em;text-indent:-2em;}
.indent-15 {padding-left:1.5em;text-indent:-1.5em;}
.fade{display:none;}
.banner_img{text-align:center;margin:0 auto;clear:both;}
.banner_img img{border-radius:20px;}
br.pcbr{display:block;}
br.spbr{display:none;}
.text_box{text-align:justify;padding:0;}
.text_box p{margin-bottom:1.5em;}
.text_box ul,.text_box ol{margin-left:1em;list-style-position: outside;}
.text_box ul li{list-style:none;margin-bottom:0.5em;position: relative;padding: 0 0 0 1.5em;}
.text_box li::before {
  content: "\f054";
  font-family: FontAwesome;
font-weight: 400;
padding-right:5px;
color:#F8B500;
position: absolute;
left: 0.5em;
}
.text_box_w{background:#fff;text-align:justify;padding:1em 2em;margin:20px auto 50px;}
.text_box_w img{width:200px;margin-top:5px;}
.text_box_w li > p{font-weight:400;margin-left:1em;}

.sptel{display:none;}
.twoblock{display:flex;flex-wrap:wrap;justify-content:space-between;}
.block_area{width:49%;}


.marker{background: linear-gradient(transparent 70%, #fff7fa 70%);padding:0 2em 0;}
.marker2{color:#317091;font-weight:700;}
.marker-space{letter-spacing:-0.5em;}
.pagetop {display: none;position: fixed;bottom: 50px;right:5%;width:66px;z-index:100;}
.pagetop a {display: block;}
.pagetop img{width:100%;}
.sp_btn{display:none;}

.slides img{width:100%;}
.head_img{position: relative;margin-bottom:30px;}
.head_img img{width:100%;}
.head_title{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);font-size:30px;color:#317091;font-family: dnp-shuei-mincho-pr6n, sans-serif;font-weight: 700;font-style: normal;background:rgba(255,255,255,0.9);z-index:9999;min-height:80px;display:flex;justify-content:center;align-items:center;letter-spacing:0.3em;width:40%;line-height:1;}

h2.title{font-size:26px;text-align:center;margin:50px auto 0;}
h2.title_sub{font-size:20px;text-align:center;color:#c7b299;font-family: "futura-pt", sans-serif;font-weight: 400;font-style: normal;margin-bottom:50px;}
h2.title_sub_w{font-size:20px;text-align:center;color:#fff;font-family: "futura-pt", sans-serif;font-weight: 400;font-style: normal;margin-bottom:10px;}
h3.title{font-family: "ryo-gothic-plusn", sans-serif;font-weight: 500;font-style: normal;font-size:24px;display:flex;align-items:center;justify-content:center;width:100%;margin:80px auto 40px;}
h3.title::before{content:"";width:110px;flex:none;height:2px;background:#c7b299;margin:0 10px 0 0;}
h3.title::after{content:"";width:110px;flex:none;height:2px;background:#c7b299;margin:0 0 0 10px;}


/*back
------------------------------------------------------------*/
.pnavi{text-align:center;font-size:16px;margin-top:20px;}
h1,h2,h3,.serif { font-family: "Noto Serif JP", serif; }


/*TOP
------------------------------------------------------------*/
.worry-section { padding:58px 0 64px; background:linear-gradient(90deg, #f7fbff 0%, #eef7ff 50%, #f7fbff 100%); }
.worry-section__inner { width:min(1200px, 94%); margin:0 auto; }
.section-title { margin:0 0 34px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:28px; font-weight:700; line-height:1.5; text-align:center; letter-spacing:.08em; position:relative; }
.section-title::after { content:""; width:42px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-12px; transform:translateX(-50%); }
.worry-list { display:grid; grid-template-columns:repeat(6, 1fr); gap:14px; }
.worry-card { min-height:158px; padding:24px 12px 18px; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; box-shadow:0 8px 20px rgba(15,39,71,.06); }
.worry-card__icon { height:54px; margin:0 0 14px; display:flex; align-items:center; justify-content:center; color:#0F2747; font-size:40px; line-height:1; }
.worry-card p { margin:0; color:#1E293B; font-size:14px; font-weight:700; line-height:1.65; text-align:center; letter-spacing:.04em; }
@media screen and (max-width:980px) { .worry-list { grid-template-columns:repeat(3, 1fr); gap:16px; } .worry-card { min-height:150px; } }
@media screen and (max-width:767px) { .worry-section { padding:46px 0 50px; } .section-title { margin-bottom:30px; font-size:22px; } .worry-list { grid-template-columns:repeat(2, 1fr); gap:12px; } .worry-card { min-height:138px; padding:20px 10px 16px; } .worry-card__icon { height:44px; margin-bottom:12px; font-size:32px; } .worry-card p { font-size:13px; line-height:1.6; } }

.important-section { padding:64px 0 70px; background:#fff; }
.important-section__inner { width:min(1200px, 94%); margin:0 auto; }
.important-list { display:grid; grid-template-columns:repeat(5, 1fr); gap:18px; }
.important-card { min-height:230px; padding:34px 18px 28px; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; box-shadow:0 8px 22px rgba(15,39,71,.08); border:1px solid #edf1f5; }
.important-card__icon { height:50px; margin:0 0 18px; display:flex; align-items:center; justify-content:center; color:#0F2747; font-size:36px; line-height:1; }
.important-card h3 { margin:0 0 14px; color:#0F2747; font-size:16px; font-weight:700; line-height:1.55; text-align:center; letter-spacing:.05em; }
.important-card p { margin:0; color:#8B6F3E; font-size:13px; font-weight:600; line-height:1.75; text-align:center; letter-spacing:.04em; }
@media screen and (max-width:980px) { .important-list { grid-template-columns:repeat(3, 1fr); gap:16px; } .important-card { min-height:210px; } }
@media screen and (max-width:767px) { .important-section { padding:50px 0 54px; } .important-list { grid-template-columns:repeat(1, 1fr); gap:14px; } .important-card { min-height:auto; padding:26px 18px 24px; } .important-card__icon { height:42px; margin-bottom:14px; font-size:30px; } .important-card h3 { font-size:15px; } .important-card p { font-size:13px; } }

.business-point-section { padding:64px 0 72px; background:#fff; }
.business-point-section__inner { width:min(1200px, 94%); margin:0 auto; }
.business-point-list { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; }
.business-point-card { background:#fff; box-shadow:0 8px 22px rgba(15,39,71,.08); border:1px solid #edf1f5; overflow:hidden; }
.business-point-card__image { width:100%; aspect-ratio:1.72 / 1; overflow:hidden; background:#f3f6fa; }
.business-point-card__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.business-point-card:hover .business-point-card__image img { transform:scale(1.04); }
.business-point-card__body { padding:22px 18px 20px; text-align:center; }
.business-point-card h3 { margin:0 0 14px; color:#0F2747; font-size:20px; font-weight:700; line-height:1.5; letter-spacing:.05em; }
.business-point-card p { min-height:74px; margin:0 0 18px; color:#1E293B; font-size:13px; font-weight:600; line-height:1.75; letter-spacing:.04em; }
.business-point-card a { width:100%; height:38px; display:flex; align-items:center; justify-content:center; background:#0F2747; color:#fff; font-size:13px; font-weight:700; text-decoration:none; letter-spacing:.06em; transition:background .25s ease; }
.business-point-card a:hover { background:#2E6EA6; }
@media screen and (max-width:980px) { .business-point-list { grid-template-columns:repeat(2, 1fr); gap:22px; } }
@media screen and (max-width:767px) { .business-point-section { padding:50px 0 56px; } .business-point-list { grid-template-columns:1fr; gap:18px; } .business-point-card__body { padding:20px 16px 18px; } .business-point-card h3 { font-size:18px; } .business-point-card p { min-height:0; font-size:13px; } }

.price-section { padding:70px 0 76px; background:linear-gradient(90deg, #f7fbff 0%, #eef7ff 50%, #f7fbff 100%); }
.price-section__inner { width:min(1200px, 94%); margin:0 auto; }
.price-list { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; align-items:stretch; }
.price-card { padding:38px 36px 34px; background:#fff; border:1px solid #edf1f5; box-shadow:0 8px 22px rgba(15,39,71,.08); display:flex; flex-direction:column; }
.price-card--pickup { transform:translateY(0px);border:1px solid #0F2747; border-top:6px solid #0F2747; }
.price-card h3 { margin:0 0 8px; color:#0F2747; font-size:21px; font-weight:700; line-height:1.5; text-align:center; letter-spacing:.06em; }
.price-card__lead { margin:0 0 24px; color:#64748B; font-size:13px; font-weight:600; line-height:1.6; text-align:center; letter-spacing:.04em; }
.price-card__price { margin:0 0 26px; color:#0F2747; font-size:34px; font-weight:800; line-height:1.2; text-align:center; letter-spacing:.03em; }
.price-card__price span { margin-left:6px; font-size:12px; font-weight:600; }
.price-card ul { margin:0 0 30px; padding:0; list-style:none; flex:1; }
.price-card li { margin:0 0 10px; padding-left:18px; color:#1E293B; font-size:14px; font-weight:600; line-height:1.65; letter-spacing:.04em; position:relative; }
.price-card li::before { content:""; width:6px; height:6px; background:#8FA8C4; border-radius:50%; position:absolute; left:0; top:.72em; }
.price-card a { width:100%; height:42px; display:flex; align-items:center; justify-content:center; margin-top:auto; background:#fff; color:#0F2747; border:1px solid #cfd8e3; font-size:14px; font-weight:700; text-decoration:none; letter-spacing:.06em; transition:background .25s ease, color .25s ease, border-color .25s ease; }
.price-card a:hover { background:#0F2747; color:#fff; border-color:#0F2747; }
.price-card--pickup a { background:#C0392B; color:#fff; border-color:#C0392B; }
.price-card--pickup a:hover { background:#a78f63; border-color:#a78f63; }
.price-section__note { margin:22px 0 0; color:#64748B; font-size:12px; line-height:1.8; text-align:right; letter-spacing:.04em; }
@media screen and (max-width:980px) { .price-list { grid-template-columns:1fr; gap:22px; max-width:620px; margin:0 auto; } .price-card--pickup { transform:none; } .price-section__note { max-width:620px; margin:18px auto 0; text-align:left; } }
@media screen and (max-width:767px) { .price-section { padding:52px 0 58px; } .price-card { padding:30px 22px 28px; } .price-card h3 { font-size:19px; } .price-card__price { font-size:30px; } .price-card li { font-size:13px; } }

.reason-section { padding:68px 0 74px; background:#fff; }
.reason-section__inner { width:min(1200px, 94%); margin:0 auto; }
.reason-list { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.reason-card { min-height:250px; padding:38px 26px 30px; background:#fff; border:1px solid #edf1f5; box-shadow:0 8px 22px rgba(15,39,71,.08); display:flex; flex-direction:column; align-items:center; text-align:center; }
.reason-card__icon { height:56px; margin:0 0 20px; display:flex; align-items:center; justify-content:center; color:#0F2747; font-size:44px; line-height:1; }
.reason-card h3 { margin:0 0 16px; color:#0F2747; font-size:22px; font-weight:700; line-height:1.55; letter-spacing:.05em; }
.reason-card p { margin:0; color:#64748B; font-size:14px; font-weight:600; line-height:1.9; letter-spacing:.04em; }
@media screen and (max-width:980px) { .reason-list { gap:18px; } .reason-card { min-height:230px; padding:30px 20px 26px; } .reason-card h3 { font-size:18px; } }
@media screen and (max-width:767px) { .reason-section { padding:52px 0 58px; } .reason-list { grid-template-columns:1fr; gap:16px; } .reason-card { min-height:auto; padding:28px 20px 24px; } .reason-card__icon { height:46px; margin-bottom:16px; font-size:36px; } .reason-card h3 { font-size:17px; } .reason-card p { font-size:13px; line-height:1.8; } }

.faq-section { padding:68px 0 76px; background:#fff; }
.faq-section__inner { width:min(1200px, 94%); margin:0 auto; }
.faq-layout { display:grid; grid-template-columns:1fr 340px; gap:42px; align-items:start; }
.faq-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:0 28px; }
.faq-item { border-bottom:1px solid #dbe4ee; }
.faq-question { width:100%; min-height:58px; padding:16px 34px 16px 0; background:none; border:none; color:#0F2747; font-size:15px; font-weight:700; line-height:1.6; text-align:left; letter-spacing:.04em; cursor:pointer; position:relative; }
.faq-question span { margin-right:8px; color:#0F2747; font-weight:800; }
.faq-question::before { content:""; width:12px; height:2px; background:#0F2747; position:absolute; right:4px; top:50%; transform:translateY(-50%); }
.faq-question::after { content:""; width:2px; height:12px; background:#0F2747; position:absolute; right:9px; top:50%; transform:translateY(-50%); transition:opacity .25s ease; }
.faq-item.is-open .faq-question::after { opacity:0; }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-answer p { margin:0; padding:0 0 18px 26px; color:#64748B; font-size:14px; font-weight:500; line-height:1.9; letter-spacing:.04em; }
.faq-contact { padding:34px 30px 32px; background:#fff; border:1px solid #b8c6d8; text-align:center; }
.faq-contact h3 { margin:0 0 18px; color:#0F2747; font-size:20px; font-weight:700; line-height:1.6; letter-spacing:.06em; }
.faq-contact p { margin:0 0 24px; color:#64748B; font-size:14px; font-weight:600; line-height:1.9; letter-spacing:.04em; }
.faq-contact a { height:48px; display:flex; align-items:center; justify-content:center; background:#C0392B; color:#fff; font-size:14px; font-weight:700; text-decoration:none; letter-spacing:.06em; transition:background .25s ease; }
.faq-contact a:hover { background:#a78f63; }
@media screen and (max-width:980px) { .faq-layout { grid-template-columns:1fr; gap:30px; } .faq-contact { max-width:520px; margin:0 auto; } }
@media screen and (max-width:767px) { .faq-section { padding:52px 0 58px; } .faq-list { grid-template-columns:1fr; } .faq-question { min-height:56px; padding:15px 34px 15px 0; font-size:14px; } .faq-answer p { padding-left:0; font-size:13px; } .faq-contact { padding:28px 20px 26px; } .faq-contact h3 { font-size:18px; } }

.top-works-section { padding:70px 0 78px; background:#fff; }
.top-works-section__inner { width:min(1200px, 94%); margin:0 auto; }
.top-works-head { margin:0 0 36px; text-align:center; }
.top-works-head p { margin:0; color:#1E293B; font-size:15px; font-weight:600; line-height:1.8; letter-spacing:.04em; }
.top-works-btn { margin:44px 0 0; text-align:center; }
.top-works-btn a { width:260px; height:54px; margin:0 auto; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; text-decoration:none; letter-spacing:.05em; position:relative; transition:background .25s ease, transform .25s ease; }
.top-works-btn a::after { content:""; width:8px; height:8px; border-top:2px solid #fff; border-right:2px solid #fff; position:absolute; right:22px; top:50%; transform:translateY(-50%) rotate(45deg); }
.top-works-btn a:hover { background:#2E6EA6; transform:translateY(-1px); }
@media screen and (max-width:767px) { .top-works-section { padding:54px 0 62px; } .top-works-head { margin-bottom:28px; } .top-works-head p { font-size:14px; } .top-works-btn { margin-top:34px; } .top-works-btn a { width:100%; max-width:280px; } }

/*固定ページ
------------------------------------------------------------*/
.page-hero { position:relative; width:100%; overflow:hidden; }
.page-hero picture { display:block; line-height:0; }
.page-hero img { width:100%; height:400px; object-fit:cover; display:block; }
.page-hero__content { width:min(1200px, 94%); height:100%; position:absolute; inset:0; margin:auto; display:flex; align-items:center; }
.page-hero__title-wrap { padding-left:40px; }
.page-hero h1 { margin:0 0 14px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:clamp(32px, 2.6vw, 54px); font-weight:700; line-height:1.4; letter-spacing:.08em; position:relative; }
.page-hero h1::before { content:""; width:3px; height:90px; background:#C0392B; position:absolute; left:-28px; top:50%; transform:translateY(-50%); }
.page-hero p { margin:0; color:#C0392B; font-size:28px; font-weight:500; line-height:1.4; letter-spacing:.06em; }
@media screen and (max-width:767px) { .page-hero img { height:240px; } .page-hero__title-wrap { padding-left:24px; } .page-hero h1 { margin-bottom:8px; font-size:30px; } .page-hero h1::before { left:-18px; width:2px; height:56px; } .page-hero p { font-size:18px; } }

/*制作実績
------------------------------------------------------------*/
.works-archive-section { padding:76px 0 90px; background:#fff; }
.works-archive-section__inner { width:min(1200px, 94%); margin:0 auto; }
.works-archive-list { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; }
.works-card { background:#fff; }
.works-card__image { width:100%; aspect-ratio:1.65 / 1; background:#f3f6fa; overflow:hidden; box-shadow:0 8px 22px rgba(15,39,71,.08); }
.works-card__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }

.works-card__body { padding:16px 0 0; }
.works-card h3 { margin:0 0 8px; color:#0F2747; font-size:16px; font-weight:700; line-height:1.6; letter-spacing:.04em; }
.works-card__meta { display:flex; flex-wrap:wrap; gap:6px; }
.works-card__meta span { padding:3px 8px; background:#f3f6fa; color:#64748B; font-size:12px; font-weight:600; line-height:1.5; letter-spacing:.04em; }
.works-pagination { margin:52px 0 0; text-align:center; }
.works-pagination .nav-links { display:flex; align-items:center; justify-content:center; gap:8px; }
.works-pagination a, .works-pagination span { min-width:38px; height:38px; padding:0 12px; border:1px solid #dbe4ee; color:#0F2747; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; text-decoration:none; }
.works-pagination .current { background:#0F2747; color:#fff; border-color:#0F2747; }
.works-empty { margin:0; color:#1E293B; font-size:16px; line-height:1.8; text-align:center; }
@media screen and (max-width:980px) { .works-archive-list { grid-template-columns:repeat(2, 1fr); gap:24px; } }
@media screen and (max-width:767px) { .works-archive-section { padding:54px 0 64px; } .works-archive-list { grid-template-columns:1fr; gap:24px; } .works-card h3 { font-size:15px; } }

/*料金
------------------------------------------------------------*/
.price-detail-section { padding:76px 0 84px; background:#fff; }
.price-detail-section__inner { width:min(1200px, 94%); margin:0 auto; }
.price-detail-card { display:grid; grid-template-columns:310px 1fr; margin:0 0 34px; background:#fff; border:1px solid #dbe4ee; box-shadow:0 8px 24px rgba(15,39,71,.06); }
.price-detail-card:last-child { margin-bottom:0; }
.price-detail-card__head { padding:52px 20px; background:linear-gradient(180deg, #f3f8fd 0%, #eaf3fb 100%); text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.price-detail-card__head h2 { margin:0 0 26px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:26px; font-weight:700; line-height:1.5; letter-spacing:.08em; position:relative; }
.price-detail-card__head h2::after { content:""; width:42px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-14px; transform:translateX(-50%); }
.price-detail-card__head p { margin:0 0 30px; color:#0F2747; font-size:15px; font-weight:600; line-height:1.9; letter-spacing:.05em; }
.price-detail-card__price { margin:0 0 8px; color:#0F2747; font-size:42px; font-weight:800; line-height:1.2; letter-spacing:.03em; }
.price-detail-card__head span { color:#0F2747; font-size:14px; font-weight:700; }
.price-detail-card__body { padding:38px 48px 36px; }
.price-detail-card__lead { margin:0 0 30px; color:#1E293B; font-size:16px; font-weight:600; line-height:2; letter-spacing:.04em; }
.price-detail-card__body h3 { margin:0 0 20px; padding-bottom:14px; border-bottom:1px solid #cfd8e3; color:#0F2747; font-size:17px; font-weight:700; line-height:1.6; letter-spacing:.05em; }
.price-detail-card__body ul { margin:0 0 28px; padding:0; list-style:none; display:grid; grid-template-columns:repeat(2, 1fr); gap:14px 38px; }
.price-detail-card__body li { padding-left:30px; color:#1E293B; font-size:15px; font-weight:600; line-height:1.7; letter-spacing:.04em; position:relative; }
.price-detail-card__body li::before { content:"\f00c"; font-family:"Font Awesome 7 Free"; font-weight:900; width:18px; height:18px; border:2px solid #C0392B; border-radius:50%; color:#C0392B; font-size:10px; display:flex; align-items:center; justify-content:center; position:absolute; left:0; top:.25em; box-sizing:border-box; }
.price-detail-card__period { padding:16px 22px; background:#f3f8fd; border:1px solid #cfe0ee; color:#0F2747; font-size:15px; font-weight:700; line-height:1.6; letter-spacing:.04em; }
.price-detail-card__period i { margin-right:10px; color:#2E6EA6; }
@media screen and (max-width:980px) { .price-detail-card { grid-template-columns:1fr; } .price-detail-card__head { padding:42px 28px; } .price-detail-card__body { padding:34px 30px 32px; } }
@media screen and (max-width:767px) { .price-detail-section { padding:54px 0 64px; } .price-detail-card { margin-bottom:24px; } .price-detail-card__head { padding:34px 22px; } .price-detail-card__head h2 { font-size:24px; } .price-detail-card__price { font-size:34px; } .price-detail-card__body { padding:28px 20px 26px; } .price-detail-card__lead { font-size:14px; line-height:1.9; } .price-detail-card__lead br { display:none; } .price-detail-card__body ul { grid-template-columns:1fr; gap:12px; } .price-detail-card__body li { font-size:14px; } .price-detail-card__period { font-size:14px; } }

.price-option-box { width:100%; }
.price-option-list { background:#fff; border:1px solid #dbe4ee; box-shadow:0 8px 24px rgba(15,39,71,.06); }
.price-option-row { min-height:50px; padding:0 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #dbe4ee; }
.price-option-row:last-child { border-bottom:none; }
.price-option-row span { color:#0F2747; font-size:15px; font-weight:700; line-height:1.6; letter-spacing:.04em; }
.price-option-row strong { color:#0F2747; font-size:15px; font-weight:800; line-height:1.6; white-space:nowrap; }
.price-option-note { margin:18px 0 0; color:#64748B; font-size:13px; font-weight:500; line-height:1.8; letter-spacing:.04em; }
@media screen and (max-width:767px) { .price-option-row { min-height:auto; padding:14px 16px; align-items:flex-start; } .price-option-row span { font-size:14px; } .price-option-row strong { font-size:14px; } .price-option-note { font-size:12px; } }

.price-server-box { width:100%; }
.price-server-content { padding:36px 44px 34px; background:#fff; border:1px solid #dbe4ee; box-shadow:0 8px 24px rgba(15,39,71,.06); }
.price-server-item { padding:0 0 28px; margin:0 0 28px; border-bottom:1px solid #dbe4ee; }
.price-server-item:last-child { padding-bottom:0; margin-bottom:0; border-bottom:none; }
.price-server-item h3 { margin:0 0 16px; color:#0F2747; font-size:22px; font-weight:700; line-height:1.5; letter-spacing:.05em; }
.price-server-price { margin:0 0 8px; color:#0F2747; font-size:22px; font-weight:800; line-height:1.4; letter-spacing:.04em; }
.price-server-note { margin:0; color:#64748B; font-size:13px; font-weight:600; line-height:1.8; letter-spacing:.04em; }
.price-server-caption { margin:18px 0 0; color:#64748B; font-size:13px; font-weight:500; line-height:1.8; letter-spacing:.04em; }
@media screen and (max-width:767px) { .price-server-content { padding:28px 22px 26px; } .price-server-item { padding-bottom:22px; margin-bottom:22px; } .price-server-item h3 { font-size:19px; } .price-server-price { font-size:20px; } .price-server-note, .price-server-caption { font-size:12px; } }

.price-extra-section { padding:64px 0 40px; background:#fff; }
.price-extra-section__inner { width:min(1200px, 94%); margin:0 auto; }
.price-extra-grid { display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:start; }
@media screen and (max-width:767px) {
.price-extra-section { padding:44px 0 28px; }
.price-extra-grid { grid-template-columns:1fr; gap:24px; }
}

.price-notice-section { padding:18px 0 84px; background:#fff; }
.price-notice-section__inner { width:min(1200px, 94%); margin:0 auto; }
.price-notice-box { padding:34px 38px; background:#fff; border:2px solid #0F2747; display:flex; align-items:flex-start; gap:30px; box-shadow:0 8px 24px rgba(15,39,71,.05); }
.price-notice-icon { width:74px; height:74px; flex:0 0 auto; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:34px; line-height:1; }
.price-notice-content h2 { margin:0 0 14px; color:#0F2747; font-size:24px; font-weight:700; line-height:1.5; letter-spacing:.05em; }
.price-notice-content ul { margin:0; padding:0; list-style:none; }
.price-notice-content li { margin:0 0 10px; padding-left:18px; color:#1E293B; font-size:16px; font-weight:500; line-height:1.9; letter-spacing:.04em; position:relative; }
.price-notice-content li:last-child { margin-bottom:0; }
.price-notice-content li::before { content:"・"; color:#0F2747; position:absolute; left:0; top:0; font-weight:700; }
@media screen and (max-width:767px) {
.price-notice-section { padding:10px 0 60px; }
.price-notice-box { padding:24px 20px; display:block; }
.price-notice-icon { width:58px; height:58px; margin:0 auto 18px; font-size:24px; }
.price-notice-content h2 { font-size:20px; text-align:center; }
.price-notice-content li { font-size:14px; line-height:1.8; }
}

.price-cta-section { padding:48px 0; background:linear-gradient(90deg, #f7fbff 0%, #eef7ff 50%, #f7fbff 100%); }

.price-cta-section__inner { width:min(1000px, 94%); margin:0 auto; display:flex; align-items:center; justify-content:center; gap:32px; }

.price-cta-icon { width:74px; height:74px; flex:0 0 auto; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:34px; }

.price-cta-text { margin-right:30px; }

.price-cta-text h2 { margin:0 0 8px; color:#0F2747; font-size:22px; font-weight:700; line-height:1.5; }

.price-cta-text p { margin:0; color:#1E293B; font-size:14px; line-height:1.8; }

.price-cta-btn { width:320px; height:64px; background:#0F2747; color:#fff!important; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:700; text-decoration:none!important; position:relative; }

.price-cta-btn::after { content:""; width:9px; height:9px; border-top:2px solid #fff; border-right:2px solid #fff; position:absolute; right:28px; top:50%; transform:translateY(-50%) rotate(45deg); }


/*問い合わせ
------------------------------------------------------------*/
.contact-intro-section { padding:76px 0 54px; background:#fff; }
.contact-intro-section__inner { width:min(1200px, 94%); margin:0 auto; }
.contact-intro-lead { margin:0 0 42px; text-align:center; }
.contact-intro-lead h2 { margin:0 0 24px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:34px; font-weight:700; line-height:1.6; letter-spacing:.08em; }
.contact-intro-lead p { margin:0; color:#1E293B; font-size:16px; font-weight:600; line-height:2; letter-spacing:.05em; }
.contact-intro-list { display:grid; grid-template-columns:repeat(3, 1fr); border:1px solid #dbe4ee; background:#fff; }
.contact-intro-card { min-height:150px; padding:30px 20px; display:flex; align-items:center; gap:26px; border-right:1px solid #dbe4ee; }
.contact-intro-card:last-child { border-right:none; }
.contact-intro-card__icon { width:86px; height:86px; flex:0 0 auto; border:2px solid #C0392B; border-radius:50%; color:#C0392B; display:flex; align-items:center; justify-content:center; font-size:42px; line-height:1; }
.contact-intro-card__text h3 { margin:0 0 12px; color:#0F2747; font-size:20px; font-weight:700; line-height:1.5; letter-spacing:.05em; }
.contact-intro-card__text p { margin:0; color:#1E293B; font-size:14px; font-weight:500; line-height:1.8; letter-spacing:.04em; }
@media screen and (max-width:980px) { .contact-intro-list { grid-template-columns:1fr; } .contact-intro-card { border-right:none; border-bottom:1px solid #dbe4ee; } .contact-intro-card:last-child { border-bottom:none; } }
@media screen and (max-width:767px) { .contact-intro-section { padding:54px 0 42px; } .contact-intro-lead { margin-bottom:32px; } .contact-intro-lead h2 { font-size:24px; } .contact-intro-lead p { font-size:14px; line-height:1.9; text-align:left; } .contact-intro-lead p br { display:none; } .contact-intro-card { min-height:auto; padding:24px 20px; gap:18px; } .contact-intro-card__icon { width:64px; height:64px; font-size:30px; } .contact-intro-card__text h3 { font-size:17px; } .contact-intro-card__text p { font-size:13px; } }


/*ポイント
------------------------------------------------------------*/
.profession-point-section { padding:76px 0 84px; background:#fff; }
.profession-point-section__inner { width:min(1200px, 94%); margin:0 auto; }
.profession-point-list { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
.profession-point-card { min-height:320px; padding:34px 26px 28px; background:#fff; border:1px solid #dbe4ee; border-radius:6px; box-shadow:0 8px 24px rgba(15,39,71,.06); text-align:center; }
.profession-point-card__icon { height:74px; margin:0 0 22px; color:#0F2747; font-size:58px; display:flex; align-items:center; justify-content:center; line-height:1; }
.profession-point-card h3 { margin:0 0 18px; color:#0F2747; font-size:20px; font-weight:700; line-height:1.5; letter-spacing:.05em; }
.profession-point-card p { margin:0; color:#1E293B; font-size:14px; font-weight:500; line-height:1.9; letter-spacing:.04em; text-align:left;text-align:justify; }
@media screen and (max-width:980px) {
.profession-point-list { grid-template-columns:repeat(2, 1fr); gap:20px; }
}
@media screen and (max-width:767px) {
.profession-point-section { padding:54px 0 64px; }
.profession-point-list { grid-template-columns:1fr; gap:18px; }
.profession-point-card { min-height:auto; padding:28px 20px; }
.profession-point-card__icon { height:58px; margin-bottom:18px; font-size:46px; }
.profession-point-card h3 { font-size:18px; }
.profession-point-card p { font-size:14px; line-height:1.8; }
}

.common-point-section { padding:72px 0 84px; background:#fff; }
.common-point-section__inner { width:min(1200px, 94%); margin:0 auto; }
.common-point-list { display:grid; grid-template-columns:repeat(5, 1fr); gap:15px;padding-top:30px; }
.common-point-card { min-height:250px; padding:56px 18px 26px; background:#fff; border:1px solid #dbe4ee; border-radius:6px; box-shadow:0 8px 24px rgba(15,39,71,.06); text-align:center; position:relative; }
.common-point-card__icon { width:66px; height:66px; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:28px; line-height:1; position:absolute; left:50%; top:-33px; transform:translateX(-50%); }
.common-point-card h3 { margin:0 0 18px; color:#0F2747; font-size:17px; font-weight:700; line-height:1.6; }
.common-point-card p { margin:0; color:#1E293B; font-size:14px; font-weight:500; line-height:1.9; text-align:left; letter-spacing:.04em; }
@media screen and (max-width:1100px) { .common-point-list { grid-template-columns:repeat(3, 1fr); gap:46px 20px; } }
@media screen and (max-width:767px) { .common-point-section { padding:54px 0 64px; } .common-point-list { grid-template-columns:1fr; gap:42px; } .common-point-card { min-height:auto; padding:50px 22px 26px; } .common-point-card__icon { width:58px; height:58px; top:-29px; font-size:24px; } .common-point-card h3 { font-size:17px; } .common-point-card p { font-size:14px; line-height:1.85; } }



/*サービス
------------------------------------------------------------*/
.service-section { padding:76px 0 84px; background:#fff; }
.service-section__inner { width:min(1200px, 94%); margin:0 auto; }
.service-lead { margin:0 0 58px; text-align:center; }
.service-lead h2 { margin:0 0 34px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:34px; font-weight:700; line-height:1.6; letter-spacing:.08em; position:relative; }
.service-lead h2::after { content:""; width:48px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-16px; transform:translateX(-50%); }
.service-lead p { margin:0; color:#1E293B; font-size:16px; font-weight:600; line-height:2; letter-spacing:.05em; }
.service-list { display:grid; grid-template-columns:repeat(4, 1fr); gap:26px; }
.service-card { min-height:360px; padding:58px 28px 34px; background:#fff; border:1px solid #dbe4ee; border-radius:6px; box-shadow:0 8px 24px rgba(15,39,71,.06); position:relative; text-align:center; }
.service-card__num { width:46px; height:46px; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:800; line-height:1; position:absolute; left:50%; top:-23px; transform:translateX(-50%); letter-spacing:.03em; }
.service-card__icon { height:88px; margin:0 0 28px; color:#0F2747; font-size:64px; display:flex; align-items:center; justify-content:center; line-height:1; }
.service-card h3 { margin:0 0 32px; color:#0F2747; font-size:20px; font-weight:700; line-height:1.5; letter-spacing:.05em; position:relative; }
.service-card h3::after { content:""; width:36px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-16px; transform:translateX(-50%); }
.service-card p { margin:0; color:#1E293B; font-size:15px; font-weight:500; line-height:2; text-align:left; letter-spacing:.04em; }
@media screen and (max-width:980px) { .service-list { grid-template-columns:repeat(2, 1fr); gap:38px 22px; } .service-card { min-height:320px; } }
@media screen and (max-width:767px) { .service-section { padding:54px 0 64px; } .service-lead { margin-bottom:44px; } .service-lead h2 { font-size:25px; } .service-lead p { font-size:14px; line-height:1.9; text-align:left; } .service-lead p br { display:none; } .service-list { grid-template-columns:1fr; gap:34px; } .service-card { min-height:auto; padding:48px 22px 28px; } .service-card__icon { height:64px; margin-bottom:22px; font-size:48px; } .service-card h3 { margin-bottom:28px; font-size:20px; } .service-card p { font-size:14px; } }

.flow-section { padding:72px 0 84px; background:#fff; }
.flow-section__inner { width:min(1200px, 94%); margin:0 auto; }
.flow-list { display:grid; grid-template-columns:repeat(5, 1fr); gap:28px;padding-top:30px; }
.flow-card { min-height:250px; padding:48px 18px 26px; background:#fff; border:1px solid #dbe4ee; border-radius:4px; box-shadow:0 8px 24px rgba(15,39,71,.06); text-align:center; position:relative; }
.flow-card:not(:last-child)::after { content:""; width:14px; height:14px; border-top:2px solid #0F2747; border-right:2px solid #0F2747; position:absolute; right:-22px; top:50%; transform:translateY(-50%) rotate(45deg); }
.flow-card__num { width:42px; height:42px; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; line-height:1; position:absolute; left:50%; top:-21px; transform:translateX(-50%); }
.flow-card h3 { min-height:48px; margin:0 0 20px; color:#0F2747; font-size:17px; font-weight:700; line-height:1.5; letter-spacing:.04em; }
.flow-card__icon { height:56px; margin:0 0 22px; color:#0F2747; font-size:44px; display:flex; align-items:center; justify-content:center; line-height:1; }
.flow-card p { margin:0; color:#1E293B; font-size:13px; font-weight:500; line-height:1.9; letter-spacing:.04em; }
@media screen and (max-width:1100px) { .flow-list { gap:18px; } .flow-card:not(:last-child)::after { right:-16px; } .flow-card h3 { font-size:15px; } }
@media screen and (max-width:980px) { .flow-list { grid-template-columns:1fr; gap:34px; max-width:560px; margin:0 auto; } .flow-card { min-height:auto; padding:46px 24px 26px; } .flow-card:not(:last-child)::after { width:14px; height:14px; right:auto; left:50%; top:auto; bottom:-24px; transform:translateX(-50%) rotate(135deg); } .flow-card h3 { min-height:0; font-size:18px; } }
@media screen and (max-width:767px) { .flow-section { padding:54px 0 64px; } .flow-list { max-width:none; gap:32px; } .flow-card { padding:44px 20px 24px; } .flow-card__icon { height:48px; margin-bottom:18px; font-size:38px; } .flow-card p { font-size:13px; } }

.service-strength { padding:80px 0 90px; background:linear-gradient(180deg, #f8fbff 0%, #eef4fa 100%); }
.service-strength__inner { width:min(1200px, 94%); margin:0 auto; display:grid; grid-template-columns:340px 1fr; gap:40px; align-items:start; }
.service-strength__lead h2 { margin:0 0 28px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:30px; font-weight:700; line-height:1.45; letter-spacing:.08em; position:relative; }
.service-strength__lead h2::after { content:""; width:48px; height:2px; background:#C0392B; position:absolute; left:0; bottom:-14px; }
.service-strength__lead p { margin:0 0 34px; color:#1E293B; font-size:16px; font-weight:500; line-height:2; letter-spacing:.04em; }
.service-strength__btn { width:260px; height:58px; display:flex; align-items:center; justify-content:center; background:#C0392B; color:#fff; font-size:15px; font-weight:700; text-decoration:none; letter-spacing:.05em; transition:background .25s ease, transform .25s ease; position:relative; }
.service-strength__btn::after { content:""; width:8px; height:8px; border-top:2px solid #fff; border-right:2px solid #fff; position:absolute; right:22px; top:50%; transform:translateY(-50%) rotate(45deg); }
.service-strength__btn:hover { background:#a78f63; transform:translateY(-2px); }
.service-strength__cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.service-strength__card { padding:34px 20px 28px; background:#fff; border:1px solid #dbe4ee; border-radius:6px; box-shadow:0 8px 24px rgba(15,39,71,.06); position:relative; }
.service-strength__icon { width:58px; height:58px; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; position:absolute; left:28px; top:-22px; }
.service-strength__card h3 { margin:34px 0 20px; color:#0F2747; font-size:22px; font-weight:700; line-height:1.5; letter-spacing:.04em; }
.service-strength__card p { margin:0; color:#1E293B; font-size:15px; font-weight:500; line-height:2; letter-spacing:.04em; }
@media screen and (max-width:1100px) { .service-strength__inner { grid-template-columns:1fr; gap:46px; } .service-strength__cards { grid-template-columns:repeat(3, 1fr); } }
@media screen and (max-width:980px) { .service-strength__cards { grid-template-columns:1fr; gap:36px; } .service-strength__lead h2 { font-size:38px; } }
@media screen and (max-width:767px) { .service-strength { padding:54px 0 64px; } .service-strength__lead h2 { font-size:28px; line-height:1.5; } .service-strength__lead p { font-size:14px; line-height:1.9; } .service-strength__lead p br { display:none; } .service-strength__btn { width:100%; max-width:280px; } .service-strength__card { padding:30px 22px 24px; } .service-strength__icon { left:22px; width:52px; height:52px; font-size:20px; } .service-strength__card h3 { margin-top:30px; font-size:20px; } .service-strength__card p { font-size:14px; line-height:1.85; } }


/*FAQ
------------------------------------------------------------*/
.faq-page-section { padding:76px 0 90px; background:#fff; }
.faq-page-section__inner { width:min(1100px, 94%); margin:0 auto; }
.faq-page-lead { margin:0 0 48px; text-align:center; }
.faq-page-lead h2 { margin:0 0 36px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:34px; font-weight:700; line-height:1.6; letter-spacing:.08em; position:relative; }
.faq-page-lead h2::after { content:""; width:72px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-18px; transform:translateX(-50%); }
.faq-page-lead p { margin:0; color:#1E293B; font-size:16px; font-weight:600; line-height:2; letter-spacing:.05em; }
.faq-page-list { border:1px solid #dbe4ee; background:#fff; }
.faq-page-item { border-bottom:1px solid #dbe4ee; }
.faq-page-item:last-child { border-bottom:none; }
.faq-page-question { width:100%; min-height:76px; padding:20px 64px 20px 28px; background:#fff; border:none; color:#0F2747; font-size:20px; font-weight:700; line-height:1.6; text-align:left; letter-spacing:.04em; cursor:pointer; position:relative; display:flex; align-items:center; gap:18px; }
.faq-page-question span { width:38px; height:38px; flex:0 0 auto; border-radius:50%; background:#0F2747; color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800; line-height:1; }
.faq-page-question::before { content:""; width:16px; height:2px; background:#0F2747; position:absolute; right:28px; top:50%; transform:translateY(-50%); }
.faq-page-question::after { content:""; width:2px; height:16px; background:#0F2747; position:absolute; right:35px; top:50%; transform:translateY(-50%); transition:opacity .25s ease; }
.faq-page-item.is-open .faq-page-question::after { opacity:0; }
.faq-page-answer { max-height:0; overflow:hidden; background:#fafcff; transition:max-height .3s ease; }
.faq-page-item.is-open .faq-page-answer { max-height:500px; }
.faq-page-answer__inner { padding:24px 32px 30px; display:flex; gap:20px; border-top:1px solid #edf1f5; }
.faq-page-answer__inner span { width:38px; height:38px; flex:0 0 auto; border-radius:50%; background:#C0392B; color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800; line-height:1; }
.faq-page-answer__inner p { margin:0; color:#1E293B; font-size:16px; font-weight:500; line-height:2; letter-spacing:.04em; }
@media screen and (max-width:767px) { .faq-page-section { padding:52px 0 64px; } .faq-page-lead { margin-bottom:36px; } .faq-page-lead h2 { font-size:24px; line-height:1.6; } .faq-page-lead p { font-size:14px; line-height:1.9; text-align:left; } .faq-page-lead p br { display:none; } .faq-page-question { min-height:66px; padding:16px 48px 16px 16px; font-size:15px; gap:12px; } .faq-page-question span { width:32px; height:32px; font-size:15px; } .faq-page-question::before { right:18px; } .faq-page-question::after { right:25px; } .faq-page-answer__inner { padding:18px 16px 22px; gap:12px; } .faq-page-answer__inner span { width:32px; height:32px; font-size:15px; } .faq-page-answer__inner p { font-size:14px; line-height:1.85; } }

/*会社概要
------------------------------------------------------------*/
.company-section { padding:76px 0 90px; background:#fff; }
.company-section__inner { width:min(1100px, 94%); margin:0 auto; }
.company-lead { margin:0 0 50px; text-align:center; }
.company-lead h2 { margin:0 0 36px; color:#0F2747; font-family:"Noto Serif JP", serif; font-size:36px; font-weight:700; line-height:1.6; letter-spacing:.08em; position:relative; }
.company-lead h2::after { content:""; width:72px; height:2px; background:#C0392B; position:absolute; left:50%; bottom:-18px; transform:translateX(-50%); }
.company-lead p { margin:0; color:#1E293B; font-size:16px; font-weight:600; line-height:2; letter-spacing:.05em; }
.company-table { width:100%; border-collapse:collapse; border:1px solid #dbe4ee; background:#fff; }
.company-table th { width:210px; padding:24px 26px; background:#f3f6fa; border:1px solid #dbe4ee; color:#0F2747; font-size:16px; font-weight:700; line-height:1.7; text-align:center; letter-spacing:.05em; vertical-align:middle; }
.company-table td { padding:24px 32px; border:1px solid #dbe4ee; color:#1E293B; font-size:16px; font-weight:500; line-height:1.9; letter-spacing:.04em; vertical-align:middle; }
.company-table td ul{margin-left:1.5em;}
@media screen and (max-width:767px) { .company-section { padding:52px 0 64px; } .company-lead { margin-bottom:36px; } .company-lead h2 { font-size:25px; line-height:1.6; } .company-lead p { font-size:14px; line-height:1.9; text-align:left; } .company-lead p br { display:none; } .company-table { border:none; } .company-table tr { display:block; margin-bottom:14px; border:1px solid #dbe4ee; } .company-table th { width:100%; display:block; padding:14px 18px; border:none; border-bottom:1px solid #dbe4ee; font-size:14px; text-align:left; } .company-table td { display:block; padding:16px 18px; border:none; font-size:14px; line-height:1.8; } }


@media screen and (max-width:767px) {
br.pcbr{display:none;}
br.spbr{display:block;}
}