/*
Template:ystandard
Theme Name:hirosaki-mirai
*/
body{
width:100%
height:100%;
margin:0 auto;
padding:0;
font-size:16px;line-height:1.75em;
background:#fff;
   overflow-x: hidden;}

a{text-decoration:none;}

ol, ul {
    margin: 0;
    padding:0;
}
li{list-style:none;}

p {
    display: block;
    margin-block-start: 0em;
    margin-block-end: 0em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0em;
    padding: 0;
    line-height: 1.5;
    letter-spacing: .05em;
}

h1+h2, h2+h3, h3+h4, h4+h5, h5+h6 {
    margin-top: 0;
}

.entry-content h1+h2, .entry-content h2+h3, .entry-content h3+h4, .entry-content h4+h5, .entry-content h5+h6 {
    margin-top: 0em;
}

h2{color: #199ADE;
    font-size: 1.8em;
    font-weight: 600;}
h3{color: #199ADE;font-size: 1.5em;}

td, th {
    border-right:none;
    border-bottom:none;
}

tr {
    border-left:none;
}

amp-img, img {
    vertical-align: bottom;
}

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
    margin: 0em;}

.entry-content>* {margin-top:0;}

.back-to-top__content {
	box-shadow:none;}

#back-to-top {
bottom: 110px;
    right: 11vw;
}
.footer-copy{margin:0 auto;width:100%;color:#ffffff;padding-bottom: 0em;}
#footer-poweredby{display:none;}

.footer-main>* {
    margin-top: 2em;
}
.grecaptcha-badge { visibility: hidden; }

.container {
     max-width: 100%;
    margin: 0 auto;
    padding: 0;
}
.monly{display:block;}
.ponly{display:none;}


/* Header - Mobile First */
.header {
    background: #fff;
    padding: 15px 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.header .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

.header-type--row1 .site-branding {
    padding: 1em;
}



.site-header__content {
    display: flex;
    margin-top: 4px;
    margin-bottom: 0px;
}

.nav ul {
    display: flex;
    list-style: none;
    gap: 15px;
    font-size: 12px;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    margin-top: 10px;
}

.nav a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    transition: color 0.3s;
}

.nav a:hover {
    color: #00bcd4;
}

.topsns{    font-size: 1.5rem;
    display: inline-block;
    margin-right: 0.5em;}

/* Hero Section - Mobile First */
.hero {
    overflow: hidden;
	width: 100%;
    height: 100%;
    align-items: center;
}


.hero-content {
        width: 100%;
        height: 100%;
}

.hero-images {
   position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    opacity: 0.3;
	    text-align: right;
}

.hero-main-img {
    max-width: 300px;
    height: auto;
}

.hero-bg-elements {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.tech-pattern {
    position: absolute;
    top: 20%;
    right: 10%;
    width: 300px;
    height: 300px;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 10 L90 50 L50 90 L10 50 Z" fill="none" stroke="rgba(255,255,255,0.2)" stroke-width="2"/></svg>');
    opacity: 0.3;
}

/* Section Common - Mobile First */
.section {
    padding: 48px 0;
}

.entry-content h2.section-title {
    text-align: center;
    margin-bottom: 32px;
    color: #333;
    letter-spacing: 0.1em;
    font-weight: 300;
	    font-size: unset;
}
h2.section-title  {
    text-align: center;
    margin-bottom: 32px;
    color: #333;
    letter-spacing: 0.1em;
    font-weight: 300;
	    font-size: unset;
}

.section-title img{max-height:30px;}

.section-title span{display: block;
    font-size: 1.5rem;
    color: #ffffff;
    padding-top: 1em;
    font-weight: 600;    text-align: center;
    margin-bottom: 0.5em;}


/* Concept Section - Mobile First */
.concept {
    background: #ffffff;
    position: relative;
}

.inner-content {
    max-width:960px;
    margin: 0 auto;
	padding:0 1em;
}

.concept-txt p.last{margin-bottom:-8px;}

.placeholder-text {
   color: #666;
    margin-bottom: 1em;
    font-size: 1.5em;
    font-weight: 600;
	text-align:center;
	line-height: 1.5;
}

.ticket-btn-float {
   position: fixed;
    right: 15px;
    bottom: 15px;
    color: white;
    border-radius: 50%;
    text-decoration: none;
    text-align: center;
    font-weight: bold;
    box-shadow: 0 4px 20px rgba(255, 20, 147, 0.4);
    z-index: 999;
    width: 100px;
    height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: transform 0.3s;
}

.ticket-btn-float:hover {
    transform: scale(1.1);
}

.ticket-subtitle {
    font-size: 8px;
    font-weight: normal;
    margin-top: 5px;
}

.ch_bt{position: relative;
	margin: 0 auto;
	display: block;
	overflow: hidden;
	cursor: pointer;}

.ch_bt img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 100%;
	display: block;
	-webkit-transition: .4s ease-in-out;
	transition: .4s ease-in-out;
}
.ch_bt:hover img:nth-of-type(2) {
	opacity: 0;
}


/* Ticket Section - Mobile First */
.ticket {
    background:url(https://www.hirosaki-mirai.com/wp-content/uploads/2025/10/gdot-scaled.webp) no-repeat center / cover;
}

.ticket-prices {
    display: flex;
    flex-direction: column;
    gap: 1.5em;
    margin: 24px auto;
}

.kokuchi{margin:0 auto;font-weight:600;font-size:1.5em;color: #666;text-align:center;}

.price-item {
    text-align: center;
}

.price-value {
    display: block;
    font-size: 28px;
    font-weight: bold;
    color: #666;
}

.price-txt{
	font-size: 1.2em;
    font-weight: 600;
    color: #666;
}

	.p-tiatt{
    text-align: center;
    margin-top: -2.25em;
		color: #666666;
	}


.price-value span.pricesize{font-size:1.4em;}

.ticket-note {
    font-size: 12px;
    color: #333333;
	margin-top:4px;
	line-height:1.75;
}

.btn-primary {
 display: block;
    margin: 2em auto 0;
    padding: 0.75em 40px 0.5em;
    text-align: center;
    text-decoration: none;
    border: 2px solid #FF58BB;
    transition: all 0.3s;
    font-size: 1.4em;
    width: 100%;
    max-width: 720px;
	background:#FF58BB;
	color:#ffffff;
	border-radius:0.5em;
	font-weight:600;
}

.btn-primary:hover {
	color:#FF58BB;
	background:#ffffff;
}

.entry-content table.outlinetable{margin:3em auto 1.5em;border:none;}
.outlinetable th,.outlinetable td{display:table-cell;background:none;padding:8px 16px;}
table.outlinetable tr {
    border-bottom: 1px dotted #333333;
}
table.outlinetable tr.last{border:none;}

.attention{margin:2em 0;text-align:left;color:#FF58BB; font-weight: 400;text-align:left;}


.entry-content table.tctable{border: none;
    border-spacing: 5px 1.25rem;
    border-collapse: separate;}
.tctable th{background:none;width:100%;display:block;font-weight: bold;color: #fff;
    background: #FF58BB;}
.tctable td{width:100%;display:block;}
.entry-content table.tctable h4{font-size:1.5em;text-align: center;}
.entry-content table p.p-tiatt{text-align:center;font-size:1em;color:#666666;margin-top:0.25em;}

.haishin{text-align:center;margin:6em auto 0;}
.haishin img{width:100%;padding:0; max-width: 640px;border:1px solid #FF58BB;}
.haishin img:hover{opacity:0.7;}


/* Artist Section - Mobile First */
.artist {
		background:url(https://www.hirosaki-mirai.com/wp-content/uploads/2025/10/back_art-scaled.webp) no-repeat center / cover;
    position: relative;
	z-index: 0;
}

.artbacktxt{position:absolute; top: 50%;
    left: 5%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    z-index: -1;
}

.artbacktxt img{width:100%;margin:auto; }

.artist-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto;
}

.artist-item {
    text-align: center;
}

.artist-item img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.artist-name {
    margin-top: 15px;
    color: white;
    font-weight: bold;
}

.artist-side-text {
    display: none;
}

/* News Section - Mobile First */
.news {
   background:url(https://www.hirosaki-mirai.com/wp-content/uploads/2025/10/gdot-scaled.webp) no-repeat center / cover;
}

.news-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

.news-item {
    background: white;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.news-item img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.news-text {
    padding: 20px;
    font-size: 14px;
    line-height: 1.6;
}

/* Contact Section - Mobile First */
.contact {
    background: #fff;
}

.contact-form {
    max-width: 600px;
    margin: 0 auto;
}

.form-group {
    margin-bottom: 25px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 14px;
    font-family: inherit;
}

.form-group textarea {
    resize: vertical;
}

.form-note {
    font-size: 12px;
    color: #666;
    margin-bottom: 20px;
}

.btn-submit {
    width: 100%;
    padding: 15px;
    background: #333;
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    cursor: pointer;
    transition: background 0.3s;
}

.btn-submit:hover {
    background: #555;
}

/* Footer - Mobile First */

.footer-main {
    padding-top: 1em;
    padding-bottom: 0.5em;
    overflow: hidden;
	background:url(https://www.hirosaki-mirai.com/wp-content/uploads/2025/10/footerback-scaled.webp) no-repeat center / cover;
    background-color:none;
    color: var(--footer-text);
}

.footer-title {
    font-size: 24px;
    margin-bottom: 20px;
}

.footer-info {
font-size: 16px;
    margin-top: 1em;
    color: #ffffff;
	
}

.footinner{max-width: 960px;
    margin: 0 auto;
    text-align:left;padding: 0 1em;}


/* コンタクトフォーム */

	.t_icon img.icontactimg{width:85%;}

.contact_wrap{border: 2px solid #CF4001;
    border-radius: 1em;
    text-align: center;
    margin: 3em auto;
   padding: 1em 1em 0;
}

table.contactt{border-collapse: collapse;
    border-spacing: 0;
    max-width: 960px;
   margin: 0 auto 16px;
	text-align:center;
	border-top: none;
}

.contactt th{
 text-align:left;
 font-size:14px;
 color:#666666;
 padding: 8px;
 width:30%;
background:none;
}
/*通常欄*/
.contactt td{
 font-size:13px;
}
.contactt td.koumoku{
 font-size:15px;
}
/*横の行とテーブル全体*/
.entry-content table{
 border:solid 1px #cccccc;	
}

.entry-content table p {
    margin: 0em auto;
}

/*送信ボタンのデザイン変更*/
#formbtn{
 padding:15px;
 max-width:350px;
 background:#666666;
 color:#ffffff;
 font-size:16px;
 font-weight:bold;	 
 margin:24px auto 0;
	display: block;
	border:none;
}
/*送信ボタンマウスホバー時*/
#formbtn:hover{
 background:#aaaaaa;
 color:#ffffff;
 border:1px solid #aaaaaa;
}

input[type=email], input[type=search], input[type=text], input[type=url],  input[type=tel],select, textarea {
    display: block;
    width: 100%;
    -webkit-appearance: none;
	    background: #eeeeee;
    border: none;
}

table.contactt th,table.contactt td {
 display:block;
    width: 100%;
    max-width: 840px;
 border-top:none;
 -webkit-box-sizing:border-box;
 -moz-box-sizing:border-box;
 box-sizing:border-box;	
	margin:0 auto;
}

table.contactt th{text-align:center;margin-top:40px;}

table.contactt th.first{margin-top:60px;}
table.contactt td.endtd{margin-bottom:60px;}
div.wpcf7 .ajax-loader{display:none;}


span.caution{font-size:10px;display:block;
    margin-top: 4px;}

.wpcf7-spinner{
	width:0;
	margin:0;
	display: contents;
}

.contactatt{text-align:center;margin:0 auto;}

.back-to-top__content {
    background-color:transparent;

}


/*program*/

.entry-content table.prog-table {
	border:none;
}

.prog-table {
   border-collapse: collapse;
  width: 100%;
  color: #666;
  font-size: 1rem;font-weight:600;
}

.prog-table thead {display: table;margin: 0;width: 100%;}

  .prog-table th {
    text-align: left;
    color: #fff;
    font-weight: 600;
    background: #FF58BB;
  }

.prog-table tr {
  background-color: #fff;
}

.prog-table tr.oya,.prog-table tr.oya2{background:#efefef;}
.prog-table tr.odd{background:#ffffff;}

.prog-table tr.child {
border-bottom: none;background:#ffffff;
}
td.last{padding-bottom:1em;}
.prog-table tr.child2 {
	border-bottom: none;background:#efefef; }


.prog-table td {
  display: block;
  position: relative;
  font-size: 1em;
  text-align: left;
	padding: 1em 0 0 1em;border-bottom: 1px solid #666666;
}

.prog-table td.first {
border-bottom: none;
}
.prog-table td.mobend {
padding: 1em 0px 1em 1em;    border-bottom: 1px solid #666666;
}
.prog-table td.ko{text-indent:1em;padding: 0.25em 0px 0em 1em;border-bottom:none;
    font-weight: 600;}
.prog-table td.ko.last{padding: 0em 0em 0em 1em;}
.prog-table td.ko2{padding: 0em 0px 0.25em 2em;border-bottom:none;
    font-weight: 400;}
.prog-table td.ko2.last{    padding: 0em 1em 1em 2em;border-bottom: 1px solid #666666;}
.prog-table td.ko3{
    font-weight: 400;padding: 0em 1em 1em 2em;}

.prog-table td.monly{display:block;}
.prog-table td.ponly{display:none;}



/* Tablet: 768px and up */
@media (min-width: 768px) {
	
	.monly{display:none;}
.ponly{display:block;}
	
	.header-type--row1 .site-branding {
    padding: 1em 2em;
}
.header-type--row1 .global-nav {
    margin-right: 2em;
}
	
.topsns{font-size:1.25rem;margin-left:1em!important;margin-right:0;display:block;}	
	
	#back-to-top {
    right: 63px;
		bottom:140px;
}
	.kokuchi{font-size:1.75em;}
	
	.placeholder-text {
    font-size: 1.6em;
}
	
.entry-content h2.section-title {
    margin-bottom: 40px;
}
	
	
.ticket-btn-float {
    width: 120px;
    height: 120px;
}
	
	.price-item {
    text-align: center;
}
		.price-item.seata {
    text-align: right;
			padding-right:15px;
}
	
	.btn-primary {
		font-size: 1.5em;
    padding: 1em 40px;
}
	
	
.ticket-note {
    font-size: 16px;
}	
	
.attention{text-align:center;}	
	
    .logo {
        font-size: 18px;
    }
    
    .nav ul {
        font-size: 14px;
        gap: 20px;
        width: auto;
        margin-top: 0;
    }
    
    .hero {
    }
    
    .hero-title {
        font-size: 48px;
    }
    
 
    
    .hero-images {
        opacity: 0.6;
    }
    
    .hero-main-img {
         max-width: 940px;
    }
   
    .section {
        padding: 100px 0;
    }
    
	 .section.contact {
        padding: 100px 0;
    }
	
    .section-title {
        font-size: 40px;
        margin-bottom: 50px;
		    text-align: center;
    }
	
.section-title img{max-height:100%;}		
	
.section-title span {
    font-size: 1.6rem;
	line-height: 1;
}	
    
    .ticket-btn-float {
        right: 20px;
        bottom: 20px;
    }
    
    .ticket-subtitle {
        font-size: 9px;
    }
    
    .ticket-prices {
        flex-direction: row;
           justify-content: flex-end;
        gap: 40px;
		margin-bottom: 32px;
    margin-top: 32px;
    }
	.entry-content table.tctable h4 {
    text-align: left;
}
	
	td.tith{width:auto;display:table-cell;}
	
.outlinetable th{width:15%;}
	td.tith{width:auto;display:table-cell;}
	
.tctable th{background:none;width:25%;display:table-cell;color:#666;}	
.tctable td{width:auto;display:table-cell;}		

	.kokuchi{text-align:center;}
	
	.inner-content {
    max-width:960px;
    margin: 0 auto;
	padding:0 1em;
}
    
    .artist-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .artist-side-text {
        display: block;
        position: absolute;
        left: 20px;
        top: 50%;
        transform: translateY(-50%) rotate(-90deg);
        color: rgba(255, 255, 255, 0.3);
        font-size: 20px;
        letter-spacing: 0.2em;
        font-weight: bold;
        white-space: nowrap;
    }
    
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
	
	
/*program*/
	
table.prog-table {
  width: 100%;
    margin: 0 auto;
    table-layout: fixed;
    border: none;
  }

  /* テーブルヘッダー表示 */
  .prog-table thead {
    display: table-header-group;
  }
	
	 .prog-table thead tr {
        display: table;
    width: 100%;
  }


  .prog-table th {
  padding: 1em 10px 1em 1em;
    text-align: left;
    color: #fff;
    font-weight: 600;
    background: #FF58BB;
  }
	
	  .prog-table th:first-child {
		  padding-left:2em;
  }

  /* 行を通常テーブルに戻す */
 .prog-table tr {
    display: flex;
    margin-bottom: 0;
    border-radius: 0;
    padding: 0;
  }

 .prog-table tr:last-child {
    border-bottom: none;
  }

  .prog-table td {
    display: table-cell;
    padding: 1em 10px 1em 2em;
    border-bottom: 1px solid #666666;
    font-size: 1rem;
    position: static;
    text-align: left;
  }
	
	.prog-table td.left{width:35%;}
.prog-table	tr td:nth-of-type(2){width:65%;}
.prog-table td.mobend {
    padding: 1em 0px 1em 2em;
}	
	
	
.prog-table td.first {
border-bottom: 1px solid #666666;
}	

  .prog-table td::before {
    display: none;
  }	
	
.prog-table td.ko{text-indent:1em; padding: 0.5em 0px 0.25em 2em;
    font-weight: 600;border-bottom:none;}
.prog-table td.ko.last{padding: 0.5em 0px 1.5em 2em;border-bottom: 1px solid #666666;}
.prog-table td.ko2{padding: 0.5em 0px 0.5em 1em;border-bottom:none;}
.prog-table td.ko2.last{padding: 0.5em 0px 1.5em 1em;border-bottom: 1px solid #666666;}
.prog-table td.ko3{ padding: 1em 0 1em 1em;}	
	.prog-table tr.oya2 td{padding: 1em 10px 0em 2em;border-bottom:none;}
	

.prog-table td.monly{display:none;}
.prog-table td.ponly{display:block;}
	
}

/* Desktop: 1024px and up */
@media (min-width: 1024px) {
    .header .container {
        flex-wrap: nowrap;
    }
    
    .nav ul {
        gap: 30px;
    }
    
    .hero {
		
    }
	.header-type--row1 .site-header__content {
    align-items: center;
		margin-bottom: -13px;}
	
	.n2-ss-slider .n2-ss-item-image-content {
    overflow: hidden;
    line-height: 0;
    text-align: left;
    margin-top: 3%;
    margin-left: 3%;
}
	
	
	
    .hero-images {
        opacity: 1;
    }
    
    .hero-main-img {
     width: 100%;
    height: auto;
    min-height: 100%;
    max-height: 100%;
    margin: 0;
    }
    
    
.entry-content h2.section-title {
	margin-bottom:60px;
    }
    
    .ticket-btn-float {
        right: 20px;
    bottom: 20px;
    }
    
    .ticket-subtitle {
        font-size: 10px;
    }
    
    .ticket-prices {
        gap: 32px;
		    margin-bottom: 0px;
		margin-top: 0px;
    }
	
	.price-item {
    text-align: left;
}
	
	.p-tiatt{
	text-align: right;
    margin-top: -1.5em;
    color: #666666;
		margin-right: 1.35em;
	}
	.entry-content table.tctable th {border-right:1px solid #666;}
	}
    
    .artist-grid {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    }
    
    .artist-side-text {
        font-size: 24px;
    }
    
    .news-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Large Desktop: 1200px and up */
@media (min-width: 1200px) {
    .artist-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}