.tcm-poster{height:100%;display:grid;grid-template-columns:1fr 1fr;background:#f9f4e9;color:#30362f;overflow:hidden}.tcm-copy{padding:8% 9%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.tcm-kicker{font-size:clamp(10px,1.3vw,19px);letter-spacing:.14em;color:#99531c;margin:0 0 6%}.tcm-poster h2{font-family:'Songti SC','STSong',serif;font-size:clamp(23px,4.3vw,66px);line-height:1.25;margin:0 0 5%;font-weight:700}.tcm-poster h2 span{display:block;color:#a54c14}.tcm-poster .tcm-lead{font-size:clamp(12px,1.8vw,26px);line-height:1.65;margin:0 0 7%}.tcm-date{border-block:1px solid #c5ae89;padding:5% 0;width:100%;font-size:clamp(13px,2vw,30px);line-height:1.7;font-weight:600}.tcm-date small{display:block;font-size:clamp(11px,1.35vw,19px);font-weight:400}.tcm-poster .tcm-thanks{font-size:clamp(11px,1.45vw,21px);line-height:1.8;margin:6% 0}.tcm-photo{margin:0;display:flex;flex-direction:column;min-height:0;background:#ece6db}.flag-slide .tcm-photo img{width:100%;height:0;flex:1;min-height:0;object-fit:contain;object-position:center}.tcm-photo figcaption{padding:12px 16px;color:#504634;font-size:clamp(10px,1.15vw,16px);line-height:1.6;background:#efe6d6}.tcm-poster .tcm-link{font-size:clamp(11px,1.35vw,20px);color:#974713;border-bottom:1px solid #974713;padding:8px 0;min-height:44px}.tcm-booking{background:#f9f4e9;border-top:4px solid #f39a26}.tcm-booking .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}.tcm-booking h2{font-size:30px}.tcm-booking .button{margin-top:10px}.tcm-booking p{color:#655c4e}.tcm-booking small{display:block;margin-top:14px;line-height:1.8;color:#655c4e}
@media(max-width:600px){.tcm-copy{padding:7%}.tcm-poster h2{font-size:23px}.tcm-kicker{letter-spacing:0;margin-bottom:10px}.tcm-poster .tcm-lead{font-size:12px;margin-bottom:10px}.tcm-date{font-size:14px}.tcm-poster .tcm-thanks{font-size:11px;margin:8px 0}.tcm-photo figcaption{font-size:10px;padding:6px}.tcm-poster .tcm-link{padding:4px 0;min-height:32px;font-size:11px}.tcm-booking .wrap{grid-template-columns:1fr;gap:12px}.tcm-booking h2{font-size:26px}.flag-carousel:has(.tcm-poster) .flag-track{aspect-ratio:4/3}.tcm-poster .tcm-kicker{font-size:9px}.tcm-poster .tcm-thanks{display:none}}
.flag-carousel .flag-prev,.flag-carousel .flag-next{top:auto;bottom:4px;transform:none;height:44px;background:white}.flag-carousel .flag-prev{left:8px}.flag-carousel .flag-next{right:8px}.flag-carousel .flag-controls{padding-inline:54px}
@media(max-width:360px){.tcm-poster h2{font-size:20px}.tcm-poster .tcm-lead{font-size:10px}.tcm-date{font-size:12px}.tcm-date small{font-size:10px}.tcm-photo figcaption{font-size:9px}.tcm-poster .tcm-link{font-size:10px}.flag-carousel .flag-controls{gap:3px;padding-inline:46px}}
/* Upper-body editorial portrait, using the original photograph. */
.tcm-photo{position:relative;background:#e8e1d5;overflow:hidden;display:grid;grid-template-rows:72% 28%}
.tcm-portrait-crop{position:relative;overflow:hidden;width:100%;height:100%}
.flag-slide .tcm-portrait-crop img{position:absolute;display:block;width:145%;max-width:none;height:auto;min-height:0;left:-22.5%;top:-25%;object-fit:initial;flex:none}
.tcm-photo figcaption{position:relative;display:flex;flex-direction:column;justify-content:center;padding:5% 8%;background:#e9dfcc;border-top:4px solid #ae591e;line-height:1.4}
.prof-school{display:block;font-size:clamp(12px,1.65vw,24px);letter-spacing:.12em;color:#67533d}
.prof-name{display:block;font-family:'Songti SC','STSong',serif;font-size:clamp(25px,4.1vw,59px);font-weight:700;line-height:1.25;margin:8px 0;color:#30362f}
.prof-name em{font-family:'PingFang SC',sans-serif;font-style:normal;font-size:.46em;font-weight:500}
.prof-role{font-size:clamp(10px,1.4vw,20px);color:#704a27}.prof-note{font-size:clamp(9px,1vw,14px);margin-top:9px;color:#746751}
@media(max-width:600px){.tcm-photo{grid-template-rows:65% 35%}.tcm-photo figcaption{padding:7px 10px;border-top-width:2px}.prof-name{margin:3px 0;font-size:25px}.prof-school{font-size:11px;letter-spacing:.03em}.prof-role{font-size:9px}.prof-note{display:none}.flag-slide .tcm-portrait-crop img{top:-24%}}
.tcm-qr{display:flex;align-items:center;gap:18px;margin-top:8px}.flag-slide .tcm-qr img{width:120px;height:125px;object-fit:contain;background:white}.tcm-qr strong,.tcm-qr span,.tcm-qr small{display:block}.tcm-qr strong{font-size:22px;color:#974713}.tcm-qr span{font-size:16px;margin:7px 0}.tcm-qr small{font-size:13px;color:#655c4e}.tcm-copy{padding-top:5%;padding-bottom:5%}.tcm-poster .tcm-thanks{margin:4% 0;font-size:clamp(11px,1.3vw,19px)}.booking-qr{display:flex;align-items:center;gap:22px}.booking-qr img{display:block;width:150px;height:auto;max-width:none}.booking-qr p{font-size:15px}.booking-qr h3{margin-top:0}
@media(max-width:600px){.tcm-qr{gap:6px;margin-top:5px}.flag-slide .tcm-qr img{width:48px;height:50px}.tcm-qr strong{font-size:10px}.tcm-qr span{font-size:9px;margin:2px 0}.tcm-qr small{font-size:8px}.tcm-poster .tcm-link{display:none}.tcm-poster .tcm-lead{margin-bottom:5px;font-size:10px}.tcm-poster h2{font-size:21px;margin-bottom:5px}.tcm-kicker{margin-bottom:5px}.booking-qr{align-items:flex-start;gap:16px}.booking-qr img{width:115px}.booking-qr p{font-size:14px}}
.tcm-contact{font-size:clamp(10px,1.15vw,17px);line-height:1.7;margin:14px 0 0;color:#704a27}.tcm-phones{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.prof-note{font-size:clamp(11px,1.45vw,21px);color:#704a27;font-weight:600}.tcm-poster .tcm-thanks{margin:3% 0}.tcm-copy{padding-top:4%;padding-bottom:4%}
@media(max-width:600px){.tcm-contact{font-size:9px;margin:5px 0 0}.prof-note{display:block;font-size:9px;margin-top:3px}.tcm-poster h2{font-size:19px}.tcm-kicker{font-size:8px!important}.tcm-qr{margin-top:3px}.tcm-date{padding:3% 0}.tcm-photo figcaption{padding:5px 8px}.prof-name{font-size:23px}}
/* Translucent controls; only the surface is blurred, not the arrow glyph. */
.flag-carousel .flag-prev,.flag-carousel .flag-next{background:rgba(255,255,255,.32);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#344037;border:1px solid rgba(70,65,54,.12);border-radius:50%;width:44px;box-shadow:none;transition:background .18s ease}
.flag-carousel .flag-prev:hover,.flag-carousel .flag-next:hover{background:rgba(255,255,255,.8)}
.flag-carousel .flag-prev:focus-visible,.flag-carousel .flag-next:focus-visible{outline:3px solid #a6501a;outline-offset:2px}
/* Keep carousel navigation visibly readable on the light control strip. */
.flag-carousel .flag-prev,.flag-carousel .flag-next{background:rgba(244,234,218,.88);color:#703708;border:1px solid #bca17b;width:46px;height:46px;font-size:38px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;z-index:5;opacity:1;box-shadow:0 2px 5px #49321a18;bottom:3px}
.flag-carousel .flag-prev:hover,.flag-carousel .flag-next:hover{background:#ead5b5;color:#542500}
/* Overlay previous/next on the image, above the separate caption strip. */
.flag-carousel .flag-prev,.flag-carousel .flag-next{top:calc((100% - 53px)/2);bottom:auto;transform:translateY(-50%);background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.65);color:#283a31;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-shadow:0 1px 2px #fff9}
.flag-carousel .flag-prev{left:14px}.flag-carousel .flag-next{right:14px}
.flag-carousel .flag-prev:hover,.flag-carousel .flag-next:hover{background:rgba(255,255,255,.8);color:#283a31}
@media(max-width:600px){.flag-carousel .flag-prev{left:5px}.flag-carousel .flag-next{right:5px}.flag-carousel .flag-prev,.flag-carousel .flag-next{width:44px;height:48px;border-radius:5px;background:rgba(255,255,255,.4)}}
