@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@100;200;300;400;500;600;700;800;900&display=swap');


/* ===== Cold Color Theme ===== */
:root {
  --c-main: #1A6FA8;     /* 青寄りに調整（重要） */
  --c-sub:  #352C85;     /* 少しだけ青寄りに寄せた紫 */
  --c-accent: #155E91;   /* メインに合わせた濃い青 */
  --c-dark: #182235;     /* 全体トーンに合わせて締め */
  --text-dark: #1F2937;
  --text-light: #FFFFFF;

  --grad-main: linear-gradient(135deg, #1A6FA8, #352C85);
  --grad-soft: linear-gradient(30deg,  #1A6FA8, #352C85);
  --grad-rev:  linear-gradient(175deg, #352C85, #1A6FA8);
}



/* Basic reset and body styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* body */
body {
    position: relative;
    /* Required for positioning the pseudo-element */
    line-height: 1.6;
    color: #ffffff;
    /* Standard text color */
    font-family: 'Noto Sans JP', 'Roboto Condensed', sans-serif;
    /* Clean and modern for body text */
}

body::before {
    content: '';
    /* Required for the pseudo-element */
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /* background: linear-gradient(135deg, rgba(27,199,211,0.82), rgba(72,60,160,0.82)); White overlay with 50% transparency */
    z-index: 1;
    /* Place it above the background but below text */
}

/* Ensure text appears above the overlay */
body * {
    position: relative;
    /* Ensure child elements are above the overlay */
    z-index: 2;
    /* Make sure they are above the overlay */
}

/* body */
/* Header styles */
header{
max-width:1400px;
margin:0 auto;
padding:30px 20px;
text-align:center;
position:relative;
font-style:normal;
}

header h1{
font-size:3.6em;
margin:0 0 10px 0;
font-weight:700;
font-style:normal;
line-height:1.18;
letter-spacing:.01em;
color:rgba(20,35,60,.92);
text-shadow:0 2px 14px rgba(0,60,120,.12);
}

header h1 br{
display:block;
content:"";
margin-top:.18em;
}

header h2{
font-size:1.65em;
margin:6px 0 0 0;
font-weight:500;
color:rgba(20,70,125,.9);
letter-spacing:.02em;
text-shadow:0 1px 10px rgba(0,60,120,.10);
-webkit-text-stroke:0;
}

@media(max-width:768px){
header{padding:30px 15px;}
header h1{font-size:2.2em;line-height:1.22;}
header h2{font-size:1.25em;}
}

@media(max-width:480px){
header{padding:20px 10px;}
header h1{font-size:1.8em;line-height:1.24;}
header h2{font-size:1.12em;}
}
/*header.php*/
.academic-title{max-width:1400px;margin:0 auto;padding:32px 20px;text-align:center;}
.academic-title h1{font-family:"Noto Sans JP",sans-serif;font-weight:800;letter-spacing:.02em;}
.academic-title h1 br{display:block;margin-top:.3em;}
.academic-title h2{font-family:"Noto Sans JP", sans-serif;font-size:1.4em;font-weight:500;letter-spacing:.08em;margin:0;color:#2c4666;}
@media(max-width:768px){.academic-title h1{font-size:2.2em;letter-spacing:.03em;}.academic-title h2{font-size:1.15em;letter-spacing:.06em;}}
@media(max-width:480px){.academic-title h1{font-size:1.8em;}.academic-title h2{font-size:1.05em;}}

/* Main container styles */
.container {
    display: flex;
    /* Use flexbox for layout */
    max-width: 1400px;
    /* Limit maximum width */
    margin: 0 auto;
    /* Center the container */
    padding: 5px;
}

/* navigation Start */

/* Sidebar styles */
.sidebar{
  width:330px;
  background:linear-gradient(160deg,#17447D 0%, #1d4f91 50%, #2563b0 100%);
  padding:20px;
  text-align:left;
  border-radius:12px 0 0 12px;
  box-shadow:0 10px 35px rgba(0,20,60,.35);
}

.sidebar nav ul{
list-style:none;
padding:0;
}

.sidebar nav ul li{
margin-bottom:10px;
position:relative;
}

.sidebar nav ul li a{
display:block;
text-decoration:none;
color:rgba(255,255,255,.9);
padding:12px 20px;
border-radius:6px;
transition:background-color .3s ease,transform .3s ease,box-shadow .3s ease;
font-size:1.2em;
font-weight:600;
-webkit-text-stroke:0;
border-bottom:1px solid rgba(255,255,255,.25);
}

.sidebar nav ul li a:hover{
  background:rgba(255,255,255,.12);
  color:#fff;
  transform:translateY(-1px) scale(1.01);
  box-shadow:0 6px 18px rgba(0,20,60,.25);
}

.sidebar nav ul li a:hover::after{
content:"";
display:block;
width:100%;
height:2px;
background-color:rgba(255,255,255,.7);
position:absolute;
left:0;
bottom:0;
}

.menu-toggle{
display:none;
background:var(--c-main);
color:#fff;
border:solid 1px rgb(29,199,211);
padding:10px 15px;
font-size:1em;
border-radius:5px;
cursor:pointer;
margin-bottom:15px;
transition:background-color .3s ease,transform .3s ease;
}

.menu-toggle:hover{
/*background:linear-gradient(100deg,var(--c-sub),var(--c-main));*/
transform:scale(1.05);
}

@media(max-width:768px){
.menu-toggle{
display:block;
width:100%;
}
.nav{
display:none;
}
.nav.active{
display:block;
}
}

.sidebar nav ul li a.active{
  background:rgba(255,255,255,.18);
  color:#fff;
  font-weight:bold;
  border-left:4px solid #ffffff;
}

/* Navigation end */


/* Main Content Area styles */
main {
    flex-grow: 1;
    /* Allow main to take remaining space */
    color: black;
}


/* Main Poster Section Styles */
.poster {
    text-align: center;
    /* Center the poster image */
}

.poster img {
    max-width: 100%;
    /* Ensure the image is responsive */
    height: auto;
/*    cursor: pointer;*/
    /* Show pointer when hovering over the image */
    border-radius: 5px;
    /* Rounded corners */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    /* Subtle shadow */
    margin-top: 10px;
}

/* Sidebar Poster Thumbnail Section */
.download-poster{
text-align:center;
margin-top:20px;
padding:10px;
transition:box-shadow .3s ease,transform .3s ease;
border-radius:10px;
box-shadow:0 6px 18px rgba(0,40,80,.12);
background:linear-gradient(160deg,rgba(120,190,215,.75),rgba(155,170,225,.75));
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
}

.download-poster:hover{
box-shadow:0 10px 28px rgba(0,60,120,.18);
transform:translateY(-4px);
background:linear-gradient(160deg,rgba(130,200,225,.85),rgba(165,180,235,.85));
}

.download-poster img{
width:100px;
height:auto;
border-radius:6px;
margin:10px 0;
transition:transform .3s ease,box-shadow .3s ease;
box-shadow:0 4px 12px rgba(0,40,80,.15);
}

.download-poster:hover img{
transform:scale(1.05);
box-shadow:0 8px 20px rgba(0,60,120,.2);
}

.download-poster .pdf-download-button{
display:inline-block;
margin-top:10px;
padding:6px 14px;
font-size:17px;
background:rgba(255,255,255,.25);
color:#fff;
border:1px solid rgba(255,255,255,.6);
text-decoration:none;
border-radius:6px;
transition:background-color .3s ease,transform .3s ease,box-shadow .3s ease;
}

.download-poster .pdf-download-button:hover{
background:rgba(255,255,255,.35);
transform:translateY(-1px);
box-shadow:0 4px 14px rgba(0,60,120,.18);
}

/* Hover effect for the download button */
.download-poster .pdf-download-button:hover {
    background-color: #ffffff;
    color: var(--c-main);
    transform: translateY(-2px);
    /* Lift effect */
}

/* Responsive adjustments for the main poster and sidebar thumbnail */
@media (max-width: 768px) {

    /* Main poster image adjusts to full width on smaller screens */
    .poster img {
        width: 100%;
    }

    /* Sidebar poster thumbnail image gets smaller */
    .download-poster img {
        width: 80px;
        /* Make the thumbnail smaller on smaller screens */
    }

    /* Adjust the size and padding of the download button on smaller screens */
    .download-poster .pdf-download-button {
        font-size: 10px;
        /* Smaller font size for the button */
        padding: 3px 8px;
        /* Reduced padding */
    }
}

.sponsor-banner{margin-top:2rem;display:flex;justify-content:center;}
.sponsor-banner img{margin-bottom:.6rem;}
.sponsor-banner a:hover img{opacity:.6;}
@media (max-width: 768px) {
.sponsor-banner img{ width:100%;}
}


/*--- Footer styles ----- */
footer{
background:linear-gradient(160deg,rgba(120,190,215,.75),rgba(155,170,225,.75));
padding:30px 0;
text-align:left;
margin:0;
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
box-shadow:0 -8px 30px rgba(0,40,80,.08);
}

.footer-container{
display:flex;
justify-content:flex-end;
/*
max-width:1200px;
margin:0 auto;
padding:0 20px;
*/
gap:24px;
}

.footer-info-left,.footer-info-right{
width:45%;
/*margin-left:auto;*/
}

.footer-info-left h4,.footer-info-right h4{
color:rgba(255,255,255,.95);
font-size:1.25em;
line-height:1.4;
margin:0 0 8px 0;
text-shadow:0 2px 10px rgba(0,40,80,.18);
}

.footer-info-left p,.footer-info-right p{
line-height:1.7;
font-size:1.05em;
color:rgba(255,255,255,.9);
margin:0;
text-shadow:0 1px 8px rgba(0,40,80,.14);
}

.footer-info-left a,.footer-info-right a{
color:rgba(255,255,255,.95);
text-decoration:underline;
text-underline-offset:3px;
text-decoration-color:rgba(255,255,255,.6);
transition:color .3s ease,text-decoration-color .3s ease;
}

.footer-info-left a:hover,.footer-info-right a:hover{
color:#fff;
text-decoration-color:rgba(255,255,255,.95);
}

.footer-rights{
width:100%;
background:linear-gradient(160deg,rgba(110,180,210,.9),rgba(140,160,220,.9));
color:rgba(255,255,255,.95);
padding:16px 0;
text-align:center;
font-size:1.05em;
margin-top:12px;
border-top:1px solid rgba(255,255,255,.25);
}

.footer-rights p{
margin:0;
text-shadow:0 1px 8px rgba(0,40,80,.14);
}

@media(max-width:768px){
.footer-container{
flex-direction:column;
align-items:center;
}
.footer-info-left,.footer-info-right{
width:100%;
text-align:center;
margin-bottom:20px;
}
.footer-rights{
font-size:.9em;
}
footer{
padding:20px 0;
}
}
/*--- End Footer styles ----- */

/* Media Queries for Responsiveness */
@media (max-width: 1024px) {

    /* Adjust sidebar width on smaller screens */
    .sidebar {
        width: 200px;
        /* Reduce width */
        margin-right: 15px;
        /* Adjust margin */
    }

    /* Adjust font size for links in the sidebar */
    .sidebar nav ul li a {
        font-size: 1em;
        /* Smaller font size */
        padding: 10px 15px;
        /* Adjust padding */
    }
}

@media (max-width: 768px) {

    /* Full width for smaller screens */
    .sidebar {
        width: 100%;
        /* Full width for sidebar */
        margin: 0 0 20px;
        /* Remove margin on right and add margin below */
    }

    /* Adjust main content area */
    .container {
        flex-direction: column;
        /* Stack sidebar and main vertically */
    }

    /* Adjust font size for links in the sidebar */
    .sidebar nav ul li a {
        font-size: 1em;
        /* Smaller font size */
        padding: 10px;
        /* Adjust padding */
    }
}

@media (max-width: 480px) {

    /* Further adjustments for extra small screens */
    header {
        padding: 15px;
        /* Smaller padding */
    }

    footer {
        padding: 8px;
        /* Smaller footer padding */
    }
}

/* Back to Top Button Styles */
.back-to-top{
position:fixed;
bottom:20px;
right:20px;
background:linear-gradient(160deg,rgba(120,190,215,.85),rgba(155,170,225,.85));
color:#fff;
border:1px solid rgba(255,255,255,.55);
border-radius:8px;
padding:10px 15px;
font-size:1em;
font-weight:700;
cursor:pointer;
display:none;
z-index:1000;
box-shadow:0 10px 26px rgba(0,60,120,.2);
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease;
}

.back-to-top.show{
display:block;
}

.back-to-top:hover{
transform:translateY(-1px);
box-shadow:0 14px 34px rgba(0,60,120,.24);
}

/* お知らせ Styles */
/* Announcements Section Styles */
.announcements {
    margin: 40px 0;
    /* More space above and below the section */
    padding: 20px;
    /* Padding inside the section */
    background-color: #ffffff;
    /* White background for a clean look */
    border: 1px solid #e0e0e0;
    /* Light border */
    border-radius: 8px;
    /* Rounded corners for a modern feel */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    /* Slight shadow for depth */
}

.announcements h3 {
    font-size: 2em;
    /* Larger font size for the heading */
    margin-bottom: 20px;
    /* Space below the heading */
    color: var(--c-main);
    /* Darker text color */
    text-align: left;
    /* Center align the heading */
/*    font-family: 'Arial', sans-serif;*/
    /* Modern font */
    border-bottom: 3px solid var(--c-main);
    /* Strong blue underline */
    padding-bottom: 10px;
    /* Padding below the heading */
}

.news-scroll-box {
    max-height: 300px;
    /* Increased height for better viewing */
    overflow-y: auto;
    /* Enable vertical scrolling */
    padding: 15px;
    /* Padding inside the scrollable area */
    background-color: #f9f9f9;
    /* Light grey background for news items */
    border: 1px solid #d1e3ed;
    /* Subtle border around the scrollable box */
    border-radius: 5px;
    /* Slightly rounded corners */
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);
    /* Light shadow */
}

.news-list {
    list-style: none;
    /* Remove default list style */
    padding: 0;
    /* Remove default padding */
    margin: 0;
    /* Remove default margin */
}

.news-list li {
    margin-bottom: 15px;
    /* Space between news items */
    padding: 15px;
    /* Padding inside each item */
    background-color: #ffffff;
    /* White background for each news item */
    border-left: 5px solid var(--c-main);
    /* Blue left border for emphasis */
    transition: transform 0.3s, background-color 0.3s;
    /* Smooth transition for effects */
    position: relative;
    /* Positioning for hover effect */
}

.news-list li:hover {
    background-color: #e1f5fe;
    /* Light blue background on hover */
    transform: translateY(-2px);
    /* Slight lift effect on hover */
}

.news-date {
    font-weight: bold;
    /* Bold for date */
    color: var(--c-main);
    /* Blue color for date */
    margin-right: 10px;
    /* Space between date and item */
}

.news-item {
    color: #333;
    /* Dark text color for news item */
/*    font-family: 'Arial', sans-serif;*/
    /* Consistent font */
    line-height: 1.6;
    /* Improved line height for readability */
}

/* Responsive Styles */
@media (max-width: 768px) {
    .announcements h3 {
        font-size: 1.6em;
        /* Adjust heading font size for smaller screens */
    }

    .news-scroll-box {
        max-height: 200px;
        /* Adjust max height for smaller screens */
    }

    .news-list li {
        padding: 10px;
        /* Less padding for smaller screens */
    }
}

/* ーーーーーーー aisatsu pageーーーーーーーーーー */
/* Greeting Section Styles */
.greeting-content {
    display: flex;
    align-items: center;
    margin-top: 30px;
    background-color: #f4f8fb8c;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* Greeting Photo Styles */
.greeting-photo {
    width: 200px;
    height: 300px;
    object-fit: cover;
    border-radius: 50%;
    margin-right: 20px;
}

/* Greeting Info Styles */
.greeting-info {
    text-align: left;
    flex-direction: column;
    flex: 1;
}

.greeting-info h3 {
    color: var(--c-main);
    margin: 0;
    font-size: 1.6rem;
}

.greeting-info h4 {
    color: #333;
    margin: 5px 0;
    font-size: 1.2rem;
}

.greeting-info h4.chairperson {
    color: #333;
    font-size: 1.6rem;
    font-weight: 700;
}

.greeting-text {
    margin-top: 20px;
    flex-basis: 100%;
    font-size: 1.2em;
}

/* Styles for specific h2 elements with the class greeting-title */
.greeting-title {
    font-size: 2rem;
    color: var(--c-dark);
    border-bottom: 2px solid var(--c-dark);
    text-align: left;
    margin: 20px 0;
    position: relative;
}

/* Responsive Styles */
@media (max-width: 768px) {
    .container {
        flex-direction: column;
    }
    .sidebar {
        width: 100%;
        margin-bottom: 20px;
    }
    main {
        width: 100%;
    }
    .greeting-content {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }

    .greeting-photo {
        margin-bottom: 15px;
    }
}
main {
    flex: 1;
    /* Allow main content to grow */
    padding: 20px;
    /* Add padding for spacing */
    background-color: #ffffff;
    /* White background for the main area */
}

/* ーーーーーーー aisatsu pageーーーーーーーーーー */

/* ーーーーーーー gaiyou pageーーーーーーーーーー */

/* Main Styles */
main.gaiyou {
    padding: 30px;
    background: linear-gradient(to bottom right, #f0f8ffa6, #ffffff);
    /* Light blue gradient background */
    border-radius: 0px 10px 10px 0px;
    /* Rounded corners */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    /* Subtle shadow for depth */
    /* margin: 20px; Margin around the main content */
}

/* Overview Section Styles */
.overview {
    margin: 0;
    /* No margin for section */
}

/* Heading Style */
.overview h2 {
    font-size: 2rem;
    /* Smaller font size for a more subtle look */
    color: var(--c-dark);
    /* Professional blue color */
    border-bottom: 2px solid var(--c-dark);
    /* Underline for emphasis */
    text-align: left;
    /* Left-align the text */
    margin: 20px 0;
    /* Space above and below the heading */
    position: relative;
    /* Positioning for pseudo-elements */
}

/* Table Styles */
.details table {
    width: 100%;
    /* Full width for the table */
    border-collapse: collapse;
    /* Merge table borders */
    margin-top: 15px;
    /* Space above the table */
    overflow: hidden;
    /* Prevent overflow */
    border-radius: 5px;
    /* Rounded corners for table */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    /* Shadow effect */
}

/* Table Header Styles */
.details table{
width:100%;
border-collapse:separate;
border-spacing:0;
border-radius:12px;
overflow:hidden;
box-shadow:0 10px 28px rgba(0,40,80,.08);
background:rgba(255,255,255,.85);
}

.details th{
background:linear-gradient(160deg,rgba(210,235,220,.95),rgba(190,225,205,.95));
color:rgba(20,45,35,.9);
padding:14px 14px;
text-align:center;
font-weight:700;
font-size:1.05em;
border-right:1px solid rgba(0,80,60,.12);
border-bottom:1px solid rgba(0,80,60,.12);
width:28%;
}

.details td{
background:rgba(255,255,255,.92);
border-bottom:1px solid rgba(0,60,120,.10);
padding:14px 16px;
line-height:1.7;
color:rgba(30,35,45,.92);
}

.details tr:last-child th,.details tr:last-child td{
border-bottom:none;
}

.details tr:hover td{
background:rgba(240,248,255,.85);
}

.details a{
color:rgba(20,70,125,.92);
text-decoration:underline;
text-underline-offset:3px;
text-decoration-color:rgba(20,70,125,.35);
transition:color .2s ease,text-decoration-color .2s ease;
}

.details a:hover{
color:rgba(20,70,125,1);
text-decoration-color:rgba(20,70,125,.75);
}

@media(max-width:768px){
main.gaiyou{padding:20px;}
.overview h2{font-size:1.85rem;}
.details table{font-size:.95em;border-radius:12px;}
.details th,.details td{display:block;width:100%;}
.details tr{display:flex;flex-direction:column;margin-bottom:15px;border:1px solid rgba(0,60,120,.10);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.9);}
.details th{
background:linear-gradient(160deg,rgba(210,235,220,.95),rgba(190,225,205,.95));
color:rgba(20,45,35,.9);
padding:10px 12px;
border-right:none;
border-bottom:1px solid rgba(0,80,60,.12);
}
.details td{border-top:none;}
}


/* ーーーーーーー gaiyou pageーーーーーーーーーー */
/* ーーーーーーー sankareg pageーーーーーーーーーー */
/* Section Styles */
.registration-info .registration-fee,
.registration-time {
    margin-bottom: 20px;
    /* Space between sections */
    padding: 15px;
    /* Padding inside each section */
    background-color: #fff;
    /* White background for sections */
    border-radius: 8px;
    /* Rounded corners */
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);
    /* Light shadow */
}

/* Section Headings */
.registration-info h3,
.registration-fee h3,
.registration-time h3 {
    font-size: 1.2rem;
    /* Font size for headings */
    margin-bottom: 10px;
    /* Space below headings */
    color: var(--c-main);
    /* Heading color */
	font-weight: 800;
}

.registration-info h4,
.registration-fee h4,
.registration-time h4 {
    font-size: 1.2rem;
    /* Font size for headings */
    margin-bottom: 10px;
    /* Space below headings */
    color: var(--c-main);
    /* Heading color */
}

/* Paragraph Styles */
.registration-info p,
.registration-fee p,
.registration-time p {
    font-size: 1rem;
    /* Font size for paragraphs */
    line-height: 1.5;
    /* Line height for readability */
    margin-bottom: 10px;
    /* Space between paragraphs */
}

/* Strong Text */
.registration-fee p strong {
    font-size: 1.2rem;
    /* Larger font size for important text */
    color: #f74479;
    /* Color for strong text */
}

/* Download Link */
.download-link {
    display: inline-block;
    /* Block for better spacing */
    padding: 10px 15px;
    /* Padding for the button */
    background: var(--c-main);
    color: #ffffff;
    /* Button text color */
    border: solid 1px rgb(29,199,211);
    /* No border */
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s;
    /* Transition for hover effect */
}

.download-link:hover {
    background-color: #ffffff;
    color: var(--c-main);
    transform: translateY(-2px);
    /* Lift effect */
}

/* Contact Section */
.registration-fee a {
    color: var(--c-main);
    /* Link color */
    text-decoration: underline;
    /* Underline links */
}

/* Responsive Styles */
@media (max-width: 768px) {

    .registration-info h3,
    .registration-fee h3 {
        font-size: 1.2rem;
        /* Smaller section headings */
    }

    .registration-info p,
    .registration-fee p {
        font-size: 0.9rem;
        /* Smaller paragraph text */
    }
}

/* List Styles in Registration Fee Section */
.registration-info ul {
    list-style-type: decimal;
    /* Use disc bullet points */
    padding-left: 20px;
    /* Space from the left for bullets */
}

.registration-info ul li {
    font-size: 1rem;
    /* Font size for list items */
    line-height: 1.5;
    /* Line height for readability */
    margin-bottom: 10px;
    /* Space between list items */
    color: #333;
    /* Standard text color */
}

.registration-info a {
    color: #ffffff;
    /* Standard text color */
    text-decoration: none;
    font-weight: 600;
}

.registration-info a:hover {
    background-color: #ffffff;
    color: var(--c-main);

}


/* Strong text inside list items */
.registration-info ul li strong {
    color: var(--c-main);
    /* Color for strong text */
}

/* Optional: Add hover effect on list items */
.registration-info ul li:hover {
    background-color: #f0f8ff;
    /* Light background on hover */
    border-radius: 4px;
    /* Slightly rounded corners on hover */
    transition: background-color 0.3s;
    /* Smooth transition */
}

/* \\\\\\\\\\\\\\\\\\\\\\\\ */
/* List Styles in Registration Fee Section */
.registration-fee ul {
    list-style-type: decimal;
    /* Use disc bullet points */
    padding-left: 20px;
    /* Space from the left for bullets */
}

.registration-fee ul li {
    font-size: 1rem;
    /* Font size for list items */
    line-height: 1.5;
    /* Line height for readability */
    margin-bottom: 10px;
    /* Space between list items */
    color: #333;
    /* Standard text color */
}

/* Strong text inside list items */
.registration-fee ul li strong {
    color: var(--c-main);
    /* Color for strong text */
}

/* Optional: Add hover effect on list items */
.registration-fee ul li:hover {
    background-color: #f0f8ff;
    /* Light background on hover */
    border-radius: 4px;
    /* Slightly rounded corners on hover */
    transition: background-color 0.3s;
    /* Smooth transition */
}

/* Strikethrough style */
.strikethrough {
    position: relative;
    /* Position for the pseudo-element */
    display: inline-block;
    /* Allow width for the pseudo-element */
}

.strikethrough::before {
    content: "";
    /* Empty content for the line */
    position: absolute;
    /* Absolute positioning */
    left: 0;
    /* Align to the left */
    top: 50%;
    /* Center vertically */
    width: 100%;
    /* Full width */
    height: 2px;
    /* Line thickness */
    background-color: #2DAA9E;
    /* Red color for the line */
    transform: translateY(-50%);
    /* Adjust position to center */
}

/* ーーーーーーー sankareg pageーーーーーーーーーー */
/* ーーーーーーー program pageーーーーーーーーーー */
.gaiyou .program-buttons {
    display: flex;
    /* Use flexbox for alignment */
    flex-direction: column;
    /* Stack buttons vertically */
    align-items: center;
    /* Center the buttons */
    margin-top: 20px;
    /* Space above the buttons */
    text-align: center;
}

.gaiyou .program-button {
    background: var(--c-main);
    color: #ffffff;
    /* Button text color */
    border: solid 1px rgb(29,199,211);
    /* No border */
    text-decoration: none;
    padding: 15px 30px;
    /* Padding for larger buttons */
    width: 250px;
    /* Set a fixed width for buttons */
    margin: 10px 0;
    /* Space between buttons */
    border-radius: 8px;
    /* Rounded corners */
    font-size: 1.4em;
    /* Increased font size */
    font-weight: bold;
    /* Make the text bold */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    /* Subtle shadow for depth */
    transition: background-color 0.3s, transform 0.2s;
    /* Smooth transitions */
}

.gaiyou .program-button:hover {
    background-color: #ffffff;
    color: var(--c-main);
    transform: translateY(-2px);
    /* Lift effect */
}

/* Responsive Styles */
@media (max-width: 768px) {
    .program-button {
        padding: 12px 25px;
        /* Adjust padding for smaller screens */
        font-size: 1.2em;
        /* Slightly decrease font size */
        width: 80%;
        /* Use relative width on smaller screens */
    }
}


:root{
  --left-blue:#1f6d86;
  --time-bg:#cde8f2;
  --time-text:#2b7f98;
  --border:#333;
}

/* ===== table base ===== */
.program-table{
  border-collapse: collapse;
  table-layout: fixed;
  background:#fff; /* テーブル全体だけ白 */
}

/* Bootstrap .table の背景指定を無効化しつつ、罫線を統一 */
.program-table th,
.program-table td{
  border:1px solid var(--border);
  vertical-align: top;
  background-color: transparent;
}

/* ===== 左上：時間 ===== */
.left-head{
  width:110px;
  background:var(--left-blue);
  color:#fff;
  text-align:center;
  font-weight:700;
  font-size:1.1rem;
  vertical-align:middle;
}

/* ===== 左列：プログラム（縦書き・上下左右センター） ===== */
.left-program{
  background:var(--left-blue);
  color:#fff;
  font-weight:700;
  letter-spacing:.15em;
  font-size:1.1rem;

  text-align:center;
  vertical-align:middle !important;
  padding:0 !important;
}

.left-program .vtext{
  display:inline-block;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  line-height:1;
}

/* ===== 時間セル（確実に全面水色） ===== */
.program-table .time-cell{
  background-color:var(--time-bg) !important;
  color:var(--time-text) !important;
  text-align:center;
  font-weight:700;
  font-size:1.2rem;
  padding:12px 0;
}

/* ===== コンテンツ ===== */
.content{
  padding:20px;
}

.content .title{
  font-weight:800;
  font-size:1.15rem;
  margin-bottom:10px;
}

.content .sub{
  font-weight:700;
  margin-bottom:10px;
}

.content .small{
  font-size:.95rem;
}

/* 受付中央 */
.center{
  text-align:center;
  vertical-align:middle !important;
  font-weight:700;
}

/* ===== スマホ調整 ===== */
@media (max-width: 576px){
  .program-table{
    font-size:.92rem;
  }

  .program-table .time-cell{
    font-size:1.05rem;
    padding:10px 0;
  }

  .content{
    padding:14px;
  }

  .content .title{
    font-size:1.0rem;
    margin-bottom:8px;
  }

  .content .sub{
    font-size:.95rem;
    margin-bottom:8px;
  }

  .left-head{ width:86px; }
}

/* ーーーーーーー program pageーーーーーーーーーー */
/* ーーーーーーー kaijouannnai pageーーーーーーーーーー */

/* Address section */
.venue-address h3 {
    font-size: 1.5em;
    color: var(--c-main);
    margin-bottom: 20px;
    font-weight: bold;
}

.venue-address p {
    font-size: 1.2em;
    line-height: 1.8;
    color: #333;
    padding: 15px;
    transition: transform 0.3s ease-in-out;
    margin-bottom: 10px;
}

.venue-address p:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

/* Link styling in address section */
.venue-address a {
    display: inline-block;
    font-size: 1.1em;
    background: var(--c-main);
    color: #ffffff;
    border: solid 1px rgb(29,199,211);
    text-decoration: none;
    padding: 10px 15px;
    border-radius: 8px;
    transition: all 0.3s ease;
    margin-bottom: 20px;
    margin-top: 10px;
    width: 30%;
    text-align: center;
}

.venue-address a:hover {
    background-color: #ffffff;
    color: var(--c-main);
    transform: translateY(-2px);
    /* Lift effect */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Map section styling */
.venue-map {
    margin-bottom: 40px;
}

.venue-map h3 {
    font-size: 1.5em;
    color: var(--c-main);
    margin-bottom: 20px;
    font-weight: bold;
}

.map-image {
    width: 100%;
    max-width: 700px;
    height: auto;
    display: block;
    margin: 0 auto;
    border: 4px solid var(--c-main);
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.map-image:hover {
    transform: scale(1.02);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

/* Notes section styling */
.venue-notes {
    margin-bottom: 50px;
}

.venue-notes h3 {
    font-size: 1.5em;
    color: #2a5ca9;
    margin-bottom: 20px;
    font-weight: bold;
}

.venue-notes p {
    font-size: 1.2em;
    line-height: 1.8;
    margin-bottom: 20px;
    color: #333;
}

.venue-notes ul {
    list-style: none;
    padding-left: 0;
    font-size: 1.2em;
    color: #333;
}

.venue-notes li {
    background: #f7fafc;
    margin-bottom: 15px;
    padding: 10px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    position: relative;
    line-height: 1.8;
    transition: all 0.3s ease-in-out;
}

.venue-notes li:hover {
    background: #e8f5ff;
    transform: translateX(10px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

/* Responsive design */
@media (max-width: 768px) {

    .venue-address p,
    .venue-notes li {
        font-size: 1em;
    }

    .map-image {
        max-width: 100%;
    }

    .venue-address a {
    font-size: 1em;
    padding: 8px 12px;
    width: 80%; /* make it wider for visibility */
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}

/* ーーーーーーー kaijouannnai pageーーーーーーーーーー */
/* ーーーーーーー Link pageーーーーーーーーーー */
/* Link item styling */
.link-item {
    margin-bottom: 20px;
    /* Space between link items */
    font-size: 1.2em;
    /* Font size for link items */
    position: relative;
    /* Positioning for pseudo-element */
    padding: 15px;
    /* Padding for each link item */
    border-radius: 8px;
    /* Rounded corners */
    background-color: #ffffff;
    /* White background for items */
    overflow: hidden;
    /* Prevent overflow for pseudo-element */
    transition: background-color 0.3s ease, color 0.3s ease;
    /* Smooth transition for background and color */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    /* Soft shadow */
    text-align: left;
    /* Align text to the left */
    cursor: pointer;
    /* Pointer cursor on hover */
}

/* Text and link styles */
.link-item span {
    font-weight: bold;
    /* Make the company name bold */
    color: #333;
    /* Text color for the company name */
}

/* Link styling */
.link-item a {
    color: var(--c-main);
    /* Link color */
    text-decoration: none;
    /* Remove underline */
    transition: color 0.3s;
    /* Smooth color transition */
}

/* Hover effect for the link */
.link-item:hover {
    background: linear-gradient(200deg, var(--c-main), var(--c-sub));
}

.link-item:hover span {
    color: #000000;
    /* Change text color to a specific color (gold) on hover */
}

.link-item:hover a {
    color: #ffffff;
    /* Change link color to a specific color (gold) on hover */
}

/* Responsive design */
@media (max-width: 768px) {
    .greeting-title {
        font-size: 2em;
        /* Adjust title size for smaller screens */
    }

    .link-item {
        font-size: 1em;
        /* Adjust font size for link items */
    }
}


/* ーーーーーーー Link pageーーーーーーーーーー */
/* Button styling */
.program-button {
    display: inline-block;
    /* Inline block for button */
    padding: 15px 25px;
    /* Padding for button */
    margin: 20px auto;
    /* Center margin for button */
    font-size: 1.3em;
    /* Font size for button */
    background-color: #007BFF;
    /* Button color */
    color: white;
    /* Text color */
    text-decoration: none;
    /* Remove underline */
    border-radius: 5px;
    /* Rounded corners */
    text-align: center;
    /* Center align text */
    transition: background-color 0.3s;
    /* Smooth transition */
    box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3);
    /* Button shadow */
}

/* Button hover effect */
.program-button:hover {
    background-color: #ffffff;
    /* Darker shade on hover */
    color: #007BFF;
}

/* Center the button */
.kekka {
    display: flex;
    /* Use flexbox */
    justify-content: center;
    /* Center the button horizontally */
    align-items: center;
    /* Center the button vertically */
}


/* Notice section styling */
.notice {
    margin: 20px 0;
    /* Margin for notice */
    padding: 20px;
    /* Padding for notice */
    background-color: #ffffff;
    /* White background */
    border-radius: 8px;
    /* Rounded corners */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    /* Enhanced shadow for depth */
}

.endai-sec2 h3 {
    color: var(--c-main);
    /* Professional blue color */
    margin: 0;
    /* Remove default margin */
    font-size: 1.6rem;
    /* Font size for the title */
}

/* Section styling */
.endai-sec1,
.endai-sec2 {
    margin: 20px 0;
    /* Margin for sections */
    padding: 20px;
    /* Padding for sections */
    background-color: #ffffff;
    /* White background */
    border-radius: 8px;
    /* Rounded corners */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    /* Enhanced shadow for depth */
}

/* Table styling */
.category-table {
    width: 100%;
    /* Full width */
    border-collapse: collapse;
    /* Collapse borders */
    margin-top: 10px;
    /* Margin above table */
}

.category-table th,
.category-table td {
    padding: 10px;
    /* Padding for cells */
    text-align: left;
    /* Align text to left */
    border: 1px solid #ddd;
    /* Border for cells */
}

.category-table th {
    background-color: #007BFF;
    /* Header background color */
    color: white;
    /* Header text color */
}

/* Responsive design */
@media (max-width: 768px) {
    .program-button {
        font-size: 1em;
        /* Adjust button font size */
        padding: 10px 15px;
        /* Adjust padding */
    }

    .notice,
    .endai-sec1,
    .endai-sec2 {
        padding: 15px;
        /* Adjust padding for sections */
    }

    .category-table th,
    .category-table td {
        font-size: 0.9em;
        /* Adjust font size for table cells */
        padding: 8px;
        /* Adjust padding for table cells */
    }
}


/* Responsive styles */
@media (max-width: 768px) {
    .greek-table {
        display: block;
        /* Allow block display for the table */
        overflow-x: auto;
        /* Enable horizontal scrolling */
        white-space: nowrap;
        /* Prevent line breaks */
    }

    .greek-table th,
    .greek-table td {
        display: block;
        /* Change to block layout */
        text-align: left;
        /* Align text to the left for better readability */
    }

    .greek-table tr {
        display: flex;
        /* Use flexbox for row items */
        flex-direction: column;
        /* Stack items vertically */
        margin-bottom: 15px;
        /* Space between rows */
    }

    .greek-table th {
        position: relative;
        /* Position relative for label */
        padding-left: 50%;
        /* Space for label */
    }

    .greek-table th::before {
        position: absolute;
        /* Position label before header */
        left: 10px;
        /* Adjust position */
        white-space: nowrap;
        /* Prevent line breaks */
        font-weight: bold;
        /* Make bold */
    }

    /* Apply alternating background for odd rows */
    .greek-table tr:nth-child(odd) {
        background-color: #f9f9f9;
        /* Light gray for odd rows */
    }
}

.endai-sec2 .houhou {
    list-style-type: none;
    /* Remove default bullet points */
    padding: 0;
    /* Remove default padding */
    margin: 20px 0;
    /* Add margin above and below the list */
/*    font-family: Arial, sans-serif;*/
    /* Clean sans-serif font */
    display: flex;
    /* Flexbox for responsive layout */
    flex-direction: column;
    /* Column layout for the list items */
}

.endai-sec2 .houhou li {
    list-style-type: circle;
    background-color: #ffffff;
    /* Light gray background for list items */
    border: 1px solid #ffffff;
    /* Light border around items */
    border-radius: 5px;
    /* Rounded corners */
    padding: 5px;
    /* Padding inside list items */
    margin-bottom: 10px;
    /* Space between items */
    transition: background-color 0.3s, transform 0.2s;
    /* Smooth transitions */
}

/* Hover effect */
.endai-sec2 .houhou li:hover {
    background-color: #007bff;
    /* Change background color on hover */
    color: white;
    /* Change text color to white */
    transform: scale(1.02);
    /* Slightly enlarge on hover */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .houhou {
        flex-direction: column;
        /* Stack items vertically on smaller screens */
    }

    .houhou li {
        font-size: 16px;
        /* Adjust font size for readability */
        padding: 12px;
        /* Adjust padding */
    }
}

@media (max-width: 480px) {
    .houhou li {
        font-size: 14px;
        /* Smaller text for mobile */
        padding: 10px;
        /* Further adjust padding */
        margin-bottom: 8px;
        /* Reduce spacing between items */
    }
}

.styled-table {
    width: 100%;
    /* Full width */
    border-collapse: collapse;
    /* Collapse borders */
    margin: 20px 0;
    /* Margin above and below the table */
}

.styled-table th,
.styled-table td {
    border: 1px solid #ddd;
    /* Light gray border */
    padding: 12px;
    /* Padding inside cells */
    text-align: center;
    /* Center text */
}

.styled-table th {
    background-color: #007BFF;
    /* Header background color */
    color: white;
    /* Header text color */
}

.styled-table tr:nth-child(even) {
    background-color: #f2f2f2;
    /* Light gray for even rows */
}

.styled-table tr:hover {
    background-color: #ddd;
    /* Darker gray on hover */
}

/* Responsive design */
@media (max-width: 768px) {
    .styled-table {
        display: block;
        /* Allow block display for the table */
        overflow-x: auto;
        /* Enable horizontal scrolling */
        white-space: nowrap;
        /* Prevent line breaks */
    }

    .styled-table th,
    .styled-table td {
        display: block;
        /* Change to block layout */
        text-align: left;
        /* Align text to the left for better readability */
    }

    .styled-table tr {
        display: flex;
        /* Use flexbox for row items */
        flex-direction: column;
        /* Stack items vertically */
        margin-bottom: 15px;
        /* Space between rows */
    }

    .styled-table th {
        position: relative;
        /* Position relative for label */
        padding-left: 50%;
        /* Space for label */
    }

    .styled-table th::before {
        position: absolute;
        /* Position label before header */
        left: 10px;
        /* Adjust position */
        white-space: nowrap;
        /* Prevent line breaks */
        font-weight: bold;
        /* Make bold */
    }

    /* Apply alternating background for odd rows */
    .styled-table tr:nth-child(odd) {
        background-color: #f9f9f9;
        /* Light gray for odd rows */
    }
}

.endai-button1,
.endai-button2 {
    display: inline-block;
    /* Inline block for button */
    padding: 15px 25px;
    /* Padding for button */
    font-size: 1.2em;
    /* Font size for button */
    background: var(--c-main);
    color: #ffffff;
    /* Button text color */
    border: solid 1px rgb(29,199,211);
    /* No border */
    text-decoration: none;
    border-radius: 5px;
    /* Rounded corners */
    text-align: center;
    /* Center align text */
    transition: background-color 0.3s;
    /* Smooth transition */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    /* Button shadow */
    margin-bottom: 15px;
}

/* Hover effect */
.endai-button1:hover,
.endai-button2:hover {
    background-color: #ffffff;
    color: var(--c-main);
    transform: translateY(-2px);
    /* Lift effect */
}

/* ーーーーーーー endai Page ーーーーーーーーーー */

/* sponsor page  */

.greet01 {
  background: #fff;
  padding: 30px;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  color: #333;
}

.greet01 p {
  margin-bottom: 1.5em;
  font-size: 1.05rem;
}

.nmbr .midashi1 {
  font-weight: bold;
  font-size: 1.3rem;
  margin: 20px 0 10px;
}

/* --- BUTTON --- */
.dnbt {
  display: inline-block;
  padding: 15px 25px;
  font-size: 1.2rem;
  background: #E8EEAE;
  color: #000000;
  border: solid 1px #CCDB2A;
  border-radius: 5px;
  text-align: center;
  transition: all 0.3s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  margin-top: 10px;
  font-weight:600;
  
}

.dnbt a {
  color: #000000;
  text-decoration: none;
  display: block;
}

.button-wrap {
  display: flex;
  justify-content: left;
  margin-top: 20px;
}
/* --- List --- */
.nmbr {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.nmbr > li {
  margin-bottom: 30px;
}

/* --- Table Container --- */
.infotab {
  margin-top: 25px;
}

.infotab > p {
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 10px;
  color: var(--c-main);
}

/* --- Tables --- */
.sptab {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  /* table-layout: fixed; */
}

.sptab th,
.sptab td {
  border: 1px solid #ccc;
  padding: 12px 10px;
  text-align: center;
  /* overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; */
}

.sptab th {
  background-color: #fef0f4;
  color: var(--c-main);
  font-weight: 600;
}

.sptab td {
  background-color: #fff;
}

/* --- Contact Heading --- */
.midashi {
  display: inline-block;
  margin-top: 20px;
  font-weight: bold;
  font-size: 1.05rem;
  color: #2a2a2a;
}

/* ========== RESPONSIVE BREAKPOINTS ========== */
@media (max-width: 1024px) {
  main.gaiyou {
    padding: 30px 16px;
  }
}

@media (max-width: 768px) {
  .greeting-title {
    font-size: 1.8rem;
  }

  .dnbt {
    width: 100%;
    padding: 12px;
  }

  .sptab th,
  .sptab td {
    font-size: 0.85rem;
    padding: 10px 6px;
  }
}

@media (max-width: 480px) {
  .greet01 {
    padding: 20px;
  }

  .greeting-title {
    font-size: 1.5rem;
  }

  .sptab {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}
/* sponsor page  */


/* ------- index page koen gakkai ------- */
 .supporting-societies {
    margin: 40px 0;
    padding: 25px;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.supporting-societies h3 {
    font-size: 2em;
    margin-bottom: 20px;
    color: var(--c-main);
    border-bottom: 3px solid var(--c-main);
    padding-bottom: 8px;
/*    font-family: 'Arial', sans-serif;*/
}

.support-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.support-card {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 18px 20px;
    background: #e5f9fc;
    border-color: var(--c-main);
    color: var(--c-main);
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.1em;
    transition: 0.3s ease-in-out;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
}

.support-card:hover {
	background: #fdfdfd;
    transform: translateY(-4px);
    box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
    border: 1px solid #f3b3c9;
/*    border-color: var(--c-main);*/
    color: #F70C86;
}

@media (max-width: 1024px) {
    .support-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .support-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .support-card {
        font-size: 1em;
        padding: 15px;
    }
} 

/* Bootstrap隔離用 */
.bs * {
  box-sizing: border-box;
}

.nav li.disabled > a {
  pointer-events: none;   /* クリック無効 */
  opacity: 0.5;           /* 未公開感 */
  cursor: not-allowed;
}

.nav li.disabled > a:hover {
  background: none;
  transform: none;
  box-shadow: none;
}

/*参加登録*/
:root{--accent:#1A6FA8;--divider:#dcdcdc;}
/* dl全体 */ .jrsc-dl{margin:0;}
/* 見出し(dt) */ .jrsc-dl dt{margin:0;padding-top:1.4rem;padding-bottom:0;font-weight:700;color:var(--accent);position:relative;}
/* dt上の境界線（最初以外） */ .jrsc-dl dt::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:var(--divider);}
/* 最初のdtだけ線なし */ .jrsc-dl dt:first-of-type::before{display:none;}
/* 見出しサイズ */ .jrsc-dl dt.txtB{font-size:1.25rem;}
/* 本文(dd) */ .jrsc-dl dd{margin:0 0 1.6rem;padding:0;line-height:1.85;border:none;}
/* リスト */ .jrsc-dl dd ul,.jrsc-dl dd ol{margin:.4rem 0 .9rem 1.2rem;padding:0;}
/* リスト項目 */ .jrsc-dl dd li{margin-bottom:.55rem;}
/* 注意書き */ .jrsc-note{margin:1rem 0;padding:.75rem 0;font-size:.95rem;}
/* 問い合わせ先 */ .jrsc-contact{margin-top:1rem;line-height:1.7;}
@media (min-width:992px){.jrsc-dl /*dt{margin-top:2.6rem;}*/.jrsc-dl dt.txtB{font-size:1.3rem;}.jrsc-dl dd{max-width:920px;}}
	
:root{
--cta1:rgba(13,202,240,.95);      /* info メイン */
--cta2:rgba(49,210,242,.95);     /* info 明 */
--ctadk1:rgba(11,172,204,.98);   /* hover 濃 */
--ctadk2:rgba(33,185,224,.98);   /* hover 明 */
--ctaborder:rgba(255,255,255,.65);
--ctashadow:rgba(0,90,120,.28);
--ctablur:blur(4px);
}


/* CTAボタンの並び：スマホ縦、PC横（最大3つ想定） */ 
.cta-actions{display:grid;grid-template-columns:1fr;gap:1rem;justify-items:center;}
@media (min-width:576px){.cta-actions{display:flex;justify-content:center;gap:1.2rem;}}
@media (min-width:576px){.cta-actions>.cta-btn{min-width:18rem;}}

/* 共通CTAボタン（bootstrapのbtn見た目を上書き） */ .cta-btn{display:inline-flex;align-items:center;justify-content:center;text-align: center; text-decoration:none;cursor:pointer;font-weight:700;letter-spacing:.02em;padding:.85rem 1.1rem;border-radius:8px;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease;backdrop-filter:var(--ctablur);-webkit-backdrop-filter:var(--ctablur);box-shadow:0 10px 26px var(--ctashadow);}

/* 主要ボタン（濃いブルーのグラデ） */ .cta-btn--primary{color:#fff;border:1px solid var(--ctaborder);background:linear-gradient(160deg,var(--cta1),var(--cta2));}
.cta-btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,40,140,.28);background:linear-gradient(160deg,var(--ctadk1),var(--ctadk2));}

/* サブボタン（ガラスっぽい薄色＋青文字） */ .cta-btn--ghost{color:#0f3f8a;border:1px solid rgba(30,90,180,.28);background:linear-gradient(160deg,rgba(255,255,255,.78),rgba(235,245,255,.72));}
.cta-btn--ghost:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,40,140,.20);border-color:rgba(30,90,180,.38);background:linear-gradient(160deg,rgba(255,255,255,.86),rgba(225,240,255,.80));}

/* スマホは全幅で押しやすく */ @media (max-width:575px){.cta-actions > .cta-btn{width:100%;}}

/* bootstrapの.btnを使う場合でも見た目を上書きしたい時（保険） */ .cta-actions .btn{border-radius:8px;box-shadow:0 10px 26px var(--ctashadow);backdrop-filter:var(--ctablur);-webkit-backdrop-filter:var(--ctablur);}

.fee-cols{display:block;}
@media (min-width:992px){.fee-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:3rem;align-items:start;}}
.fee-col{min-width:0;}
.fee-major{margin:1.1rem 0 .35rem;font-weight:700;}
.fee-minor{margin:.55rem 0 .2rem;font-weight:600;}
.fee-list{margin-left:1.2rem;}
.fee-row{display:flex;justify-content:space-between;gap:1rem;max-width:420px;line-height:1.7;}
.fee-row span:last-child{font-weight:700;white-space:nowrap;}
.fee-note{margin:.8rem 0 0;font-size:.9rem;line-height:1.6;}
@media (min-width:992px){.fee-major{font-weight:800;}}
@media (min-width:992px){.fee-cols .fee-col:last-child{padding-left:1rem;}}
.fee-row span:last-child{position:relative;font-variant-numeric:tabular-nums;}
.fee-row span:last-child::after{content:"円";color:#888;font-weight:400;margin-left:.1em;}

.heading-1 {
    padding: .5em .7em;
    border-left: 5px solid #8aa6db;
    color: #333333;
	font-size:calc(1.1rem + .4vw);
}
.jrsc-inner{
  width: 100%;
  margin: 0;
  padding: 0;
}

.jrsc-dl{
  width: 100%;
}

.jrsc-dl dt{
  display: block;
  width: 100%;
}

.greeting-title{
  display: block;
  width: 100%;
}

.speaker-unit .speaker-photo {
  width: 130px;
  height: 150px;
  overflow: hidden;
  border-radius: 60px / 75px; /* 縦長楕円 */
  flex-shrink: 0;
}

.speaker-unit .speaker-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 12%; /* 少し上寄せ */
}

.speaker-unit .speaker-text {
  font-size: 1.1rem;
  line-height: 1.5;
}

.program-tabs{display:flex;justify-content:center;gap:12px;margin:30px 0;}
.tab-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-decoration:none;padding:10px 14px;min-height:60px;width:240px;font-size:0.95rem;line-height:1.35;font-weight:600;border-radius:6px;border:1px solid #d0d7e2;color:var(--c-dark);background:#ffffff;transition:all .25s ease;}
.tab-btn .tab-sub{display:block;font-size:0.85em;line-height:1.3;margin-top:2px;}
.tab-btn:hover{background:#f3f6fb;transform:translateY(-2px);}
.tab-primary{background:var(--c-main);color:#fff;border:1px solid var(--c-main);}
.tab-primary:hover{background:#155e91;border-color:#155e91;}
@media (max-width:768px){.program-tabs{flex-direction:column;align-items:center;} .tab-btn{width:100%;max-width:420px;font-size:1rem;min-height:70px;}}

h4.csttl{color:#4aa3d9;font-size:1em;}

.link-button-disabled {
  pointer-events: none;   /* クリック不可 */
  opacity: 0.5;           /* 全体を薄く */
  cursor: not-allowed;
  color: #888;
  background-color: #ddd;
  border-color: #ccc;
  text-decoration: none;
}