: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}}
/* 活動実績の写真と年表 */
.activity-layout{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:32px;align-items:start}.activity-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;box-shadow:0 10px 24px #0a6b8d22}@media(max-width:700px){.activity-layout{grid-template-columns:1fr}}
.site-header{padding-left:max(24px,calc((100% - 1120px)/2));padding-right:max(24px,calc((100% - 1120px)/2))}
.hero{width:100%;max-width:none;margin:0;min-height:640px;padding:104px max(64px,calc((100% - 1200px)/2));gap:88px;background:linear-gradient(120deg,#f5fcfd 0%,#e2f4f8 52%,#cdebf1 100%)}
.hero>div{flex:1;max-width:650px}
.hero img{flex:0 0 auto;width:380px;height:480px;object-fit:cover;object-position:center;border-radius:190px 190px 28px 28px}
.section{max-width:1040px;padding:96px 48px;grid-template-columns:128px minmax(0,760px);gap:44px}
.section>div{min-width:0}
.pale{max-width:none;padding-left:max(48px,calc((100% - 1040px)/2 + 48px));padding-right:max(48px,calc((100% - 1040px)/2 + 48px))}
.large{max-width:760px;line-height:2.05}
.activity-layout{grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:40px}
.activity-image{aspect-ratio:3/2}
@media(max-width:700px){.hero{min-height:0;padding:64px 8vw;gap:0}.hero img{width:250px;height:316px;margin:38px auto 0}.section,.pale{padding:72px 8vw}.section{grid-template-columns:1fr;gap:0}.section .label{margin-bottom:20px}}

@media(max-width:1100px) and (min-width:701px){
  .hero{min-height:0;padding:80px 7vw;gap:40px}
  .hero>div{min-width:0}
  .hero img{width:290px;height:366px}
  .section{padding-left:7vw;padding-right:7vw;grid-template-columns:110px minmax(0,1fr);gap:30px}
  .pale{padding-left:7vw;padding-right:7vw}
}

/* 活動実績もABOUTと同じ明るい本文セクションに統一 */
#career{max-width:1040px;background:#fff;padding-top:96px;padding-bottom:96px}
#career::before{display:none}
#career>*{position:relative;z-index:1}
@media(max-width:700px){#career{padding-top:72px;padding-bottom:72px}}

/* 活動実績は写真と年表を縦に並べ、狭い画面でも崩れないようにする */
#career .activity-layout{grid-template-columns:minmax(0,1fr);gap:32px}
#career .activity-image{display:block;width:100%;max-width:320px;height:auto;aspect-ratio:3/2;margin:0 auto}
#career .career{width:100%;min-width:0}
#career .career>div{min-width:0}
#career.section{display:block;max-width:1040px;width:100%;margin:0 auto;padding-left:clamp(24px,7vw,48px);padding-right:clamp(24px,7vw,48px)}
#career.section>.label{display:block;margin:0 0 24px}
#career.section>div{width:100%;max-width:760px;margin:0 auto}
#career .career>div{display:grid;grid-template-columns:minmax(80px,120px) minmax(0,1fr);gap:18px;overflow-wrap:anywhere;word-break:break-word}
@media(min-width:1101px){#career .activity-layout{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:40px;align-items:start}#career .activity-image{margin:0;max-width:320px}}
@media(max-width:700px){#career.section{padding-left:8vw;padding-right:8vw}#career.section>div{max-width:none}#career .career>div{grid-template-columns:88px minmax(0,1fr);gap:10px}}

/* 参考サイトのABOUT（.section）と同じ外幅・余白に統一 */
#career.section{max-width:1100px;margin:auto;padding:110px 7vw;display:grid;grid-template-columns:150px 1fr;gap:50px}
#career.section>div{max-width:none;margin:0;width:auto}
@media(max-width:700px){#career.section{display:block;padding:70px 8vw}#career.section>.label{margin-bottom:25px}}

/* ACTIVITIESのラベル直下に写真を置き、本文を読みやすく縦に整理 */
#career.section{display:block}
#career.section>.label{margin-bottom:24px}
#career.section>div{max-width:800px;margin:0 auto}
#career .activity-layout{display:flex;flex-direction:column;gap:36px}
#career .activity-image{order:0;width:100%;max-width:800px;height:auto;aspect-ratio:3/2;object-fit:cover;margin:0}
#career .activity-layout>.career{order:1;width:100%}
#career .career>div{grid-template-columns:150px minmax(0,1fr);gap:24px}
@media(max-width:700px){#career.section{padding:70px 8vw}#career.section>div{max-width:none}#career .career>div{grid-template-columns:88px minmax(0,1fr);gap:10px}}

/* ABOUT：生成画像を梅干し写真と同じ幅で左側に配置 */
#about .about-content{display:flex;flex-direction:row;align-items:flex-start;gap:40px;width:100%}
#about .about-image{display:block;flex:0 0 320px;width:320px;max-width:320px;aspect-ratio:3/2;object-fit:cover;border-radius:12px;box-shadow:0 10px 24px #0a6b8d22}
#about .about-copy{min-width:0}
#about.section{display:block}
#about.section>.label{display:block;margin:0 0 28px}
#about.section>.about-content{max-width:none;margin:0}
#about.section>.about-content{max-width:1100px;margin-left:auto;margin-right:auto}
@media(max-width:600px){#about .about-content{display:block}#about .about-image{width:100%;max-width:320px;margin:0 auto 32px}}

/* WORKSもABOUTと同じ「見出し下：画像左・文章右」のレイアウト */
#works.section{display:block}
#works.section>.label{display:block;margin:0 0 28px}
#works.section>.about-content{display:flex;flex-direction:row;align-items:flex-start;gap:40px;width:100%;max-width:none;margin:0}
#works .about-image{display:block;flex:0 0 320px;width:320px;max-width:320px;aspect-ratio:3/2;object-fit:cover;border-radius:12px;box-shadow:0 10px 24px #0a6b8d22}
#works .about-copy{min-width:0}
@media(max-width:600px){#works.section>.about-content{display:block}#works .about-image{width:100%;max-width:320px;margin:0 auto 32px}}

/* お問い合わせ上部の波形は残し、色だけ白に変更 */
.contact::before{display:block!important;background-color:transparent!important;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")!important}

/* WORKS：水色背景、上下を白い波線で挟む */
#works.section{position:relative;overflow:hidden;width:100%;max-width:none;background:var(--pale);padding-top:150px;padding-bottom:150px}
#works.section::before,#works.section::after{content:"";position:absolute;z-index:0;left:0;width:100%;height:76px;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none}
#works.section::before{top:0;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")}
#works.section::after{bottom:0;transform:rotate(180deg);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")}
#works.section>*{position:relative;z-index:1}
#works.section>.label,#works.section>.about-content{width:100%;max-width:1100px;margin-left:auto;margin-right:auto}
@media(max-width:700px){#works.section{padding-top:110px;padding-bottom:110px}#works.section::before,#works.section::after{height:52px}}

/* ABOUT・WORKS・ACTIVITIESを同じ本文幅と列幅で完全に統一 */
#about.section>.about-content,#works.section>.about-content,#career.section>.activity-layout{width:100%;max-width:1100px;margin-left:auto;margin-right:auto}
#about .about-content,#works .about-content{display:grid;grid-template-columns:320px minmax(0,1fr);column-gap:40px;align-items:start}
#about .about-image,#works .about-image{width:320px;max-width:320px;height:auto;aspect-ratio:3/2;object-fit:cover}
#career .activity-layout{display:grid;grid-template-columns:320px minmax(0,1fr);column-gap:40px;align-items:start}
#career .activity-image{width:320px;max-width:320px;height:auto;aspect-ratio:3/2;object-fit:cover}
@media(max-width:700px){#about .about-content,#works .about-content,#career .activity-layout{display:block;width:100%}#about .about-image,#works .about-image,#career .activity-image{width:100%;max-width:320px;margin:0 auto 32px}}

/* WORKSを基準にABOUT・ACTIVITIESも同一レイアウトへ固定 */
@media(min-width:701px){
  #about.section>.about-content,#works.section>.about-content,#career.section>.activity-layout{display:grid!important;grid-template-columns:320px minmax(0,1fr)!important;gap:40px!important;align-items:start!important;width:100%!important;max-width:1100px!important;margin:0 auto!important}
  #about .about-image,#works .about-image,#career .activity-image{display:block!important;width:320px!important;max-width:320px!important;height:auto!important;aspect-ratio:3/2!important;object-fit:cover!important;margin:0!important}
  #about .about-copy,#works .about-copy,#career .career{min-width:0!important;width:auto!important}
}
@media(max-width:700px){
  #about.section>.about-content,#works.section>.about-content,#career.section>.activity-layout{display:block!important;width:100%!important;max-width:none!important}
  #about .about-image,#works .about-image,#career .activity-image{display:block!important;width:100%!important;max-width:320px!important;margin:0 auto 32px!important}
}

/* 3セクションの外枠を全幅、内部の画像・文章の開始位置を同じ中央幅に統一 */
#about.section,#works.section,#career.section{width:100%;max-width:none;margin-left:0;margin-right:0}
#about.section>.label,#about.section>.about-content,
#works.section>.label,#works.section>.about-content,
#career.section>.label,#career.section>.activity-layout{width:100%;max-width:1100px;margin-left:auto;margin-right:auto}

/* PCの活動実績：画像を左、年表を右に配置 */
@media(min-width:701px){
  #career.section{display:block;max-width:1200px;padding-left:5vw;padding-right:5vw}
  #career.section>.label{margin-bottom:28px}
  #career.section>div{max-width:none;margin:0;width:auto}
  #career .activity-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:40px;align-items:start;width:100%;max-width:1100px;margin:0 auto}
  #career .activity-image{width:320px;max-width:320px;height:auto;aspect-ratio:3/2;margin:0;object-fit:cover}
  #career .activity-layout>.career{width:100%;min-width:0}
  #career .career>div{grid-template-columns:90px minmax(0,1fr);gap:18px}
}
