/* =====================================================
   Components (Front)
   -----------------------------------------------------
   - WordPress Blocks (alignwide/alignfull/columns)
   - Grid utilities
   - Jumbotron utilities
   - Responsive (4 breakpoints)
   Notes:
   - jumbotron 以外の最大幅は 1280px 想定
===================================================== */

/* ---------------------------------------------
   Tokens
--------------------------------------------- */
:root{--site-max:1280px;--wide-max:1280px;--content-max:760px;--gutter:16px;--flow:1rem;--grid-gap:16px;--jumbo-radius:16px;--jumbo-pad:clamp(24px,4vw,64px);--jumbo-bg:#f5f5f5;--jumbo-fg:inherit;}
/* Mobile */
@media (max-width:767px){
   :root{--gutter:14px;--grid-gap:14px;--flow:0.9rem;--jumbo-radius:14px;}
}
/* iPad Portrait */
@media (min-width:768px) and (max-width:1023px){
   :root{--gutter:18px;--grid-gap:18px;--flow:1rem;}
}
/* iPad Landscape */
@media (min-width:1024px) and (max-width:1279px){
   :root{--gutter:20px;--grid-gap:20px;--flow:1.05rem;}
}
/* PC */
@media (min-width:1280px){
   :root{--gutter:24px;--grid-gap:24px;--flow:1.1rem;}
}
/* ---------------------------------------------
   Container (front)
--------------------------------------------- */
.container{width:min(100% - (var(--gutter) * 2),var(--site-max));margin-inline:auto;}
.site-header .container,.site-footer .container,.site-main .container{width:min(100% - (var(--gutter) * 2),var(--site-max));margin-inline:auto;}
/* ---------------------------------------------
   Gutenberg alignments (front)
--------------------------------------------- */
.entry-content .alignwide{width:min(100% - (var(--gutter) * 2),var(--wide-max));margin-inline:auto;}
.entry-content .alignfull{width:100%;margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);}
/* Block flow spacing */
.entry-content > * + *{margin-top:var(--flow);}
/* Media safe */
.entry-content img,.entry-content video,.entry-content iframe{max-width:100%;}
/* Columns safety */
.wp-block-columns{gap:var(--grid-gap);}
.wp-block-column > *{max-width:100%;}
.wp-block-columns.is-not-stacked-on-mobile{align-items:stretch;}
/* ---------------------------------------------
   Grid utilities (front)
--------------------------------------------- */
.entry-content .grid{display:grid;gap:var(--grid-gap);}
.entry-content .grid--2,.entry-content .grid--3,.entry-content .grid--4{grid-template-columns:1fr;}
@media (min-width:768px) and (max-width:1023px){
   .entry-content .grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
   .entry-content .grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}
   .entry-content .grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (min-width:1024px) and (max-width:1279px){
   .entry-content .grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
   .entry-content .grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
   .entry-content .grid--4{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media (min-width:1280px){
   .entry-content .grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
   .entry-content .grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
   .entry-content .grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
}
.entry-content .grid--gap-sm{gap:calc(var(--grid-gap) * 0.75);}
.entry-content .grid--gap-lg{gap:calc(var(--grid-gap) * 1.25);}
/* =========================================
   Contact Form Base
========================================= */
[class$="_name"],[class$="_email"],[class$="_tel"],[class$="_textarea"]{width:100%;padding:0.6rem;border:1px solid #ccc;border-radius:4px;font-size:1rem;}
form[class]{max-width:640px;margin:0 auto;}
/* =========================================
   Breadcrumbs
========================================= */
.Breadcrumbs{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:12px 0 0;box-sizing:border-box;}
.BreadcrumbList{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;list-style:none;}
.BreadcrumbItem{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0.9rem;line-height:1.7;color:#666;}
.BreadcrumbLink{color:var(--ColorText,#333333);text-decoration:none;transition:opacity .2s ease;}
.BreadcrumbLink:hover{opacity:.7;text-decoration:underline;}
.BreadcrumbCurrent{color:#666;}
.BreadcrumbSeparator{display:inline-block;margin:0 .45em;color:#999;}
@media (max-width:767px){
   .Breadcrumbs{width:calc(100% - 24px);padding:10px 0 0;}
   .BreadcrumbItem{font-size:0.82rem;line-height:1.65;}
   .BreadcrumbSeparator{margin:0 .35em;}
}
/* =========================================
   Page Content Wrapper
========================================= */
.ContainerFull{width:100%;max-width:100%;box-sizing:border-box;overflow-x:clip}
.ContentBlock{width:100%;max-width:var(--ContainerMax);margin:0 auto var(--ContentGapPc);padding:0 var(--ContentPadPc);box-sizing:border-box}
.ContentBlock:last-child{margin-bottom:0}
.ContentBlockFull{width:100%;max-width:100%;padding:0 var(--ContentPadPc);margin:0 0 var(--ContentGapPc);box-sizing:border-box}
.ContentBlockFull:last-child{margin-bottom:0}
.ContentBlockFull.NoPad{padding:0}
.ContentBlockFull.Edge{padding:0;overflow:hidden}
@media (max-width:768px){
.ContentBlock{margin:0 auto var(--ContentGapSp);padding:0 var(--ContentPadSp)}
.ContentBlockFull{margin:0 0 var(--ContentGapSp);padding:0 var(--ContentPadSp)}
.ContentBlockFull.NoPad{padding:0}
.ContentBlockFull.Edge{padding:0}
}
/* ========================================
   Image Base
======================================== */
img{width:100%;height:auto;display:block;vertical-align:bottom}
/* Figure Base */
figure{width:100%;margin:2rem 0;display:block}
figure img{width:100%;height:auto;display:block;border-radius:0}
figure figcaption{margin-top:.75rem;font-size:.9rem;line-height:1.6;color:#666;text-align:center}
/* Article Image Base */
figure.ArticleImage{max-width:860px;margin:2rem auto}
figure.ArticleImage img{border-radius:8px;overflow:hidden}
/* Photo Frame */
figure.PhotoFrame{padding:12px;background:#fff;border:1px solid #ddd;box-shadow:0 6px 18px rgba(0,0,0,.08);border-radius:6px}
figure.PhotoFrame img{border-radius:4px}
/* Cinema Frame */
figure.CinemaFrame{position:relative;padding:18px 12px;background:#111;overflow:hidden}
figure.CinemaFrame::before,figure.CinemaFrame::after{content:"";position:absolute;left:0;width:100%;height:10px;background:repeating-linear-gradient(90deg,#111 0,#111 12px,#fff 12px,#fff 20px)}
figure.CinemaFrame::before{top:0}
figure.CinemaFrame::after{bottom:0}
figure.CinemaFrame img{display:block}
figure.CinemaFrame figcaption{color:#ddd}
/* Soft Frame */
figure.SoftFrame{padding:14px;background:#f7f7f7;border:1px solid rgba(0,0,0,.08);border-radius:14px}
figure.SoftFrame img{border-radius:10px}
figure.SoftFrame figcaption{color:#555}
/* Float Layout */
figure.FloatLeft{float:left;width:min(42%,360px);margin:.35rem 1.5rem 1rem 0}
figure.FloatRight{float:right;width:min(42%,360px);margin:.35rem 0 1rem 1.5rem}
/* Wide Image */
figure.WideImage{width:min(1200px,calc(100vw - 32px));max-width:none;margin:2.5rem auto}
figure.WideImage img{border-radius:10px}
/* Hero Image */
figure.HeroImage{width:min(1280px,calc(100vw - 32px));max-width:none;margin:0 auto 2.5rem}
figure.HeroImage img{min-height:320px;max-height:680px;object-fit:cover;border-radius:14px}
figure.HeroImage figcaption{margin-top:1rem}
/* Figure Utilities */
figure.NoCaption figcaption{display:none}
figure.NoRadius img{border-radius:0}
figure.Shadow img{box-shadow:0 10px 28px rgba(0,0,0,.14)}
figure.Round img{border-radius:18px}
figure.CenterCaption figcaption{text-align:center}
figure.LeftCaption figcaption{text-align:left}
figure.RightCaption figcaption{text-align:right}
/* Clearfix Helper */
.EntryContent::after,.PostContent::after,.PageContent::after{content:"";display:block;clear:both}
/* Responsive */
@media (max-width: 767px){
   figure{margin:1.5rem 0}
   figure.ArticleImage{max-width:100%;margin:1.5rem 0}
   figure.PhotoFrame{padding:8px}
   figure.CinemaFrame{padding:14px 8px}
   figure.SoftFrame{padding:10px}
   figure.FloatLeft,figure.FloatRight{float:none;width:100%;margin:1.25rem 0}
   figure.WideImage{width:100%;margin:1.5rem 0}
   figure.HeroImage{width:100%;margin:0 0 1.75rem}
   figure.HeroImage img{min-height:200px;max-height:none;border-radius:10px}
   figure figcaption{font-size:.85rem}
}
/* ========================================
   Grid System
======================================== */
:root{--GridMaxWidth:1280px;--GridGapPc:24px;--GridGapTb:20px;--GridGapSp:16px;--GridColumns:12;}
.Container{width:min(100% - 32px,var(--GridMaxWidth));margin:0 auto;}
.ContainerFluid{width:100%;margin:0 auto;padding-left:16px;padding-right:16px;}
.Row{display:flex;flex-wrap:wrap;margin-left:calc(var(--GridGapPc) * -.5);margin-right:calc(var(--GridGapPc) * -.5);}
.Row > *{width:100%;max-width:100%;padding-left:calc(var(--GridGapPc) * .5);padding-right:calc(var(--GridGapPc) * .5);box-sizing:border-box;}
.Col{flex:1 0 0%;}
.ColAuto{flex:0 0 auto;width:auto;}
.Col1{flex:0 0 auto;width:8.333333%;}
.Col2{flex:0 0 auto;width:16.666667%;}
.Col3{flex:0 0 auto;width:25%;}
.Col4{flex:0 0 auto;width:33.333333%;}
.Col5{flex:0 0 auto;width:41.666667%;}
.Col6{flex:0 0 auto;width:50%;}
.Col7{flex:0 0 auto;width:58.333333%;}
.Col8{flex:0 0 auto;width:66.666667%;}
.Col9{flex:0 0 auto;width:75%;}
.Col10{flex:0 0 auto;width:83.333333%;}
.Col11{flex:0 0 auto;width:91.666667%;}
.Col12{flex:0 0 auto;width:100%;}
.Offset1{margin-left:8.333333%;}
.Offset2{margin-left:16.666667%;}
.Offset3{margin-left:25%;}
.Offset4{margin-left:33.333333%;}
.Offset5{margin-left:41.666667%;}
.Offset6{margin-left:50%;}
.Offset7{margin-left:58.333333%;}
.Offset8{margin-left:66.666667%;}
.Offset9{margin-left:75%;}
.Offset10{margin-left:83.333333%;}
.Offset11{margin-left:91.666667%;}
.Gap0{--GridGapPc:0px;--GridGapTb:0px;--GridGapSp:0px;}
.Gap1{--GridGapPc:8px;--GridGapTb:8px;--GridGapSp:8px;}
.Gap2{--GridGapPc:12px;--GridGapTb:12px;--GridGapSp:12px;}
.Gap3{--GridGapPc:16px;--GridGapTb:16px;--GridGapSp:16px;}
.Gap4{--GridGapPc:24px;--GridGapTb:20px;--GridGapSp:16px;}
.JustifyStart{justify-content:flex-start;}
.JustifyCenter{justify-content:center;}
.JustifyEnd{justify-content:flex-end;}
.JustifyBetween{justify-content:space-between;}
.AlignStart{align-items:flex-start;}
.AlignCenter{align-items:center;}
.AlignEnd{align-items:flex-end;}
.AlignStretch{align-items:stretch;}
@media (max-width:1024px){
   .Row{margin-left:calc(var(--GridGapTb) * -.5);margin-right:calc(var(--GridGapTb) * -.5);}
   .Row > *{padding-left:calc(var(--GridGapTb) * .5);padding-right:calc(var(--GridGapTb) * .5);}
   .ColMd{flex:1 0 0%;}
   .ColMdAuto{flex:0 0 auto;width:auto;}
   .ColMd1{flex:0 0 auto;width:8.333333%;}
   .ColMd2{flex:0 0 auto;width:16.666667%;}
   .ColMd3{flex:0 0 auto;width:25%;}
   .ColMd4{flex:0 0 auto;width:33.333333%;}
   .ColMd5{flex:0 0 auto;width:41.666667%;}
   .ColMd6{flex:0 0 auto;width:50%;}
   .ColMd7{flex:0 0 auto;width:58.333333%;}
   .ColMd8{flex:0 0 auto;width:66.666667%;}
   .ColMd9{flex:0 0 auto;width:75%;}
   .ColMd10{flex:0 0 auto;width:83.333333%;}
   .ColMd11{flex:0 0 auto;width:91.666667%;}
   .ColMd12{flex:0 0 auto;width:100%;}
   .OffsetMd0{margin-left:0;}
   .OffsetMd1{margin-left:8.333333%;}
   .OffsetMd2{margin-left:16.666667%;}
   .OffsetMd3{margin-left:25%;}
   .OffsetMd4{margin-left:33.333333%;}
   .OffsetMd5{margin-left:41.666667%;}
   .OffsetMd6{margin-left:50%;}
   .OffsetMd7{margin-left:58.333333%;}
   .OffsetMd8{margin-left:66.666667%;}
   .OffsetMd9{margin-left:75%;}
   .OffsetMd10{margin-left:83.333333%;}
   .OffsetMd11{margin-left:91.666667%;}
}
@media (max-width:767px){
   .Container{width:min(100% - 24px,var(--GridMaxWidth));}
   .ContainerFluid{padding-left:12px;padding-right:12px;}
   .Row{margin-left:calc(var(--GridGapSp) * -.5);margin-right:calc(var(--GridGapSp) * -.5);}
   .Row > *{padding-left:calc(var(--GridGapSp) * .5);padding-right:calc(var(--GridGapSp) * .5);}
   .ColSm{flex:1 0 0%;}
   .ColSmAuto{flex:0 0 auto;width:auto;}
   .ColSm1{flex:0 0 auto;width:8.333333%;}
   .ColSm2{flex:0 0 auto;width:16.666667%;}
   .ColSm3{flex:0 0 auto;width:25%;}
   .ColSm4{flex:0 0 auto;width:33.333333%;}
   .ColSm5{flex:0 0 auto;width:41.666667%;}
   .ColSm6{flex:0 0 auto;width:50%;}
   .ColSm7{flex:0 0 auto;width:58.333333%;}
   .ColSm8{flex:0 0 auto;width:66.666667%;}
   .ColSm9{flex:0 0 auto;width:75%;}
   .ColSm10{flex:0 0 auto;width:83.333333%;}
   .ColSm11{flex:0 0 auto;width:91.666667%;}
   .ColSm12{flex:0 0 auto;width:100%;}
   .OffsetSm0{margin-left:0;}
   .OffsetSm1{margin-left:8.333333%;}
   .OffsetSm2{margin-left:16.666667%;}
   .OffsetSm3{margin-left:25%;}
   .OffsetSm4{margin-left:33.333333%;}
   .OffsetSm5{margin-left:41.666667%;}
   .OffsetSm6{margin-left:50%;}
   .OffsetSm7{margin-left:58.333333%;}
   .OffsetSm8{margin-left:66.666667%;}
   .OffsetSm9{margin-left:75%;}
   .OffsetSm10{margin-left:83.333333%;}
   .OffsetSm11{margin-left:91.666667%;}
}
.Row.GapTight{margin-left:-4px;margin-right:-4px;}
.Row.GapTight > *{padding-left:4px;padding-right:4px;}
.Row.GapMini{margin-left:-2px;margin-right:-2px;}
.Row.GapMini > *{padding-left:2px;padding-right:2px;}
.Row.GapNone{margin-left:0;margin-right:0;}
.Row.GapNone > *{padding-left:0;padding-right:0;}
@media (max-width:1024px){
   .Row.GapTight{margin-left:-3px;margin-right:-3px;}
   .Row.GapTight > *{padding-left:3px;padding-right:3px;}
   .Row.GapMini{margin-left:-2px;margin-right:-2px;}
   .Row.GapMini > *{padding-left:2px;padding-right:2px;}
}
@media (max-width:767px){
   .Row.GapTight{margin-left:-2px;margin-right:-2px;}
   .Row.GapTight > *{padding-left:2px;padding-right:2px;}
   .Row.GapMini{margin-left:-1px;margin-right:-1px;}
   .Row.GapMini > *{padding-left:1px;padding-right:1px;}
}
@media (max-width:767px){
.Row.Reverse{flex-direction:column-reverse;}
.Row.Reverse2{flex-direction:row-reverse;}
}
/* ========================================
   TextAlign
======================================== */
.TextLeft{text-align:left;}
.TextCenter{text-align:center;}
.TextRight{text-align:right;}

@media (max-width:1024px){
.TextMdLeft{text-align:left;}
.TextMdCenter{text-align:center;}
.TextMdRight{text-align:right;}
}

@media (max-width:767px){
.TextSmLeft{text-align:left;}
.TextSmCenter{text-align:center;}
.TextSmRight{text-align:right;}
}
/* ========================================
   FontSize
======================================== */
.FontSize65{font-size:0.65rem !important;}
.FontSize70{font-size:0.7rem !important;}
.FontSize75{font-size:0.75rem !important;}
.FontSize80{font-size:0.8rem !important;}
.FontSize85{font-size:0.85rem !important;}
.FontSize90{font-size:0.9rem !important;}
.FontSize95{font-size:0.95rem !important;}
.FontSize100{font-size:1rem !important;}
.FontSize105{font-size:1.05rem !important;}
.FontSize110{font-size:1.1rem !important;}
.FontSize115{font-size:1.15rem !important;}
.FontSize120{font-size:1.2rem !important;}
.FontSize125{font-size:1.25rem !important;}
.FontSize130{font-size:1.3rem !important;}
.FontSize135{font-size:1.35rem !important;}
.FontSize140{font-size:1.4rem !important;}
.FontSize145{font-size:1.45rem !important;}
.FontSize150{font-size:1.5rem !important;}
.FontSize160{font-size:1.6rem !important;}
.FontSize170{font-size:1.7rem !important;}
.FontSize180{font-size:1.8rem !important;}
.FontSize190{font-size:1.9rem !important;}
.FontSize200{font-size:2rem !important;}
.FontSize210{font-size:2.1rem !important;}
.FontSize220{font-size:2.2rem !important;}
.FontSize230{font-size:2.3rem !important;}
.FontSize240{font-size:2.4rem !important;}
.FontSize250{font-size:2.5rem !important;}
.FontSize260{font-size:2.6rem !important;}
.FontSize270{font-size:2.7rem !important;}
.FontSize280{font-size:2.8rem !important;}
.FontSize290{font-size:2.9rem !important;}
.FontSize300{font-size:3rem !important;}
.FontSize325{font-size:3.25rem !important;}
.FontSize350{font-size:3.5rem !important;}
.FontSize375{font-size:3.75rem !important;}
.FontSize400{font-size:4rem !important;}
.FontSize425{font-size:4.25rem !important;}
.FontSize450{font-size:4.5rem !important;}
.FontSize475{font-size:4.75rem !important;}
.FontSize500{font-size:5rem !important;}
/* ========================================
   SectionPadding
======================================== */
.PadTB5{padding-top:5rem!important;padding-bottom:5rem!important;}
.PadTB25{padding-top:2.5rem!important;padding-bottom:2.5rem!important;}
.PadB5{padding-bottom:5rem!important;}
.PadB25{padding-bottom:2.5rem!important;}
.PadB0{padding-bottom:0!important;}
/* ========================================
   SectionPadding
======================================== */
.MagB0{margin-bottom:0!important;}
