* {
    font-family: "Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","メイリオ","Meiryo","ＭＳ Ｐゴシック",sans-serif;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #dfdfef;
}


.logo {
    max-height: 128px;
    max-width: calc(100% - 32px);
    height: auto;
    width: auto;
}

.header {
    padding-top: 16px;
    width: 100%;
    height: 128px;
    color: white;
    font-size: 200%;
    font-weight: bold;
    text-shadow: 0px 0px 16px black;
    display: flex;
    padding-left: 24px;
    padding-right: 24px;
    align-items: center;
    justify-content: space-between;
}

.link-button {
    padding: 16px;
    background: white;
    color: #181750;
    text-shadow: none;
    border-radius: 16px;
    margin-left: 16px;
    text-decoration: none;
    font-size: 150%;
    font-weight: bold;
    transition: background 0.5s, color 0.5s;
    white-space: nowrap;
    display: inline-block;
    margin: 8px;
}

.mail-button {
    padding: 16px;
    background: #181750;
    color: white;
    text-shadow: none;
    border-radius: 16px;
    margin-left: 16px;
    text-decoration: none;
    font-size: 130%;
    font-weight: bold;
    transition: background 0.5s, color 0.5s;
    white-space: nowrap;
    display: inline-block;
    margin: 8px;
}

.mail-button:hover {
    background: white;
    color: #181750;
}

.header span span {
    display: inline-block;
    white-space: nowrap;
}

.container {
    max-width: min(calc(100% - 32px), 1080px);
    margin-left: auto;
    margin-right: auto;
    margin-top: 32px;
    color: white;
}

.container h1 {
    font-size: 400%;
    text-shadow: 0px 0px 16px black;
}
.container h2 {
    font-size: 300%;
    text-shadow: 0px 0px 16px black;
}
.container h3 {
    font-size: 200%;
    font-weight: normal;
    text-shadow: 0px 0px 16px black;
}
.container .white-transparent {
    background-color:rgba(255,255,255,0.75);
    padding: 32px;
    width: 100%;
    color: black;
}

.container span.bordered {
    border: 1px solid black;
    padding: 0 8px;
}

.grid1 {
    display: grid;
    grid-template-areas: "date date info"
                         "null null info"
                         "time time info";
}

.grid2 {
    display: grid;
    grid-template-areas: "t t"
                         "a b"
                         "c d"
}

.speaker {
    margin: 16px;
    display: flex;
}

.speaker img {
    grid-area: image;
    max-width: 200px;
}

.speaker div {
    margin-top: 16px;
    margin-left: 32px;
    font-weight: bold;
}

.speaker div p:first-child{
    font-size: 150%;
}

.schedule td {
    padding: 16px;
    font-weight: bold;
    vertical-align: top;
}

.schedule ol {
    margin-left: 1.5em;
    font-size: 120%;
}

.schedule .large {
    font-size: 180%;
}

.schedule .middle {
    font-size: 150%;
}

.schedule .small {
    font-size: 120%;
}

.section .label {
    font-size: 120%;
    font-weight: bold;
    display: flex;
    justify-content: space-between;
}

.section .label .required{
    display: inline-block;
    border-radius: 16px;
    padding: 0px 4px;
    border: 1px solid #A21056;
    margin-bottom: 4px;
    color:#A21056;
    font-size: 14px;
}

.section {
    width: 100%;
    display: inline-block;
}

.section.name {
    width: 40%;
}

.section input[type=text], .section input[type=tel], .section select {
    font-size: 16px;
    width: 100%;
    padding: 8px;
    border-radius: 8px;
    color: #181750;
    border: 2px solid #181750;
}

.container button {
    background: #181750;
    padding: 8px 16px;
    border-radius: 16px;
    color: white;
    font-size: 150%;
    font-weight: bold;
    margin: 32px;
}
.container input[type=submit]:hover {
    background: white;
    color: #181750;
}

.footer {
    
    background: #181750;
    color: #dfdfef;
    font-weight: bold;
}

.footer-inside {
    max-width: min(100%, 1080px);
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: space-between;
}

.footer-inside div {
    padding: 32px;
    width: 100%;
}

@media screen and (max-width: 900px) {

    .section {
        margin: 16px;
        width: calc(100% - 32px);
    }
    
    .section.name {
        margin: 16px;
        width: calc(50% - 35px);
    }
    .container .white-transparent {
        padding: 16px 8px;
    }
    .schedule td {
        padding: 8px;
    }
    .schedule ol {
        font-size: 110%;
    }
    
    .schedule .large {
        font-size: 130%;
    }
    
    .schedule .middle {
        font-size: 120%;
    }
    
    .schedule .small {
        font-size: 110%;
    }
    .speaker {
        flex-flow: column;
        align-items: center;
    }
    .grid1 {
        display: flex;
        flex-flow: column;
        align-items: center;
    }
    .grid2 {
        grid-template-areas: "t"
                             "a"
                             "b"
                             "c"
                             "d";
    }
    .null {
        display: none;
    }
    .info div{
        margin-bottom: 16px;
    }
    .speaker div {
        margin-top: 16px;
        margin-left: 0;
        text-align: center;
    }
    .sp-smaller {
        font-size: 60%;
    }
    .bordered::after {
        content: "\A" ;
        white-space: pre ;
    }
}

@media screen and (max-width: 700px) {
    .header {
        height: 96px;
    }
    .logo {
        height: 96px;
    }
    .header a {
        height: 96px;
        padding: 24px;
        font-size: 40px;
    }
    .container h1 {
        font-size: 300%;
    }
    .container h2 {
        font-size: 200%;
    }
    .container h3 {
        font-size: 150%;
    }
}

@media screen and (max-width: 500px) {
    .header {
        height: 72px;
    }
    .logo {
        height: 72px;
    }
    .header a {
        height: 72px;
        padding: 16px;
        font-size: 32px;
    }
    .container h1 {
        font-size: 190%;
    }
    .container h2 {
        font-size: 150%;
    }
    .container h3 {
        font-size: 110%;
    }
}

@media screen and (max-width: 400px) {
    .header {
        height: 64px;
    }
    .logo {
        height: 64px;
    }
    .header a {
        height: 64px;
        padding: 10px;
        font-size: 32px;
    }
}

@media screen and (max-width: 350px) {
    .header {
        height: 48px;
    }
    .logo {
        height: 48px;
    }
    .header a {
        height: 48px;
        padding: 8px;
        font-size: 24px;
    }
}
