
/* Additional styles for the festival section and the student-practice page only. */
.festival-photo-block{margin:30px 0 38px;padding:24px;background:#fbf6ee;border:1px solid #e9dac8;border-radius:10px}
.festival-photo-heading{margin:0 0 18px}
.festival-photo-heading .chapter-kicker{margin:0 0 4px}
.festival-photo-heading h3{font:700 1.55rem/1.25 var(--serif);color:var(--red);margin:0 0 7px}
.festival-photo-heading p{margin:0;color:#6d5b4b}
.festival-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.festival-photo-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}
.festival-photo-grid figure,.student-photo-grid figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px rgba(50,28,15,.06)}
.festival-photo-grid figure button,.student-photo-grid figure button{display:block;width:100%;border:0;padding:0;background:#eee;cursor:zoom-in;overflow:hidden}
.festival-photo-grid img{width:100%;height:245px;object-fit:cover;transition:transform .4s}
.festival-photo-grid button:hover img,.student-photo-grid button:hover img{transform:scale(1.035)}
.festival-photo-grid figcaption,.student-photo-grid figcaption{padding:13px 15px 16px;min-height:92px;color:#6d5b4b;font-size:.92rem}
.festival-photo-grid figcaption strong,.student-photo-grid figcaption strong{display:block;color:var(--red);font-size:1.02rem;margin-bottom:3px}
.ceremony-photo-block{margin-top:26px}
.festival-games-block{margin:28px 0 40px}
.festival-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.festival-activity-card{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden;box-shadow:0 6px 20px rgba(50,28,15,.06)}
.activity-photo{display:block;width:100%;height:190px;border:0;padding:0;background:#eee;cursor:zoom-in;overflow:hidden}
.activity-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.activity-photo:hover img{transform:scale(1.04)}
.activity-art{height:190px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,#f7ecda,#e8d4b6)}
.activity-art:after{content:"";position:absolute;inset:12px;border:1px solid rgba(143,41,38,.25);border-radius:5px}
.toss-target{position:absolute;width:76px;height:76px;border:7px solid #8f2926;border-radius:50%;top:34px;right:calc(50% - 76px);box-shadow:inset 0 0 0 5px #d99a25,0 4px 0 rgba(55,30,20,.12)}
.toss-target:before{content:"";position:absolute;width:7px;height:104px;background:#8f2926;left:27px;top:62px}
.toss-ball{position:absolute;width:30px;height:30px;border-radius:50%;background:#c0392b;border:4px solid #f2c66d;left:calc(50% - 58px);top:95px;box-shadow:0 5px 10px rgba(40,20,10,.16)}
.toss-tail{position:absolute;left:calc(50% - 54px);top:125px;width:24px;height:38px;border-left:3px solid #a22d27;border-right:3px solid #d99a25;transform:skew(-8deg)}
.martial-art{flex-direction:column;gap:3px;color:#8f2926}
.martial-art span{font-size:5.2rem;line-height:1.1;filter:drop-shadow(0 5px 4px rgba(50,28,15,.14))}
.martial-art small{font-size:.72rem;letter-spacing:.22em;font-weight:800;color:#76503b}
.activity-copy{padding:15px 16px 17px}
.activity-copy h4{font:700 1.13rem var(--serif);color:var(--red);margin:0 0 6px}
.activity-copy p{margin:0 0 9px;color:#655344;font-size:.9rem;line-height:1.7}
.activity-note{display:inline-block;padding:3px 8px;border-radius:20px;background:#f6eee4;color:#8b6a43;font-size:.73rem;font-weight:700}
.student-page-teaser{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:30px 0 0;padding:23px 25px;background:#f7eee3;border:1px solid #e7d8c7;border-left:4px solid var(--gold);border-radius:8px}
.student-page-teaser h3{font:700 1.55rem/1.25 var(--serif);color:var(--red);margin:6px 0}
.student-page-teaser p{margin:0;color:#655344;max-width:680px}
.student-page-teaser .button{white-space:nowrap;flex-shrink:0}
.student-book-layout .toc a{line-height:1.45}
.student-content .chapter-kicker{margin-top:42px}
.student-content .chapter-kicker:first-child{margin-top:0}
.student-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:22px 0 35px}
.student-photo-grid img{width:100%;height:265px;object-fit:cover;transition:transform .4s}
.flag-photo-grid img{height:290px}
.community-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.student-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 30px}
.student-task-grid article{position:relative;padding:20px 20px 18px 66px;background:#fff;border:1px solid var(--line);border-radius:8px}
.task-number{position:absolute;left:18px;top:18px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f5e7d3;color:var(--red);font-weight:800}
.student-task-grid h3{font:700 1.18rem var(--serif);color:var(--red);margin:0 0 6px}
.student-task-grid p{margin:0;color:#655344;font-size:.94rem;line-height:1.72}
.student-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 30px}
.student-stage-grid article{padding:22px;background:#f7eee3;border:1px solid #e7d8c7;border-radius:8px}
.student-stage-grid span{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#986a2d}
.student-stage-grid h3{font:700 1.3rem var(--serif);color:var(--red);margin:7px 0}
.student-stage-grid p{margin:0;color:#655344}
.student-message{display:grid;grid-template-columns:62px 1fr;gap:16px;padding:24px;background:#fff5e6;border:1px solid #ead5b6;border-radius:8px;margin:30px 0}
.message-mark{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#8f2926;color:#fff;font-size:1.6rem}
.student-message h2{margin:5px 0 8px!important;font-size:1.7rem!important}
.student-message p{font-size:1.03rem;color:#654b34}
.student-message strong{color:#8f2926}
@media(max-width:900px){.festival-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-page-teaser{align-items:flex-start;flex-direction:column}.student-page-teaser .button{white-space:normal}.student-photo-grid img,.flag-photo-grid img{height:235px}}
@media(max-width:700px){.festival-photo-block{padding:16px}.festival-photo-grid,.festival-photo-grid.two-up,.festival-activity-grid,.student-photo-grid,.community-student-grid,.student-task-grid,.student-stage-grid{grid-template-columns:1fr}.festival-photo-grid img,.activity-photo,.student-photo-grid img,.flag-photo-grid img{height:235px}.student-page-teaser{padding:18px}.student-message{grid-template-columns:1fr}.student-message .message-mark{width:44px;height:44px}.student-task-grid article{padding-left:62px}}
.content-block .chapter-nav{flex-wrap:wrap}

/* Featured ceremony photograph: centered, spacious and responsive. */
.ceremony-photo-block .festival-photo-grid{grid-template-columns:minmax(0,760px);justify-content:center}
.ceremony-photo-block .festival-photo-grid figure{width:100%}
.ceremony-photo-block .festival-photo-grid img{height:auto;max-height:520px;aspect-ratio:4/3;object-fit:contain;background:#eee8df}
.martial-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.martial-photo-grid img{height:225px;object-fit:cover}
@media(max-width:900px){.martial-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.martial-photo-grid{grid-template-columns:1fr}.martial-photo-grid img{height:235px}.ceremony-photo-block .festival-photo-grid{grid-template-columns:1fr}.ceremony-photo-block .festival-photo-grid img{max-height:420px}}

.student-ceremony-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px;align-items:center;margin:24px 0 34px;padding:20px;background:#f7eee3;border:1px solid #e7d8c7;border-radius:9px}
.student-ceremony-feature figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px rgba(50,28,15,.06)}
.student-ceremony-feature figure button{display:block;width:100%;padding:0;border:0;background:#eee;cursor:zoom-in}
.student-ceremony-feature img{width:100%;height:310px;object-fit:cover}
.student-ceremony-feature figcaption{padding:13px 15px 16px;color:#6d5b4b;font-size:.94rem}
.student-ceremony-feature figcaption strong{display:block;color:var(--red);font-size:1.02rem;margin-bottom:3px}
.student-ceremony-copy h3{font:700 1.65rem/1.25 var(--serif);color:var(--red);margin:8px 0}
.student-ceremony-copy p{margin:0;color:#655344}
@media(max-width:700px){.student-ceremony-feature{grid-template-columns:1fr;padding:14px}.student-ceremony-feature img{height:240px}}

/* Two documentary images in the student incense-offering section. */
.student-ceremony-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.student-ceremony-photo-pair figure{min-width:0}
.student-ceremony-photo-pair img{height:235px;object-fit:cover}
@media(max-width:700px){.student-ceremony-photo-pair{grid-template-columns:1fr}.student-ceremony-photo-pair img{height:235px}}
