:root{--navy:#07527a;--blue:#12a5cb;--pale:#eaf7fb;--ink:#123e59;--font-family:Arial,"Noto Sans JP",sans-serif;--heading-font:Georgia,"Noto Serif JP",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font-family);line-height:2}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:18px 7vw;background:#fffffff2;border-bottom:1px solid #d8eef4}.brand{font-weight:700;color:var(--navy);line-height:1.3}.site-header nav{display:flex;gap:24px;font-size:13px}.hero{min-height:500px;padding:100px 10vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(125deg,#fff,#e7f6fb)}.hero>div{max-width:650px}.hero h1,h2{color:var(--navy);font-family:var(--heading-font);font-weight:500;line-height:1.5}.hero h1{font-size:clamp(36px,6vw,68px);margin:20px 0}.eyebrow,.label{color:var(--blue);letter-spacing:.16em;font-size:12px}.hero img{width:260px;height:320px;object-fit:cover;border-radius:130px 130px 20px 20px;box-shadow:0 16px 34px #0a6b8d22}.section{max-width:1100px;margin:auto;padding:110px 7vw;display:grid;grid-template-columns:150px 1fr;gap:50px}.section h2{font-size:clamp(28px,4vw,44px);margin:0 0 25px}.large{font-size:18px;max-width:800px}.pale{max-width:none;background:var(--pale);padding-left:calc((100% - 1100px)/2 + 7vw);padding-right:calc((100% - 1100px)/2 + 7vw)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cards article{padding:22px;background:#fff;border-top:3px solid var(--blue)}.cards h3{margin:0;font-size:20px}.career>div{display:grid;grid-template-columns:150px 1fr;border-top:1px solid #b9dfe8;padding:14px 0}.career strong{color:var(--blue)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover}.contact{padding:100px 7vw;text-align:center;color:#fff;background:var(--navy)}.contact h2{color:#fff}.button{display:inline-block;padding:12px 24px;border:1px solid #fff;border-radius:24px}.site-header+main+footer,footer{padding:24px 7vw;background:var(--navy);color:#b9e3eb;font-size:12px;text-align:center}@media(max-width:700px){.site-header{display:block;padding:12px 5vw}.site-header nav{justify-content:space-between;gap:8px;font-size:10px;margin-top:8px}.hero{display:block;padding:70px 8vw}.hero img{display:block;margin:35px auto 0;width:210px;height:250px}.section,.pale{display:block;padding:70px 8vw}.label{margin-bottom:25px}.cards,.gallery{grid-template-columns:1fr}.career>div{grid-template-columns:95px 1fr;font-size:13px}.large{font-size:16px}.contact{padding:70px 8vw}.button{font-size:13px;white-space:nowrap}}body[data-image-style="square"] .hero img{border-radius:18px}body[data-image-style="circle"] .hero img{border-radius:50%}body[data-image-style="soft"] .hero img{border-radius:32px}body[data-image-style="portrait"] .hero img{border-radius:130px 130px 20px 20px}
.pale,.contact{position:relative;overflow:hidden}.pale::before,.contact::before{content:"";position:absolute;z-index:0;left:-5%;top:-1px;width:110%;height:54px;background:#fff;border-radius:0 0 50% 50% / 0 0 100% 100%;pointer-events:none}.pale>* ,.contact>*{position:relative;z-index:1}.pale{padding-top:140px;padding-bottom:140px}.contact{padding-top:140px}.contact::before{background:var(--pale)}@media(max-width:700px){.pale{padding-top:105px;padding-bottom:105px}.contact{padding-top:105px}.pale::before,.contact::before{height:38px;left:-12%;width:124%}}

/* ゆるやかな単一ウェーブのセクション区切り */
body[data-wave-style="gentle"] .pale::before,body[data-wave-style="gentle"] .contact::before{top:0;left:0;width:100%;height:76px;border-radius:0;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;}
body[data-wave-style="gentle"] .pale::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 38C17 25 29 19 42 23C56 27 65 35 78 32C88 30 94 24 100 19V0H0Z'/%3E%3C/svg%3E");}
body[data-wave-style="gentle"] .contact::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23eaf7fb' d='M0 38C17 25 29 19 42 23C56 27 65 35 78 32C88 30 94 24 100 19V0H0Z'/%3E%3C/svg%3E");}
@media(max-width:700px){body[data-wave-style="gentle"] .pale::before,body[data-wave-style="gentle"] .contact::before{height:52px}}

/* ウェーブ形状：flat=①直線、point=②山形、dome=③なだらかな山形 */
body[data-wave-style="flat"] .pale::before,body[data-wave-style="flat"] .contact::before{top:0;left:0;width:100%;height:1px;border-radius:0;background-image:none;}
body[data-wave-style="flat"] .pale::before{background-color:#fff;}
body[data-wave-style="flat"] .contact::before{background-color:var(--pale);}
body[data-wave-style="point"] .pale::before,body[data-wave-style="point"] .contact::before{top:0;left:0;width:100%;height:76px;border-radius:0;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;}
body[data-wave-style="point"] .pale::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 38L50 16L100 38V0H0Z'/%3E%3C/svg%3E");}
body[data-wave-style="point"] .contact::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23eaf7fb' d='M0 38L50 16L100 38V0H0Z'/%3E%3C/svg%3E");}
body[data-wave-style="dome"] .pale::before,body[data-wave-style="dome"] .contact::before{top:0;left:0;width:100%;height:76px;border-radius:0;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;}
body[data-wave-style="dome"] .pale::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 38C24 38 25 10 50 10C75 10 76 38 100 38V0H0Z'/%3E%3C/svg%3E");}
body[data-wave-style="dome"] .contact::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'%3E%3Cpath fill='%23eaf7fb' d='M0 38C24 38 25 10 50 10C75 10 76 38 100 38V0H0Z'/%3E%3C/svg%3E");}
@media(max-width:700px){body[data-wave-style="point"] .pale::before,body[data-wave-style="point"] .contact::before,body[data-wave-style="dome"] .pale::before,body[data-wave-style="dome"] .contact::before{height:52px}}

/* セクションの余白を広げ、写真を主役として見せるレイアウト */
@media (min-width:701px){
  .section{max-width:1320px}
  .section.pale{width:100%;max-width:none;padding-left:calc((100% - 1320px)/2 + 7vw);padding-right:calc((100% - 1320px)/2 + 7vw)}
  .hero img{width:clamp(330px,31vw,460px);height:clamp(390px,36vw,540px)}
  body #about,body #services,body #works{grid-template-columns:minmax(320px,.82fr) minmax(0,1.4fr);gap:72px}
  body .about-aside img,body .section-aside img{width:100%;max-width:none}
  body .section-aside img{aspect-ratio:1;object-fit:cover}
  body #works .section-aside img{object-fit:contain}
}

@media (max-width:700px){
  body .about-aside img,body .section-aside img{width:min(100%,260px)}
}
