.elementor-31167 .elementor-element.elementor-element-d97c3af{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:18vw;--padding-bottom:8vw;--padding-left:7.5vw;--padding-right:7.5vw;}.elementor-31167 .elementor-element.elementor-element-d97c3af:not(.elementor-motion-effects-element-type-background), .elementor-31167 .elementor-element.elementor-element-d97c3af > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(0deg, #EBEEEF 0%, #FFFFFF 70%);}.elementor-31167 .elementor-element.elementor-element-340e827{width:100%;max-width:100%;text-align:left;}.elementor-31167 .elementor-element.elementor-element-340e827 > .elementor-widget-container{padding:0vw 0vw 2vw 0vw;border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-340e827 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:2.5vw;font-weight:500;line-height:1.2em;letter-spacing:0.13em;}.elementor-31167 .elementor-element.elementor-element-8a08a6c{width:100%;max-width:100%;text-align:left;}.elementor-31167 .elementor-element.elementor-element-8a08a6c > .elementor-widget-container{padding:0vw 0vw 0vw 0vw;border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-8a08a6c .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:1.3vw;font-weight:600;text-transform:capitalize;line-height:1.2em;letter-spacing:0.03em;}.elementor-31167 .elementor-element.elementor-element-5dfe9e8{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;--padding-top:8vw;--padding-bottom:2vw;--padding-left:7.5vw;--padding-right:0vw;}.elementor-31167 .elementor-element.elementor-element-5dfe9e8:not(.elementor-motion-effects-element-type-background), .elementor-31167 .elementor-element.elementor-element-5dfe9e8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EBEEEF;}.elementor-31167 .elementor-element.elementor-element-82aa609{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;--padding-top:2vw;--padding-bottom:4vw;--padding-left:0vw;--padding-right:0vw;}.elementor-31167 .elementor-element.elementor-element-a22256f{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;}.elementor-31167 .elementor-element.elementor-element-b2accf2{width:var( --container-widget-width, 2% );max-width:2%;--container-widget-width:2%;--container-widget-flex-grow:0;}.elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon-wrapper{text-align:center;}.elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-view-stacked .elementor-icon{background-color:#3977B0;}.elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-view-default .elementor-icon{color:#3977B0;border-color:#3977B0;}.elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-view-default .elementor-icon svg{fill:#3977B0;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon{font-size:0.7vw;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon svg{height:0.7vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4{width:var( --container-widget-width, 97% );max-width:97%;--container-widget-width:97%;--container-widget-flex-grow:0;}.elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon-wrapper{text-align:left;}.elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-view-stacked .elementor-icon{background-color:#6AC4FF;}.elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-view-default .elementor-icon{color:#6AC4FF;border-color:#6AC4FF;}.elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b7da8b4.elementor-view-default .elementor-icon svg{fill:#6AC4FF;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon{font-size:0.7vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon svg{height:0.7vw;}.elementor-31167 .elementor-element.elementor-element-a316db4{width:100%;max-width:100%;z-index:2;}.elementor-31167 .elementor-element.elementor-element-a316db4 > .elementor-widget-container{padding:0.5vw 0vw 1.5vw 0vw;}.elementor-31167 .elementor-element.elementor-element-a316db4 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1.2vw;font-weight:500;line-height:2em;letter-spacing:0.07em;}.elementor-31167 .elementor-element.elementor-element-b3fe154{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#A9A9A9;--border-color:#A9A9A9;--padding-top:0vw;--padding-bottom:2vw;--padding-left:0vw;--padding-right:1vw;}.elementor-31167 .elementor-element.elementor-element-773b80c{width:100%;max-width:100%;text-align:left;}.elementor-31167 .elementor-element.elementor-element-773b80c .elementor-heading-title{font-family:"Quicksand", Sans-serif;font-size:8vw;font-weight:500;line-height:1em;color:#FFFFFF;}.elementor-31167 .elementor-element.elementor-element-2218f1c{width:100%;max-width:100%;}.elementor-31167 .elementor-element.elementor-element-2218f1c > .elementor-widget-container{padding:0vw 0vw 3vw 0vw;border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-2218f1c .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1.4vw;font-weight:600;line-height:1.5em;letter-spacing:0.13em;}.elementor-31167 .elementor-element.elementor-element-b1e423c{width:var( --container-widget-width, 10% );max-width:10%;--container-widget-width:10%;--container-widget-flex-grow:0;}.elementor-31167 .elementor-element.elementor-element-b1e423c > .elementor-widget-container{margin:0vw 0vw -0.5vw 0vw;}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b1e423c .elementor-icon-wrapper{text-align:left;}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-astglobalcolor1 );color:#FFFFFF;}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-default .elementor-icon{color:var( --e-global-color-astglobalcolor1 );border-color:var( --e-global-color-astglobalcolor1 );}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-framed .elementor-icon, .elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-astglobalcolor1 );}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-framed .elementor-icon{background-color:#FFFFFF;}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-view-stacked .elementor-icon svg{fill:#FFFFFF;}.elementor-31167 .elementor-element.elementor-element-b1e423c .elementor-icon{font-size:1.7vw;}.elementor-31167 .elementor-element.elementor-element-b1e423c .elementor-icon svg{height:1.7vw;}.elementor-31167 .elementor-element.elementor-element-b49dd44{width:var( --container-widget-width, 70% );max-width:70%;--container-widget-width:70%;--container-widget-flex-grow:0;text-align:center;}.elementor-31167 .elementor-element.elementor-element-b49dd44.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b49dd44 > .elementor-widget-container{border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-b49dd44 .elementor-heading-title{font-family:"Outfit", Sans-serif;font-size:3.1vw;font-weight:900;line-height:1em;letter-spacing:0.07em;color:#222222;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf{width:var( --container-widget-width, 18% );max-width:18%;--container-widget-width:18%;--container-widget-flex-grow:0;text-align:center;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf > .elementor-widget-container{background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:100px 100px 100px 100px;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:0.75vw;font-weight:600;line-height:2em;letter-spacing:0.13em;}.elementor-31167 .elementor-element.elementor-element-52bd943{width:100%;max-width:100%;}.elementor-31167 .elementor-element.elementor-element-52bd943 > .elementor-widget-container{padding:1vw 0vw 0vw 0vw;border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-52bd943 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1vw;font-weight:600;line-height:1.7em;letter-spacing:0.07em;}.elementor-31167 .elementor-element.elementor-element-911c447{--display:flex;}.elementor-31167 .elementor-element.elementor-element-2cd3b5d img{width:100%;border-radius:3vw 0 0 3vw;}.elementor-31167 .elementor-element.elementor-element-67ef274{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;--padding-top:8vw;--padding-bottom:0vw;--padding-left:7.5vw;--padding-right:7.5vw;}.elementor-31167 .elementor-element.elementor-element-67ef274:not(.elementor-motion-effects-element-type-background), .elementor-31167 .elementor-element.elementor-element-67ef274 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EBEEEF;}.elementor-31167 .elementor-element.elementor-element-150d7bb{--display:flex;}.elementor-31167 .elementor-element.elementor-element-9889a1d{text-align:left;}.elementor-31167 .elementor-element.elementor-element-9889a1d .elementor-heading-title{font-family:"Quicksand", Sans-serif;font-size:8vw;font-weight:500;line-height:1em;color:#FFFFFF;}.elementor-31167 .elementor-element.elementor-element-55cfe5a{width:100%;max-width:100%;}.elementor-31167 .elementor-element.elementor-element-55cfe5a > .elementor-widget-container{padding:0vw 0vw 3vw 0vw;border-radius:8px 8px 8px 8px;}.elementor-31167 .elementor-element.elementor-element-55cfe5a .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1.4vw;font-weight:600;line-height:1.5em;letter-spacing:0.13em;}.elementor-31167 .elementor-element.elementor-element-04f1d36{--display:flex;--justify-content:flex-end;}.elementor-31167 .elementor-element.elementor-element-bdaf873{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;--padding-top:0vw;--padding-bottom:4vw;--padding-left:7.5vw;--padding-right:7.5vw;}.elementor-31167 .elementor-element.elementor-element-bdaf873:not(.elementor-motion-effects-element-type-background), .elementor-31167 .elementor-element.elementor-element-bdaf873 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EBEEEF;}.elementor-31167 .elementor-element.elementor-element-7bd985f{--display:flex;}.elementor-31167 .elementor-element.elementor-element-72bf35c{--display:flex;}.elementor-31167 .elementor-element.elementor-element-fe86533{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-31167 .elementor-element.elementor-element-82aa609{--width:39%;}.elementor-31167 .elementor-element.elementor-element-911c447{--width:54%;}.elementor-31167 .elementor-element.elementor-element-150d7bb{--width:39%;}.elementor-31167 .elementor-element.elementor-element-04f1d36{--width:54%;}.elementor-31167 .elementor-element.elementor-element-7bd985f{--width:100%;}.elementor-31167 .elementor-element.elementor-element-72bf35c{--width:100%;}}@media(max-width:1020px){.elementor-31167 .elementor-element.elementor-element-340e827 .elementor-heading-title{font-size:3vw;}.elementor-31167 .elementor-element.elementor-element-8a08a6c .elementor-heading-title{font-size:2vw;}.elementor-31167 .elementor-element.elementor-element-5dfe9e8{--padding-top:8vw;--padding-bottom:4vw;--padding-left:5.5vw;--padding-right:0vw;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon{font-size:0.9vw;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon svg{height:0.9vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon{font-size:0.9vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon svg{height:0.9vw;}.elementor-31167 .elementor-element.elementor-element-a316db4 .elementor-heading-title{font-size:1.5vw;}.elementor-31167 .elementor-element.elementor-element-773b80c .elementor-heading-title{font-size:8vw;}.elementor-31167 .elementor-element.elementor-element-2218f1c .elementor-heading-title{font-size:1.7vw;}.elementor-31167 .elementor-element.elementor-element-b49dd44{--container-widget-width:68%;--container-widget-flex-grow:0;width:var( --container-widget-width, 68% );max-width:68%;text-align:center;}.elementor-31167 .elementor-element.elementor-element-b49dd44 .elementor-heading-title{font-size:3.2vw;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf{--container-widget-width:21%;--container-widget-flex-grow:0;width:var( --container-widget-width, 21% );max-width:21%;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf .elementor-heading-title{font-size:1.1vw;}.elementor-31167 .elementor-element.elementor-element-52bd943 .elementor-heading-title{font-size:1.3vw;}.elementor-31167 .elementor-element.elementor-element-67ef274{--padding-top:8vw;--padding-bottom:0vw;--padding-left:5.5vw;--padding-right:5.5vw;}.elementor-31167 .elementor-element.elementor-element-9889a1d{text-align:left;}.elementor-31167 .elementor-element.elementor-element-9889a1d .elementor-heading-title{font-size:8vw;}.elementor-31167 .elementor-element.elementor-element-55cfe5a .elementor-heading-title{font-size:1.7vw;}.elementor-31167 .elementor-element.elementor-element-bdaf873{--padding-top:0vw;--padding-bottom:4vw;--padding-left:5.5vw;--padding-right:5.5vw;}}@media(max-width:767px){.elementor-31167 .elementor-element.elementor-element-d97c3af{--padding-top:48vw;--padding-bottom:8vw;--padding-left:7.5vw;--padding-right:7.5vw;}.elementor-31167 .elementor-element.elementor-element-340e827 > .elementor-widget-container{padding:0vw 0vw 4vw 0vw;}.elementor-31167 .elementor-element.elementor-element-340e827 .elementor-heading-title{font-size:6vw;}.elementor-31167 .elementor-element.elementor-element-8a08a6c .elementor-heading-title{font-size:3.8vw;}.elementor-31167 .elementor-element.elementor-element-5dfe9e8{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0vw;--padding-bottom:0vw;--padding-left:3.5vw;--padding-right:3.5vw;}.elementor-31167 .elementor-element.elementor-element-82aa609{--gap:10vw 0vw;--row-gap:10vw;--column-gap:0vw;--padding-top:3vw;--padding-bottom:6vw;--padding-left:4vw;--padding-right:4vw;}.elementor-31167 .elementor-element.elementor-element-a22256f{--justify-content:flex-start;--gap:0vw 1vw;--row-gap:0vw;--column-gap:1vw;}.elementor-31167 .elementor-element.elementor-element-b2accf2{width:var( --container-widget-width, 2vw );max-width:2vw;--container-widget-width:2vw;--container-widget-flex-grow:0;}.elementor-31167 .elementor-element.elementor-element-b2accf2.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon{font-size:2vw;}.elementor-31167 .elementor-element.elementor-element-b2accf2 .elementor-icon svg{height:2vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4{width:var( --container-widget-width, 2vw );max-width:2vw;--container-widget-width:2vw;--container-widget-flex-grow:0;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon{font-size:2vw;}.elementor-31167 .elementor-element.elementor-element-b7da8b4 .elementor-icon svg{height:2vw;}.elementor-31167 .elementor-element.elementor-element-a316db4 > .elementor-widget-container{padding:0vw 0vw 4vw 0vw;}.elementor-31167 .elementor-element.elementor-element-a316db4 .elementor-heading-title{font-size:3.6vw;}.elementor-31167 .elementor-element.elementor-element-b3fe154{--padding-top:0vw;--padding-bottom:6vw;--padding-left:0vw;--padding-right:0vw;}.elementor-31167 .elementor-element.elementor-element-773b80c .elementor-heading-title{font-size:15vw;line-height:1em;}.elementor-31167 .elementor-element.elementor-element-2218f1c > .elementor-widget-container{padding:0vw 0vw 8vw 0vw;}.elementor-31167 .elementor-element.elementor-element-2218f1c .elementor-heading-title{font-size:3.4vw;}.elementor-31167 .elementor-element.elementor-element-b1e423c > .elementor-widget-container{margin:0vw 0vw -1.8vw 0vw;}.elementor-31167 .elementor-element.elementor-element-b1e423c{--container-widget-width:11%;--container-widget-flex-grow:0;width:var( --container-widget-width, 11% );max-width:11%;}.elementor-31167 .elementor-element.elementor-element-b1e423c.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b1e423c .elementor-icon{font-size:4.5vw;}.elementor-31167 .elementor-element.elementor-element-b1e423c .elementor-icon svg{height:4.5vw;}.elementor-31167 .elementor-element.elementor-element-b49dd44 > .elementor-widget-container{padding:0vw 0vw 0vw 0.5vw;}.elementor-31167 .elementor-element.elementor-element-b49dd44{--container-widget-width:66%;--container-widget-flex-grow:0;width:var( --container-widget-width, 66% );max-width:66%;text-align:left;}.elementor-31167 .elementor-element.elementor-element-b49dd44.elementor-element{--align-self:center;}.elementor-31167 .elementor-element.elementor-element-b49dd44 .elementor-heading-title{font-size:7.2vw;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf > .elementor-widget-container{padding:0vw 0vw 0vw 0vw;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf{--container-widget-width:20%;--container-widget-flex-grow:0;width:var( --container-widget-width, 20% );max-width:20%;text-align:center;}.elementor-31167 .elementor-element.elementor-element-fdd2bdf .elementor-heading-title{font-size:2.8vw;}.elementor-31167 .elementor-element.elementor-element-52bd943 > .elementor-widget-container{padding:4vw 0vw 0vw 0vw;}.elementor-31167 .elementor-element.elementor-element-52bd943{text-align:left;}.elementor-31167 .elementor-element.elementor-element-52bd943 .elementor-heading-title{font-size:3vw;}.elementor-31167 .elementor-element.elementor-element-2cd3b5d img{border-radius:3vw 3vw 3vw 3vw;}.elementor-31167 .elementor-element.elementor-element-67ef274{--padding-top:24vw;--padding-bottom:0vw;--padding-left:7.5vw;--padding-right:7.5vw;}.elementor-31167 .elementor-element.elementor-element-9889a1d{text-align:left;}.elementor-31167 .elementor-element.elementor-element-9889a1d .elementor-heading-title{font-size:15vw;}.elementor-31167 .elementor-element.elementor-element-55cfe5a > .elementor-widget-container{padding:0vw 0vw 8vw 0vw;}.elementor-31167 .elementor-element.elementor-element-55cfe5a .elementor-heading-title{font-size:3.4vw;}.elementor-31167 .elementor-element.elementor-element-bdaf873{--padding-top:0vw;--padding-bottom:4vw;--padding-left:7.5vw;--padding-right:7.5vw;}}/* Start custom CSS for heading, class: .elementor-element-773b80c */.elementor-31167 .elementor-element.elementor-element-773b80c {
    white-space: nowrap
}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-2cd3b5d */.elementor-31167 .elementor-element.elementor-element-2cd3b5d img{
    aspect-ratio: 745/929;
    object-fit: cover;
}

