/* Supplied photography: responsive framing without changing the originals. */
.hero-photo-art {padding:0 18px 40px 0;isolation:isolate;max-width:560px;width:100%;justify-self:end}
.hero-main-photo {overflow:hidden;border-radius:42% 42% 18px 18px;aspect-ratio:4/5;background:#dce8df}
.hero-main-photo img {width:100%;height:100%;object-fit:cover;object-position:50% 57%}
.hero-brand-card {position:absolute;left:-24px;bottom:82px;width:160px;padding:8px;background:var(--cream,#fffdf4);border:1px solid #ffffffd9;border-radius:20px;box-shadow:0 12px 32px #123d3e24;transform:rotate(-6deg);z-index:3}
.hero-brand-card img {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:13px}
@media(max-width:1100px) {.hero-brand-card {left:-15px;bottom:75px;width:132px;padding:7px;border-radius:17px}}
@media(max-width:760px) {.hero-brand-card {left:-10px;bottom:65px;width:108px;padding:6px;border-radius:15px}.hero-brand-card img {border-radius:9px}}
.hero-photo-art .hero-tag {top:14px;right:-3px;bottom:auto;z-index:2;transform:rotate(7deg);padding:16px 21px}
.hero-photo-inset {position:absolute;bottom:16px;right:-10px;width:43%;max-width:220px;transform:rotate(-5deg);padding:7px;background:#fffdf4;border-radius:9px;box-shadow:0 8px 30px #123d3e24;z-index:2}
.hero-photo-inset img {width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:5px}
.hero-photo-inset span {display:block;padding:8px 3px 3px;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:13px;color:#254a43}
.hero-photo-art .art-caption {left:0;bottom:4px;font-size:8px;letter-spacing:.16em}
.moments-section {padding-bottom:55px}
.moments-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.moment-card {display:block;min-width:0}
.moment-image {overflow:hidden;border-radius:12px;background:#e2eadd;aspect-ratio:4/5}
.moment-image img {width:100%;height:100%;object-fit:cover;object-position:center 42%;transition:transform .25s}
.moment-card:hover .moment-image img {transform:scale(1.025)}
.moment-card>div:last-child {display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 2px}
.moment-card h3 {font-size:21px}
.moment-card>div:last-child>span {color:var(--teal);font-size:22px}
.about-with-photo {grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:70px;align-items:center}
.about-photo,.contact-photo {margin:0;position:relative}
.about-photo {border-radius:42% 42% 14px 14px;background:#dce9dc;overflow:hidden}
.about-photo img {width:100%;height:auto;aspect-ratio:2/3;object-fit:cover}
.about-photo figcaption {background:#133f40;color:#e8f1e3;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:17px;padding:21px 15px}
.about-with-photo .about-story-title {font-size:clamp(28px,3vw,39px);margin:17px 0 24px;line-height:1.14}
.about-with-photo .btn {margin-top:12px}
.discipline-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0 0 45px}
.discipline-card {display:grid;grid-template-columns:42% minmax(0,1fr);border-radius:12px;overflow:hidden;background:#e6ede1;min-height:270px}
.discipline-card:nth-child(2) {background:#e3ede8}
.discipline-image {overflow:hidden}
.discipline-image img {height:100%;width:100%;object-fit:cover;object-position:50% 38%}
.discipline-card>div:last-child {padding:28px 24px;align-self:center}
.discipline-card h2 {font-size:30px;margin:18px 0 12px;line-height:1.1}
.discipline-card p {font-size:12px;color:#566f69;line-height:1.7}
.contact-photo {margin-top:29px;max-width:360px;border-radius:12px;overflow:hidden;background:#e8eee3}
.contact-photo img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 40%}
.contact-photo figcaption {padding:13px 17px;font-size:12px;font-style:italic;color:#4c6b61}
.gallery-intro-line {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 28px}
.gallery-intro-line p {font-size:12px;color:#657872}
.gallery-photo-grid {columns:3;column-gap:23px}
.gallery-photo-grid button {padding:0;border:1px solid #dce5d8;box-shadow:0 2px 5px #123d3e04;transition:box-shadow .2s}
.gallery-photo-grid button:hover {box-shadow:0 6px 20px #123d3e18}
.gallery-photo-grid img {width:100%;height:auto}
.gallery-photo-grid span {display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#21483f;padding:17px}
.gallery-photo-grid b {font-size:18px;font-weight:400;color:var(--teal)}
dialog.photo-lightbox {width:min(960px,calc(100% - 30px));max-height:94dvh;padding:18px;background:#fcfcf5;overflow:auto}
.photo-lightbox #gallery-full-image {width:100%;height:72dvh;max-height:740px;object-fit:contain;background:#112d2c;border-radius:8px}
.photo-lightbox .dialog-close {z-index:2;background:#fffdf4;color:#133f40;right:27px;top:27px;box-shadow:0 2px 10px #0003}
.lightbox-footer {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 6px 4px}
.lightbox-footer h2 {font-size:22px;margin:0 0 5px;letter-spacing:-.025em}
.lightbox-footer p {font-size:11px;color:#647c72}
.lightbox-controls {display:flex;gap:8px;flex-shrink:0}
.lightbox-controls button {width:44px;height:44px;border:1px solid #b8cebf;background:#eff4ea;border-radius:50%;color:#007e82;font-size:20px}
.photo-settings {border-top:1px solid var(--border);padding-top:25px;margin-top:6px}
.photo-settings h2 {font-size:23px;margin-bottom:12px}
.photo-settings>p {font-size:12px;color:#637774;margin-bottom:21px}
.page-photo-preview {width:100%;height:140px;object-fit:cover;object-position:center 40%;border-radius:8px;margin-top:12px}
@media(max-width:1000px) {
 .about-with-photo {gap:40px}
 .discipline-card {grid-template-columns:40% minmax(0,1fr);min-height:250px}
 .discipline-card>div:last-child {padding:23px 17px}
 .discipline-card h2 {font-size:25px}
 .moment-card h3 {font-size:19px}
}
@media(max-width:760px) {
 .hero-photo-art {justify-self:center;max-width:410px!important;width:90%!important;margin:0 auto!important;padding-right:14px}
 .hero-photo-art .hero-tag {right:0;top:15px}
 .hero-photo-inset {right:-4px}
 .about-with-photo {grid-template-columns:1fr;gap:34px}
 .about-photo {max-width:430px;margin:auto}
 .about-photo img {aspect-ratio:4/5;object-position:50% 55%}
 .discipline-grid {grid-template-columns:1fr;gap:18px;margin-bottom:32px}
 .discipline-card {grid-template-columns:40% minmax(0,1fr);min-height:230px}
 .discipline-card h2 {font-size:29px}
 .gallery-photo-grid {columns:2;column-gap:17px}
 .gallery-photo-grid button {margin-bottom:17px}
 .moments-grid {gap:15px}
 .moment-card h3 {font-size:17px}
 .moment-card>div:last-child {padding:14px 0}
 .contact-photo {max-width:none}
 .contact-photo img {max-height:310px}
}
@media(max-width:520px) {
 .moments-grid {grid-template-columns:1fr;gap:20px}
 .moment-image {aspect-ratio:6/5}
 .moment-card h3 {font-size:23px}
 .moment-card>div:last-child {padding:16px 1px 5px}
 .hero-photo-inset span {font-size:11px}
 .hero-photo-art .art-caption {max-width:50%;line-height:1.6}
 .gallery-intro-line {flex-direction:column;align-items:flex-start;gap:8px}
 .gallery-photo-grid {columns:1}
 .gallery-photo-grid span {font-size:14px}
 dialog.photo-lightbox {padding:10px;width:calc(100% - 16px)}
 .photo-lightbox #gallery-full-image {height:68dvh}
 .photo-lightbox .dialog-close {right:19px;top:19px}
 .lightbox-footer {gap:10px;padding:17px 5px 7px}
 .lightbox-footer h2 {font-size:18px}
 .lightbox-controls button {width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce) {.moment-image img,.gallery-photo-grid button{transition:none}}
