body{
font-family: Arial;
background:#eef3fb;
margin:0;
}

header{
background:#ffb347;
padding:20px;
text-align:center;
font-size:26px;
font-weight:bold;
}

.container{
max-width:1100px;
margin:auto;
padding:20px;
}

.box{
background:white;
padding:20px;
margin:20px 0;
border-radius:12px;
box-shadow:0 4px 8px rgba(0,0,0,0.1);
position: relative;
}
/* word */
.word{
background:#fff3a5;
padding:2px 6px;
border-radius:8px;
margin:8px 0;
cursor:pointer;
font-size: 18px;
}
.word-close{
position:absolute;
top:8px;
right:10px;
cursor:pointer;
font-size:22px;
font-weight:bold;
color: red;
}
.word:hover{
background:#ffd84d;
}
/* end word */

button{
background:#ffd84d;
border:none;
padding:10px 15px;
border-radius:8px;
cursor:pointer;
margin-top:10px;
font-size:16px;
}

button:hover{
background:#ffc107;
}




.back{
margin-top:30px;
display:inline-block;
text-decoration:none;
background:#7ed957;
padding:10px 15px;
border-radius:8px;
color:black;
}

.rule{
background:#dff3ff;
padding:20px;
border-left:6px solid #3aa6d0;
border-radius:10px;
margin:20px 30px;
position: relative;
font-size: 19px;
font-weight: 600;
}
.rule-title{
    font-size: 24px;
    color: #e76515;
}

/*  */

div{
    margin-bottom: 10px;
    margin-top: 20px;
}

ul>li,
ol>li{
    font-size: 19px;
    line-height: 1.3;
    margin-bottom: 10px;
}


.text{
    font-family: 19px;
    line-height: 1.6;
    padding: 20px;
    width: 90%;
    margin: 0 auto;
}


.zadanie{
    color: rgb(193, 3, 104);;
    font-size: 22px;
    margin: 20px 5px;
    line-height: 1.3;
}

.blockSzary{
    background-color: rgb(216, 215, 215);
    padding: 8px;
    border-radius: 10px;
    width: 90%;
    margin: 0 auto;
    
}
.blockSzary>p{
    font-size: 20px;
    line-height: 1.4;
}

.column{
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
}





/* emotion */
.emotion p{
font-size:20px;
margin:10px 0;
}

.emotion em{
color:#444;
font-style:italic;
margin-left:5px;
}
.emotions-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
}

.emotion{
background:#efe3a3;
padding:15px;
border-radius:12px;
margin:3px 0;
box-shadow:0 2px 6px rgba(0,0,0,0.1);
font-size: 20px;
/* text-align: center; */
line-height: 1.5;
font-family:Georgia, 'Times New Roman', Times, serif;
}


.emotion h3{
color:#1e40ff;
margin-bottom:5px;
}

.emotion h3 span{
color:#333;
font-weight:normal;
}

.emotion b{
font-size:20px;
color:#1e40ff;
}
/* end emotion */



.two{
    display: flex;
    padding: 1% 2%;
    width: 100%;
    margin: 0 auto;
    gap: 10px;
    justify-content: space-around;
    margin-left: -15px;
    width: 100%;
}
.two>div{
    width: 100%;
}

.two>img{
width: 50%;
}
.image{
    width: 100%;
    margin: 0 auto;
}
.image>img{
    width: 100%;
    margin: 0 auto;
    border-radius: 15px;
}

.video{
    width: 90%;
    height: auto;
    margin: 0 auto;
}
.video> iframe{
    width: 100%;
    margin: 0 auto;
}
.pdf{
    width: 90%;
    margin: 0 auto;
}
.pdf> iframe{
    width: 100%;
    margin: 0 auto;
}

/* ul */

ul{
    font-size: 18px;
}

/* интерактивная карта слов */
.word-map{
display:flex;
gap:15px;
flex-wrap:wrap;
margin-top:15px;
}

.word-map span{
background:#fff3a5;
padding:10px 15px;
border-radius:8px;
cursor:pointer;
font-size:18px;
}

.word-map span:hover{
background:#ffd84d;
}

/* окно для показа перевода */
#word-info{
position:fixed;
top:20px;
right:20px;
width:260px;
background:white;
border:3px solid #ffd84d;
border-radius:10px;
padding:20px;
box-shadow:0 6px 15px rgba(0,0,0,0.2);
font-size:18px;
z-index:9999;
display:none;
}

/* МодалОкно */
.vocab-word{
background:#fff3a5;
padding:10px 15px;
border-radius:8px;
cursor:pointer;
font-size:18px;
}

.vocab-word:hover{
background:#ffd84d;
}

#vocab-modal{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.4);
display:none;
justify-content:center;
align-items:center;
z-index:9999;
}