/*スマホ*/
@media only screen and (max-width: 767px){
.elementor-31167 .elementor-element.elementor-element-2cd3b5d img{
    aspect-ratio: 1.618 / 1;
    object-fit: cover;
}
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-9889a1d */.elementor-31167 .elementor-element.elementor-element-9889a1d {
    white-space: nowrap
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-ed8cc05 */.elementor-31167 .elementor-element.elementor-element-ed8cc05 {
    display: none1;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-c27ec0b *//* =========================================================
   CF7 Modern（変数対応・完全版）
   - すべての色をCSS変数で管理（:root で定義 → .cf7-modern で上書き可）
   - レイアウト/サイズ/角丸/影は不変更。配色のみ変数化
========================================================= */

/* ---- カラートークン（デフォルト） ---- */
:root {
  /* ===== フォーム全体 ===== */
  --cf7-bg: #ffffff00;           /* .cf7-modern 背景（透明のまま） */

  /* ===== テキスト系 ===== */
  --cf7-text: #111;              /* 入力文字色 */
  --cf7-head-muted: #666;        /* サブタイトル等 */
  --cf7-muted: #666;             /* カレンダー薄め文字 */
  --cf7-note: #888;              /* 補足文・カウンタ */
  --cf7-placeholder: #888;       /* プレースホルダー */
  --cf7-title-fg: rgba(0,0,0,.08); /* 大見出しの淡色 */

  /* ===== 入力フィールド（面・枠）→ オリジナルは白面＋薄グレー枠 ===== */
  --cf7-input-bg: #ffffff;       /* input/textarea/select/.date-display の背景 */
  --cf7-input-border: #dddddd;   /* フィールド枠線 */
  --cf7-divider-top: #a9a9a9;    /* 行の上罫線 */
  --cf7-divider-bottom: #e8e8e8; /* 最終行の下罫線 */

  /* ===== 強調・アクセント（オリジナルは青フォーカス＋赤アクセント） ===== */
  --cf7-focus: #3b82f6;          /* フォーカス枠 */
  --cf7-accent: #ff4757;         /* 必須バッジ背景など */

  /* ===== チェック・ラジオ（丸UI）→ 未選択は #f8f9fa、選択ドットは赤 ===== */
  --cf7-choice-unchecked: #f8f9fa;
  --cf7-choice-dot: #ff4757;

  /* ===== ステップインジケータ（非アクティブは薄グレー） ===== */
  --cf7-step-inactive-bg: #dddddd;
  --cf7-step-inactive-fg: #666666;
  --cf7-step-active-bg: #333333;
  --cf7-step-active-fg: #ffffff;

  /* ===== 送信ボタン（内容確認）→ オリジナルは白ボタン＋境界なし ===== */
  --cf7-btn-bg: #ffffff;
  --cf7-btn-fg: #333333;
  --cf7-btn-border: rgba(0,0,0,0);  /* 境界線なしに戻す */
  --cf7-btn-hover-bg: #444444;
  --cf7-btn-hover-fg: #ffffff;

  /* ===== カレンダーポップアップ（日付ピッカー） ===== */
  --cf7-calendar-popup-bg: #ffffff;
  --cf7-calendar-popup-border: #dddddd;  /* フィールド枠色に合わせる */
  --cf7-calendar-popup-shadow: rgba(0,0,0,0.1);
  --cf7-calendar-hover: #f0f8ff;
  --cf7-calendar-today: #fff3cd;
  --cf7-calendar-fg: #333333;
  --cf7-calendar-muted: #cccccc;

  /* ===== バッジ（任意ラベル） ===== */
  --cf7-badge-optional-bg: #dddddd;
  --cf7-badge-optional-fg: #666666;

  /* ===== スピナー位置（据え置き） ===== */
  --cf7-spinner-offset: -2.2em;
}



/* ここに .cf7-modern スコープで色を丸ごと変えたい場合は再定義してください
.cf7-modern {
  --cf7-input-bg: #f4f6f7;
  --cf7-focus: #7c3aed;
}
*/

/* =========================================================
   本体スタイル（配色はすべて変数で参照）
========================================================= */

/* 入力画面（既存そのまま） */
.cf7-modern {
  width: 100%;
  padding: 4vw 0;
  background: var(--cf7-bg);
  font-family: "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  font-size: 1.1vw;
  box-sizing: border-box;
  color: var(--cf7-text);
}

/* 見出し（任意） */
.cf7-modern .form-title {
  font-size: 4vw;
  font-weight: 700;
  color: var(--cf7-title-fg);
  text-align: center;
  margin: 0 0 1vw;
  letter-spacing: 0.3vw;
}
.cf7-modern .form-subtitle {
  text-align: center;
  color: var(--cf7-head-muted);
  margin: 0 0 3vw;
  font-size: 1.1vw;
}

/* ステップ（任意） */
.cf7-modern .step-indicator {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.5vw;
  margin-bottom: 3vw;
}
.cf7-modern .step { display: flex; flex-direction: column; align-items: center; }
.cf7-modern .step-number {
  width: 3.5vw; height: 3.5vw; border-radius: 50%;
  background: var(--cf7-step-inactive-bg);
  color: var(--cf7-step-inactive-fg);
  display: flex; align-items: center; justify-content: center; font-weight: 700;
  margin-bottom: 0.7vw; font-size: 1.1vw;
}
.cf7-modern .step.active .step-number { background: var(--cf7-step-active-bg); color: var(--cf7-step-active-fg); }
.cf7-modern .step-label { font-size: 1vw; color: var(--cf7-head-muted); }

/* 行レイアウト（3カラム固定） */
.cf7-modern .form-field {
  display: flex; align-items: center; justify-content: space-between; gap: 0;
  padding: 2vw 0; border-top: 1px solid var(--cf7-divider-top);
}
.cf7-modern .form-field:last-of-type { border-bottom: 1px solid var(--cf7-divider-bottom); }

/* 幅（25 / 40 / 25） */
.cf7-modern .field-label { flex: 0 0 25%; font-weight: 600; }
.cf7-modern .field-input { flex: 1; max-width: 40%; min-width: 0; font-weight: 500; }
.cf7-modern .field-help { flex: 0 0 25%; }

/* ラベル整列・余白リセット */
.cf7-modern .field-label label,
.cf7-modern .field-label > span,
.cf7-modern .field-label span[id$="-label"]{
  display: flex; justify-content: space-between; align-items: center; width: 100%; line-height: 1.3;
}
.cf7-modern .form-field label,
.cf7-modern .form-field p,
.cf7-modern .field-label p,
.cf7-modern .field-help p { margin: 0; }

/* 注記とバッジ */
.cf7-modern .note { font-size: 0.9vw; color: var(--cf7-note); margin-top: 0.4vw; }
.cf7-modern .required, .cf7-modern .optional {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.75vw; line-height: 1; padding: 0.4vw 0.6vw; border-radius: 0.2vw;
  margin-left: 0.2em; transform: translateY(-0.05em);
}
.cf7-modern .required { background: var(--cf7-accent); color: #fff; }
.cf7-modern .optional { background: var(--cf7-badge-optional-bg); color: var(--cf7-badge-optional-fg); }

/* 入力コントロール（共通：白背景で視認性UP） */
.cf7-modern input[type="text"],
.cf7-modern input[type="email"],
.cf7-modern input[type="tel"],
.cf7-modern input[type="date"],
.cf7-modern textarea {
  width: 100%;
  padding: 1vw 1.3vw;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  font-size: 1.1vw;
  line-height: 1.2;
  background: var(--cf7-input-bg);
  color: var(--cf7-text);
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}
.cf7-modern input[type="text"]:focus,
.cf7-modern input[type="email"]:focus,
.cf7-modern input[type="tel"]:focus,
.cf7-modern input[type="date"]:focus,
.cf7-modern textarea:focus { border-color: var(--cf7-focus); box-shadow: none; }
.cf7-modern textarea { min-height: 10vw; resize: vertical; }
.cf7-modern ::placeholder { color: var(--cf7-placeholder); }

/* 自動入力でも文字は黒 */
.cf7-modern input:-webkit-autofill {
  -webkit-text-fill-color: #000 !important;
  transition: background-color 9999s ease-out 0s;
}

/* =========================
   カスタム日付入力（×リセット対応）
========================= */
.custom-date-input { position: relative; width: 100%; }
.custom-date-input p{ margin:0; padding:0; display: contents; }
.custom-date-input br{ display:none; }

.date-display{
  position: relative;
  width: 100%;
  padding: 1vw 4.5vw 1vw 1.3vw;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  font-size: 1.1vw;
  line-height: 1.2;
  background: var(--cf7-input-bg);
  color: var(--cf7-text);
  box-sizing: border-box;
  outline: none;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.15s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1vw center;
  background-size: 1.2vw;
}
.date-display:hover,
.date-display:focus { border-color: var(--cf7-focus); }
.date-display.placeholder { color: var(--cf7-placeholder); }

.date-reset{
  position: absolute;
  right: 1vw;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2vw;
  height: 1.2vw;
  background: #999;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: background-color 0.15s;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
  line-height: 1;
  aspect-ratio: 1 / 1;
}
.date-reset:hover { background: #666; }
.date-reset::before {
  content: "×";
  color: #fff;
  font-size: 0.8vw;
  line-height: 1;
  font-weight: bold;
}
.custom-date-input.has-value .date-display { background-image: none; }
.custom-date-input.has-value .date-reset   { display: flex; }

.date-picker {
  position: absolute;
  top: 100%;
  left: -25%;
  right: 0;
  background: var(--cf7-calendar-popup-bg);
  border: 1px solid var(--cf7-calendar-popup-border);
  border-radius: 0.3vw;
  box-shadow: 0 4px 12px var(--cf7-calendar-popup-shadow);
  z-index: 1000;
  padding: 1vw;
  margin-top: 0.2vw;
  display: none;
}
.date-picker.active { display: block; width: 150%; }
.date-picker-header {
  display: flex; justify-content: space-between; align-items: center; 
  margin-bottom: 1vw;
}
.month-nav {
  background: none; 
  border: none; 
  font-size: 1.8vw; 
  font-weight: 700;
  cursor: pointer;
  padding: 0vw 0.8vw 0.6vw 0.8vw; border-radius: 0.2vw; color: var(--cf7-muted);
  display: flex; align-items: center; justify-content: center; min-width: 2vw;
}
.month-nav:hover { background: #f5f5f5; color: #333; }
.month-year { font-size: 1.1vw; font-weight: 600; color: #333; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.2vw; min-width: 250px; }
.day-header { text-align: center; font-size: 1vw; color: var(--cf7-muted); padding: 0.6vw; font-weight: 600; }
.day-cell {
  text-align: center; padding: 0.3vw 0.6vw; cursor: pointer; border-radius: 0.3vw;
  font-size: 1.1vw; 
  font-weight: 600; color: var(--cf7-calendar-fg); transition: background-color 0.15s; min-height: 2vw;
  display: flex; align-items: center; justify-content: center;
}
.day-cell:hover { background: var(--cf7-calendar-hover); }
.day-cell.other-month { color: var(--cf7-calendar-muted); }
.day-cell.selected { background: var(--cf7-focus); color: #fff; }
.day-cell.today { background: var(--cf7-calendar-today); font-weight: 600; }
.day-cell.disabled { color: var(--cf7-calendar-muted); cursor: not-allowed; }
.day-cell.disabled:hover { background: none; }

/* セレクト（時間用） */
.cf7-modern select {
  width: 100%;
  padding: 1vw 3.2vw 1vw 1.3vw;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  font-size: 1.1vw;
  line-height: 1.2;
  background-color: var(--cf7-input-bg);
  color: var(--cf7-text);
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s, color 0.15s, background-color 0.15s;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6l4 2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1vw center;
  background-size: 1.2vw;
  height: auto;
  min-height: calc(1.1vw * 1.2 + 2vw);
}
.cf7-modern select::-ms-expand { display: none; }
.cf7-modern select:focus { border-color: var(--cf7-focus); box-shadow: none; }

/* 日付＋時間 横並び */
.cf7-modern .input-row {
  display: flex; justify-content: space-between; align-items: center; gap: 4%;
}
.cf7-modern .input-row .half { flex: 0 0 48%; }
.cf7-modern .input-row .half > span,
.cf7-modern .input-row .half > .wpcf7-form-control-wrap {
  display: block; width: 100%;
}

/* オプション（チェック/ラジオ） */
.cf7-modern .options-inline {
  display: flex !important; flex-wrap: wrap; align-items: center; gap: 1vw 1.3vw;
}
.cf7-modern .options-inline br,
.cf7-modern .options-inline .wpcf7-list-item-br { display: none !important; }
.cf7-modern .options-inline .wpcf7-list-item {
  display: inline-flex !important; align-items: center; margin: 0; white-space: nowrap;
}
.cf7-modern .options-inline input[type="checkbox"],
.cf7-modern .options-inline input[type="radio"] {
  -webkit-appearance: none !important; appearance: none !important;
  width: 1.5vw; height: 1.5vw; border: none !important; box-shadow: none !important;
  background: var(--cf7-choice-unchecked) !important;
  border-radius: 50%; position: relative; cursor: pointer; outline: none; vertical-align: middle; margin: 0; margin-bottom: 0.2em;
}
.cf7-modern .options-inline input[type="checkbox"]:checked,
.cf7-modern .options-inline input[type="radio"]:checked { background: var(--cf7-choice-unchecked) !important; }
.cf7-modern .options-inline input[type="checkbox"]::after,
.cf7-modern .options-inline input[type="radio"]::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; transform: translate(-50%, -50%);
  background: var(--cf7-choice-dot); border-radius: 50%; transition: width 0.12s ease, height 0.12s ease;
}
.cf7-modern .options-inline input[type="checkbox"]:checked::after,
.cf7-modern .options-inline input[type="radio"]:checked::after { width: 0.7vw; height: 0.7vw; }
.cf7-modern .options-inline .wpcf7-list-item-label,
.cf7-modern .options-inline label.wpcf7-list-item-label {
  margin: 0 0 0 0.4em !important; display: inline-flex; align-items: baseline;
}

/* プライバシー */
.cf7-modern .privacy-policy {
  padding: 1.8vw 0 0 0;
  text-align: center;
  border-radius: 0.3vw;
  margin: 3vw 0 1.5vw;
  font-size: 0.9vw;
  line-height: 1.8;
  color: var(--cf7-muted);
  border-top: 1px solid var(--cf7-divider-top);
}
.cf7-modern .privacy-consent {
  display: flex; justify-content: center; align-items: center; border-top: none;
}
.cf7-modern .privacy-consent .wpcf7-list-item {
  display: inline-flex !important; flex-direction: row !important; align-items: center !important; gap: 0.6vw;
  margin: 0; white-space: nowrap;
}
.cf7-modern .privacy-consent br,
.cf7-modern .privacy-consent .wpcf7-list-item-br { display: none !important; }
.cf7-modern .privacy-consent input[type="checkbox"] {
  -webkit-appearance: none; appearance: none; width: 1.5vw; height: 1.5vw; background: var(--cf7-choice-unchecked); border: none; border-radius: 50%;
  position: relative; cursor: pointer; outline: none; display: inline-block; vertical-align: middle;
}
.cf7-modern .privacy-consent input[type="checkbox"]::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; transform: translate(-50%, -50%);
  background: var(--cf7-choice-dot); border-radius: 50%; transition: width 0.12s ease, height 0.12s ease;
}
.cf7-modern .privacy-consent input[type="checkbox"]:checked::after { width: 0.7vw; height: 0.7vw; }
.cf7-modern .privacy-consent .wpcf7-list-item-label,
.cf7-modern .privacy-consent label.wpcf7-list-item-label,
.cf7-modern .privacy-consent label[for="privacy-agree"] {
  display: inline-flex !important; align-items: baseline !important; margin: 0 !important; line-height: 1.2;
  font-size: 1.1vw; color: #333;
}

/* 補足文・送信ボタン */
.cf7-modern .help-text { font-size: 0.9vw; color: var(--cf7-note); line-height: 1.8; }
.cf7-modern .submit-container { text-align: center; margin-top: 3vw; }

/* 入力画面：内容確認ボタン */
.cf7-modern .submit-btn{
  width: 39%;
  background: var(--cf7-btn-bg);
  color: var(--cf7-btn-fg);
  font-weight: 700!important;
  padding: 2vw 3.5vw;
  border: 1px solid var(--cf7-btn-border);
  border-radius: 10vw;
  font-size: 1.5vw;
  line-height: 1.7;
  letter-spacing: 0.3em;
  cursor: pointer;
  transition: background .3s, box-shadow .2s, color .2s;

  /* 下方向だけに重心がある影（既存） */
  box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
}
.cf7-modern .submit-btn:hover { background: var(--cf7-btn-hover-bg); color: var(--cf7-btn-hover-fg); }

/* ---- 受諾チェックが入るまで送信ボタンを無効化（入力ページ） ---- */
.cf7-modern:not(:has(#privacy-agree:checked)) .submit-btn{
  opacity: .3;
  pointer-events: none;                /* クリック & :hover を無効化 */
  transition: background .3s, box-shadow .2s, opacity .15s;
}

.wpcf7-response-output { display: none; }

/* ========= テキストエリアのタイポを強制（入力画面用） ========= */
.cf7-modern textarea,
.cf7-modern .wpcf7-form-control.wpcf7-textarea{
  font-family: "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, "Noto Sans", sans-serif !important;
  font-size: 1.1vw !important;
  line-height: 1.7 !important;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--cf7-text);
  padding: 1vw 1.3vw !important;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  background: var(--cf7-input-bg);
  box-sizing: border-box;
  resize: vertical;
  min-height: 10vw;
}

/* 文字数カウンター（入力画面のみ） */
.cf7-modern .char-count{
  margin-top: .4vw;
  text-align: right;
  font-size: .9vw;     /* = .help-text と同等 */
  color: var(--cf7-note);
  line-height: 1.2;
}

/* =========================
   （タブレット）
========================= */
@media only screen and (max-width: 1020px) and (min-width: 768px) {
  .cf7-modern { font-size: 1.5vw; }
  .cf7-modern .field-label { flex: 0 0 24%; }
  .cf7-modern .field-input { max-width: 44%; }
  .cf7-modern .field-help  { flex: 0 0 24%; }
  .cf7-modern .note,
  .cf7-modern .help-text { font-size: 1.25vw; }
  .cf7-modern .required,
  .cf7-modern .optional { font-size: 1.0vw; padding: 0.35vw 0.55vw; border-radius: 0.25vw; }
  .cf7-modern input[type="text"],
  .cf7-modern input[type="email"],
  .cf7-modern input[type="tel"],
  .cf7-modern input[type="date"],
  .cf7-modern textarea,
  .cf7-modern select,
  .cf7-modern .date-display {
    font-size: 1.5vw; border-radius: 0.35vw; padding: 1.1vw 1.4vw;
    background: var(--cf7-input-bg); border-color: var(--cf7-input-border); color: var(--cf7-text);
  }
  .cf7-modern textarea { min-height: 14vw; }
  .cf7-modern select {
    padding: 1.1vw 4.4vw 1.1vw 1.4vw; background-size: 1.4vw;
    background-position: right 1.1vw center; min-height: calc(1.5vw * 1.2 + 2vw);
  }
  .cf7-modern .date-display {
    padding: 1.1vw 4.4vw 1.1vw 1.4vw; background-size: 1.4vw; background-position: right 1.1vw center;
  }
  .date-reset{ right: 1.1vw; width: 1.6vw; height: 1.6vw; padding: 0; -webkit-appearance: none; appearance: none; aspect-ratio: 1 / 1; line-height: 1; }
  .date-reset::before { font-size: 1.05vw; }
  .month-nav { font-size: 1.8vw; padding: 0vw 0.8vw 0.6vw 0.8vw; }
  .month-year { font-size: 1.5vw; }
  .day-header { font-size: 1.4vw; padding: 0.6vw; }
  .day-cell { padding: 0.2vw 0.6vw; font-size: 1.5vw; }
  .cf7-modern .options-inline input[type="checkbox"],
  .cf7-modern .options-inline input[type="radio"] {
    width: 2vw; height: 2vw; min-width: 2vw; min-height: 2vw; padding: 0; -webkit-appearance: none; appearance: none; aspect-ratio: 1 / 1; line-height: 1;
    background: var(--cf7-choice-unchecked) !important;
  }
  .cf7-modern .options-inline input[type="checkbox"]:checked::after,
  .cf7-modern .options-inline input[type="radio"]:checked::after { width: 0.8vw; height: 0.8vw; }
  .cf7-modern .privacy-consent input[type="checkbox"]{ width: 2vw; height: 2vw; min-width: 2vw; min-height: 2vw; padding: 0; -webkit-appearance: none; appearance: none; aspect-ratio: 1 / 1; line-height: 1; background: var(--cf7-choice-unchecked); }
  .cf7-modern .privacy-consent input[type="checkbox"]:checked::after{ width: 0.8vw; height: 0.8vw; }
  .cf7-modern .privacy-consent .wpcf7-list-item-label,
  .cf7-modern .privacy-consent label.wpcf7-list-item-label,
  .cf7-modern .privacy-consent label[for="privacy-agree"]{ font-size: 1.5vw; }

  /* ▼ ボタンをデスクトップと同デザインに統一（フォントサイズは既存維持） */
  .cf7-modern .submit-btn{
    width: 39%;
    background: var(--cf7-btn-bg);
    color: var(--cf7-btn-fg);
    border: 1px solid var(--cf7-btn-border);
    border-radius: 10vw;
    padding: 2vw 3.5vw;
    line-height: 1.7;
    letter-spacing: 0.3em;
    font-weight: 700 !important;
    cursor: pointer;
    transition: background .3s, box-shadow .2s, color .2s;
    box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
     font-size:1.7vw;
  }
  .cf7-modern .submit-btn:hover{
    background: var(--cf7-btn-hover-bg);
    color: var(--cf7-btn-hover-fg);
  }

  .cf7-modern .form-title { font-size: 6vw; margin: 0 0 1.4vw; letter-spacing: 0.4vw; }
  .cf7-modern .form-subtitle { font-size: 1.5vw; margin: 0 0 3vw; }
  .cf7-modern textarea,
  .cf7-modern .wpcf7-form-control.wpcf7-textarea{
    font-size: 1.5vw !important; line-height: 1.7 !important; padding: 1.2vw 1.6vw !important; min-height: 16vw;
    background: var(--cf7-input-bg); border-color: var(--cf7-input-border); color: var(--cf7-text);
  }
}

/* =========================
   レスポンシブ（スマホ）
========================= */
@media (max-width: 767px) {
  .cf7-modern { font-size: 3.8vw; padding: 5vw 0; }
  .cf7-modern .form-field { flex-direction: column; gap: 2vw; padding: 4vw 0; }
  .cf7-modern .field-label,
  .cf7-modern .field-input,
  .cf7-modern .field-help { flex: none; max-width: 100%; width: 100%; }
  .cf7-modern .field-input p { margin: 0 !important; width: 100% !important; }
  .cf7-modern .field-label label,
  .cf7-modern .field-label > span,
  .cf7-modern .field-label span[id$="-label"] { justify-content: flex-start; gap: 0.6em; }
  .cf7-modern .form-title { font-size: 8vw; margin: 0 0 2vw; letter-spacing: 0.5vw; }
  .cf7-modern .form-subtitle { font-size: 3.4vw; margin: 0 0 6vw; }
  .cf7-modern .step-indicator { gap: 5vw; margin-bottom: 6vw; }
  .cf7-modern .step-number { width: 8vw; height: 8vw; font-size: 3vw; margin-bottom: 1.5vw; background: var(--cf7-step-inactive-bg); color: var(--cf7-step-inactive-fg); }
  .cf7-modern .step-label { font-size: 2.8vw; }
  .cf7-modern .required,
  .cf7-modern .optional { font-size: 2.5vw; padding: 1vw 1.5vw; border-radius: 0.5vw; }
  .cf7-modern .note { font-size: 2.8vw; margin-top: 1vw; }
  .cf7-modern input[type="text"],
  .cf7-modern input[type="email"],
  .cf7-modern input[type="tel"],
  .cf7-modern input[type="date"],
  .cf7-modern textarea,
  .cf7-modern select {
    width: 100%; font-size: 3.6vw; padding: 2.5vw 3vw; border-radius: 0.8vw;
    background: var(--cf7-input-bg); border: 1px solid var(--cf7-input-border); color: var(--cf7-text);
  }
  .cf7-modern textarea { min-height: 25vw; }
  .cf7-modern select {
    padding: 2.5vw 8vw 2.5vw 3vw; background-size: 3vw; background-position: right 2.5vw center;
  }
  .cf7-modern .date-display {
    padding: 2.5vw 10vw 2.5vw 3vw; font-size: 3.6vw; border-radius: 0.8vw;
    background-size: 3vw; background-position: right 2.5vw center;
    background: var(--cf7-input-bg); border: 1px solid var(--cf7-input-border); color: var(--cf7-text);
  }
  .date-reset { right: 2.5vw; width: 4vw; height: 4vw; }
  .date-reset::before { font-size: 2vw; }
  .cf7-modern .input-row { flex-direction: column; gap: 2vw; width: 100% !important; }
  .cf7-modern .input-row .half { flex: unset !important; width: 100% !important; max-width: 100% !important; }
  .cf7-modern .input-row .half > p { width: 100% !important; margin: 0 !important; }
  .cf7-modern .input-row .half > span,
  .cf7-modern .input-row .half > .wpcf7-form-control-wrap,
  .cf7-modern .input-row .half > p > .wpcf7-form-control-wrap { width: 100% !important; display: block !important; }
  .cf7-modern .input-row .half .custom-date-input,
  .cf7-modern .input-row .half select,
  .cf7-modern .input-row .half input,
  .cf7-modern .input-row .half .date-display { width: 100% !important; max-width: 100% !important; }
  .cf7-modern .custom-date-input { width: 100% !important; }
  .cf7-modern .custom-date-input .date-display { width: 100% !important; }
  .cf7-modern .custom-date-input .date-display p { width: 100% !important; margin: 0 !important; }
  .cf7-modern .date-picker {
    width: 100%; left: 0; right: 0; padding: 3vw; border-radius: 0.8vw; margin-top: 0.5vw; min-width: unset;
    border: 1px solid var(--cf7-calendar-popup-border); background: var(--cf7-calendar-popup-bg);
    box-shadow: 0 4px 12px var(--cf7-calendar-popup-shadow);
  }
  .cf7-modern .date-picker.active { width: 100%; }
  .cf7-modern .date-picker-header { margin-bottom: 3vw; display: flex; justify-content: space-between; align-items: center; width: 100%; }
  .cf7-modern .month-nav {
    font-size: 5vw; padding: 2vw; width: 10%; height: 8vw; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .cf7-modern .month-year { font-size: 4vw; font-weight: 600; text-align: center; width: 80%; flex-shrink: 0; }
  .cf7-modern .calendar-grid { gap: 0.5vw; min-width: unset; }
  .cf7-modern .day-header { font-size: 3vw; padding: 2vw; color: var(--cf7-muted); }
  .cf7-modern .day-cell { font-size: 4vw; padding: 1.2vw 1.5vw; min-height: 6vw; border-radius: 0.8vw; color: var(--cf7-calendar-fg); }
  .cf7-modern .help-text { font-size: 2.8vw; line-height: 1.6; }
  .cf7-modern .options-inline { gap: 2vw 3vw; }
  .cf7-modern .options-inline input[type="checkbox"],
  .cf7-modern .options-inline input[type="radio"] {
    width: 4vw; height: 4vw; min-width: 4vw; min-height: 4vw; flex-shrink: 0;
    background: var(--cf7-choice-unchecked) !important;
  }
  .cf7-modern .options-inline input[type="checkbox"]:checked::after,
  .cf7-modern .options-inline input[type="radio"]:checked::after { width: 2vw; height: 2vw; }
  .cf7-modern .options-inline .wpcf7-list-item-label,
  .cf7-modern .options-inline label.wpcf7-list-item-label { margin: 0 0 0 1vw !important; font-size: 3.4vw; }
  .cf7-modern .privacy-policy { padding: 4vw 0 0 0; margin: 6vw 0 3vw; font-size: 2.8vw; border-top: 1px solid var(--cf7-divider-top); }
  .cf7-modern .privacy-consent { gap: 1.5vw; }
  .cf7-modern .privacy-consent input[type="checkbox"] {
    width: 4vw; height: 4vw; min-width: 4vw; min-height: 4vw; flex-shrink: 0; background: var(--cf7-choice-unchecked);
  }
  .cf7-modern .privacy-consent input[type="checkbox"]:checked::after { width: 2vw; height: 2vw; }
  .cf7-modern .privacy-consent .wpcf7-list-item-label,
  .cf7-modern .privacy-consent label.wpcf7-list-item-label,
  .cf7-modern .privacy-consent label[for="privacy-agree"] { font-size: 3.4vw !important; }
  .cf7-modern .submit-container { margin-top: 6vw; }
  .cf7-modern .submit-container p {
    display: flex; flex-direction: column; align-items: center; gap: 2vw; margin: 0;
  }

  /* ▼ ボタンをデスクトップと同デザインに統一（フォントサイズは既存維持） */
  .cf7-modern .submit-btn {
    width: 50%;
    background: var(--cf7-btn-bg);
    color: var(--cf7-btn-fg);
    border: 1px solid var(--cf7-btn-border);
    border-radius: 10vw;
    padding: 2vw 3.5vw;
    line-height: 1.7;
    letter-spacing: 0.3em;
    font-weight: 700 !important;
    cursor: pointer;
    transition: background .3s, box-shadow .2s, color .2s;
    box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
    font-size:3.4vw;
  }
  .cf7-modern .submit-btn:hover{
    background: var(--cf7-btn-hover-bg);
    color: var(--cf7-btn-hover-fg);
  }

  .cf7-modern .wpcf7-spinner { display: block; margin: 0 auto; } /* ←既存（下で位置だけ上書き） */
  .cf7-modern textarea,
  .cf7-modern .wpcf7-form-control.wpcf7-textarea{
    font-size: 3.4vw !important; line-height: 1.7 !important; padding: 2.5vw 3vw !important; min-height: 25vw; border-radius: 0.8vw;
    background: var(--cf7-input-bg); border: 1px solid var(--cf7-input-border); color: var(--cf7-text);
  }
}

/* =========================
   ▼▼ スピナーだけ位置修正（追加）▼▼
   ボタンの真下中央に固定。レイアウトを押さない
========================= */
.cf7-modern .submit-container { position: relative; }
.cf7-modern .submit-container .wpcf7-spinner {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--cf7-spinner-offset);
  margin: 0;
  pointer-events: none;
}
@media (max-width: 767px) {
  .cf7-modern .submit-container .wpcf7-spinner {
    bottom: calc(var(--cf7-spinner-offset) - 0.6em); /* モバイルは少し余裕を */
  }
  /* 既存の display:block; margin を打ち消し（位置は絶対配置のまま） */
  .cf7-modern .wpcf7-spinner { margin: 0; }
  .cf7-modern .char-count{
      font-size:3.4vw;}
}/* End custom CSS */