.modal-box{
background:white;
padding:25px;
border-radius:12px;
max-width:400px;
box-shadow:0 8px 20px rgba(0,0,0,0.3);
position:relative;
}

.modal-close{
position:absolute;
top:10px;
right:15px;
font-size:22px;
cursor:pointer;
}
.vocab-data{
display:none;
}

.slowo{
    width: 300px;
}
.simwol{
    width: 300px;
    margin: 0 auto;
}

/* mapa */
.map-container{
position:relative;
max-width:700px;
margin:auto;
}

.map-image{
width:100%;
display:block;
}
.city-data{
    width:100%;
    display:none;
}

.map-point{
position:absolute;
width:12px;
height:12px;
background:red;
border-radius:50%;
border:2px solid white;
cursor:pointer;
box-shadow:0 0 4px black;
}

.map-point:hover{
transform:scale(1.3);
}

/*  */
.line_1{
    width: 25px;
    font-size: 20px;
    text-align: center;
}

.icons{
    width: 30px;
}
.icon{
    width: 80px;
    margin-bottom: -20px;
}
/* video */
.video {
    width: 100%;
    height: 36em;
    display: flex;
    justify-content: center;
    padding: 5px;
    margin: 2% auto;
}
.flex{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/*  */
.page-image-wrapper{
    max-width: 600px;
}
.page-image-wrapper img{
    width: 100%;
}
.wiersz{
    width: 300px;
    margin: 0 auto;
}
.left{
    margin-left: 20px;
    margin-top: 15px;
    width: 400px;
}
.right{
    margin-left: 150px;
    margin-top: 15px;
    width: 300px;

}

.knopki{
    display: flex;
    justify-content: space-around;
}
/* blok s hwostikom */
.bubble {
    position: relative;
    background: #f5f5f5;
    border: 1px solid #0b82dd;
    border-radius: 12px;
    padding: 20px;
    width: 300px;
    font-size: 18px;
    margin: 10px;
    width: 28%;
}
.bubble::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50px;

    width: 20px;
    height: 20px;
    background: #f5f5f5;

    border-left: 1px solid #0b82dd;
    border-bottom: 1px solid #0b82dd;

    transform: rotate(-45deg);
}
/* end blok s hwostikom */
/* box s foto + name */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    pointer-events: none;
    transition: 0.3s;
}

body.modal-open::after {
    opacity: 1;
    pointer-events: all;
}
/* GRID */
.cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
    cursor: pointer;
    overflow: visible;
}

/* CARD */
.card {
    perspective: 1000px;
    height: 340px;
}

/* INNER */
.card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.6s ease;
    transform-style: preserve-3d;
}

/* FLIP */
.card.active .card-inner {
    transform: rotateY(180deg);
    z-index: 999;
    position: relative;
}
.card.active {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 320px;
    height: 400px;
    z-index: 9999;
}

/* SIDES */
.card-front,
.card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    backface-visibility: hidden;
    box-shadow: 0 6px 15px rgba(0,0,0,0.1);
    z-index: 1000;
    position: absolute;
}

/* FRONT */
.card-front img {
    width: 100%;
    height: 270px;
    object-fit: cover;
}

.name {
    background: linear-gradient(135deg, #2c9ccf, #3db3d6);
    color: #fff;
    text-align: center;
    padding: 15px;
    font-weight: bold;
    font-size: 18px;
}

/* BACK */
.card-back {
    background: #2c9ccf;
    color: white;
    /* display: flex;
    align-items: center;
    justify-content: center; */
    text-align: center;
    padding: 20px;
    transform: rotateY(180deg);
    font-size: 16px;
    line-height: 1.4;
   
}

/* ADAPTIVE */
@media (max-width: 900px) {
    .cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 500px) {
    .cards {
        grid-template-columns: 1fr;
    }
}
/* end box s foto + name */

.borderColorBlue{
    background-color: #2c9ccf;
    padding: 5px;
    color: rgb(244, 242, 239);
    
}
.borderColorBlue h6{
    color: rgb(243, 235, 219);
    font-size: 20px;
    margin: 10px;
    margin-bottom: 20px;
}

.audio{
    display: flex;
    margin-left: 20px;
    height: 30px;
}

/*  */
hr{
    width: 90%;
    margin: 2% auto;
}

/* печатался только выбранный блок */

@media print {
  body * {
    visibility: hidden;
  }

  .printable, .printable * {
    visibility: visible;
  }

  .printable {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 5px; /* чтобы не прилипало к краю */
  }
}

/* end печатался только выбранный блок */

.option {
  padding: 8px;
  margin: 5px 0;
  border: 1px solid #ccc;
  cursor: pointer;
}

.option.selected {
  background-color: #d0e7ff;
}

.option.correct {
  background-color: #b8f5b8;
}

.option.wrong {
  background-color: #ffb8b8;
}