/* ELOJE — ivory, midnight blue and warm gold. Shared by every page. */
:root {
  --ivory: #faf7f0;
  --paper: #eee7d9;
  --ink: #18273c;
  --muted: #62656a;
  --gold: #87672f;
  --line: #d9cfbd;
  --night: #18273c;
  --night-deep: #101c2c;
  --champagne: #d5b57a;
}
body { background: var(--ivory); }
html { scrollbar-gutter: stable; }
.section { padding-top: 100px; padding-bottom: 100px; }
.section-kicker { font-weight: 600; }
.section-heading { margin-bottom: 52px; }
.section-heading > p { max-width: 345px; }

/* The original logo stays on ivory; the main action becomes unmistakable. */
.site-header { background: #faf7f0f5; border-bottom-color: #d9cfbd80; backdrop-filter: blur(16px); }
.site-header.is-scrolled { box-shadow: 0 6px 30px #101c2c12; }
.header-contact { background: linear-gradient(135deg,#18273c,#334d69); color: var(--ivory); border-color: #2c425c; border-radius: 10px; box-shadow: 0 5px 14px #101c2c18,inset 0 1px 0 #ffffff16; }
.header-contact:hover { background: linear-gradient(135deg,#22364f,#405c7a); border-color: #405c7a; }
.header-contact .link-arrow { color: var(--champagne); }
.header-inner nav { font-size: 15px; }
#navigation a[aria-current="location"] { color: var(--gold); }
#navigation a[aria-current="location"]::after { right: 0; height: 2px; }
.header-contact[aria-current="location"] { outline: 2px solid var(--champagne); outline-offset: 3px; }
.button { border-radius: 2px; font-weight: 500; }
.button.dark { background: var(--night); box-shadow: 0 8px 20px #101c2c14; }
.button.dark:hover { background: #2a3d58; }
.button.light { background: var(--champagne); color: var(--night-deep); box-shadow: 0 8px 28px #0002; }
.button.light:hover { background: #e9cca0; }
.text-link { border-bottom-color: #a68a53; font-weight: 500; }

/* A more cinematic opening, with a distinct gold edge. */
.hero { border-bottom: 5px solid var(--champagne); }
.hero-shade { background: linear-gradient(90deg,#101c2ce6 0%,#101c2c9c 35%,#101c2c0a 72%),linear-gradient(0deg,#101c2cb3,transparent 35%); }
.hero h1 { text-shadow: 0 3px 30px #0002; }
.hero h1 em { color: #e5c68e; }
.hero .eyebrow { border-left: 2px solid var(--champagne); padding-left: 17px; color: #f7e8cc; }
.hero-sub { color: #fff8ec; }
.hero-bottom { bottom: 0; left: 0; right: 0; padding: 23px 48px; background: #101c2c42; border-top: 1px solid #ffefd225; }
.hero .button, #project-form button[type="submit"] { border-radius: 10px; }
.hero-cta-arrow { display: inline-flex; width: 22px; height: 22px; flex-shrink: 0; }
.hero-cta-arrow svg { width: 100%; height: 100%; }
.hero-place { display: inline-flex; align-items: center; gap: 9px; }
.hero-place svg { width: 16px; height: 18px; color: #e5c68e; flex-shrink: 0; }
.intro { position: relative; display: block; text-align: center; border-bottom: 0; padding-top: 88px; padding-bottom: 88px; }
.intro::after { content: ''; position: absolute; bottom: 0; left: 40px; right: 40px; height: 1px; background: linear-gradient(90deg,var(--champagne),#d9cfbd40); }
.intro h2 { color: var(--night); font-size: clamp(38px,4.4vw,57px); line-height: 1.16; max-width: 930px; margin: auto; }
.together-reveal, .together-reveal em { display: inline-block; }
.together-reveal { white-space: nowrap; }
.together-reveal.is-pending em { opacity: 0; transform: translateY(.65em); }
.together-reveal.is-visible em { animation: together-rise .95s cubic-bezier(.22,.7,.25,1) .7s both; }
@keyframes together-rise {
  from { opacity: 0; transform: translateY(.65em); }
  to { opacity: 1; transform: translateY(0); }
}
.intro-copy { padding: 0; margin: 33px auto 0; border: 0; }
.intro-copy-pending { opacity: 0; }
.intro-copy-ready { animation: intro-copy-fade .7s ease .3s both; }
@keyframes intro-copy-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.intro-copy .intro-refrain { display: flex; justify-content: center; align-items: center; gap: 26px; font-family: var(--serif); font-size: 23px; line-height: 1.5; color: var(--gold); margin-bottom: 22px; }
.intro-refrain span { position: relative; }
.intro-refrain span + span::before { content: ''; position: absolute; left: -15px; top: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: var(--champagne); }
.intro-copy > p:not(.intro-refrain) { max-width: 690px; margin: 0 auto; }
.signature { font-weight: 500; }

/* Short editorial notes have their own warm surface and gentle entrance. */
.section-heading > .section-note { display: flex; align-items: flex-start; gap: 14px; flex: 0 0 330px; max-width: 350px; padding: 23px 24px; margin: 0 0 3px; border: 1px solid #d5c5a8; border-radius: 12px; background: linear-gradient(135deg,#fffdf8,#f1e8d8); box-shadow: 0 10px 28px #18273c09; color: #5b523f; font-size: 16px; line-height: 1.75; }
.section-note > span:last-child { min-width: 0; }
.section-note br { display: none; }
.section-note-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-top: 1px; flex-shrink: 0; color: #92703a; background: #d5b57a24; border-radius: 50%; }
.section-note-icon svg { width: 21px; height: 21px; }
.events .section-heading > .section-note { background: linear-gradient(135deg,#2c435c,#20334b); border-color: #d5b57a55; color: #f0e4ce; box-shadow: 0 12px 30px #07101f25; }
.events .section-note-icon { background: #d5b57a18; color: var(--champagne); }
.section-heading.reveal-pending .section-note { opacity: 0; transform: translate(18px,8px); }
.section-heading.reveal-visible .section-note { animation: section-note-in .8s cubic-bezier(.22,.7,.25,1) .18s both; }
@keyframes section-note-in {
  from { opacity: 0; transform: translate(18px,8px); }
  to { opacity: 1; transform: translate(0,0); }
}

/* Four substantial photo panels, with alternating warm surfaces. */
.services { padding-top: 90px; padding-bottom: 100px; }
.services-heading { display: block; text-align: center; padding: 46px 36px 42px; margin-bottom: 48px; background: linear-gradient(130deg,#eee5d3,#fffdf8 52%,#f2eadd); border: 1px solid #d9ccb3; border-radius: 10px; box-shadow: 0 12px 32px #18273c08; }
.services-heading .section-kicker { font-size: 18px; letter-spacing: 2.8px; margin-bottom: 22px; }
.services-heading .section-kicker::after { display: block; width: 48px; margin: 16px auto 0; }
.services-heading > p { max-width: 650px; margin: 24px auto 0; padding: 0; font-size: 17px; }
.service-row { grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 36px; background: #fffdf9; border: 1px solid #ded5c380; box-shadow: 0 14px 38px #18273c0c; }
.service-row { transition: transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.service-row:focus-within { border-color: #b3945c; box-shadow: 0 18px 42px #18273c16; }
@media (hover:hover) and (pointer:fine) {
  .service-row:hover { transform: translateY(-4px); border-color: #b3945c; box-shadow: 0 20px 44px #18273c20; }
  .service-row:hover .text-link > span { transform: translate(3px,-3px); }
}
.service-row:nth-of-type(even) { background: #efe8dc; }
.service-row:last-child { margin-bottom: 0; }
.service-photo { height: 100%; min-height: 390px; position: relative; }
.service-photo::after { content: ''; position: absolute; inset: 0; border: 1px solid #ffffff20; pointer-events: none; }
.service-photo img { min-height: 390px; }
.service-copy, .reverse .service-copy { padding: 40px 44px; }
.service-copy h3 { font-size: 43px; margin-bottom: 20px; }
.service-copy p { max-width: none; }
.service-copy .section-kicker { font-size: 14px; letter-spacing: 1.6px; line-height: 1.65; }
.service-copy .text-link { margin-top: 25px; }
.buzz-art { background: radial-gradient(ellipse at 50% 40%,#354963 0%,#18273c 68%); min-height: inherit; color: #d5b57a; }
.buzz-bottom { color: #fff6e4; }
.buzz-bottom i { color: var(--champagne); }

/* An immersive midnight-blue interlude distinguishes the event section. */
.events { position: relative; background: var(--night); color: var(--ivory); overflow: hidden; }
.events::before { content: ''; position: absolute; width: 630px; height: 630px; left: -240px; bottom: -380px; border: 1px solid #d5b57a21; border-radius: 50%; box-shadow: 0 0 0 75px #d5b57a06,0 0 0 150px #d5b57a04; pointer-events: none; }
.events .section { position: relative; padding-top: 90px; padding-bottom: 90px; }
.events .section-kicker, .events em { color: var(--champagne); }
.events .section-heading .section-kicker::after { background: var(--champagne); }
.events .section-heading > p, .events .event-panel p { color: #d0d6de; }
.event-tabs { gap: 10px; border-bottom-color: #ffffff26; padding-bottom: 16px; }
.event-tabs button { padding: 13px 24px; color: #e4e7eb; border: 1px solid #ffffff30; border-radius: 2px; transition: color .2s,background .2s,border-color .2s; }
.event-tabs button:hover { background: #ffffff10; border-color: #d5b57a90; }
.event-tabs button[aria-selected=true] { color: var(--night-deep); background: var(--champagne); border-color: var(--champagne); }
.event-panel { padding-top: 38px; min-height: 265px; gap: 65px; }
.event-word { font-size: clamp(74px,8vw,108px); line-height: 1.1; color: #e2c38d; }
.event-panel h3 { font-size: 30px; }
.event-panel .text-link { color: #f6e5c6; border-color: #d5b57a80; }

/* Actual ELOJE events, with the original framing available in the lightbox. */
.gallery { padding-top: 94px; padding-bottom: 86px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-auto-rows: 225px; gap: 18px; }
.gallery-item { display: block; position: relative; overflow: hidden; background: var(--night); border-radius: 4px; box-shadow: 0 9px 24px #18273c12; isolation: isolate; }
.gallery-item:first-child { grid-column: span 2; grid-row: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.3,1); }
.gallery-item:nth-child(4) img { object-position: center 25%; }
.gallery-item:nth-child(6) img { object-position: center 60%; }
.gallery-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 25%,#101c2c22 45%,#101c2cdb 100%); pointer-events: none; }
.gallery-caption { position: absolute; z-index: 1; left: 23px; right: 20px; bottom: 22px; color: white; display: flex; gap: 14px; align-items: flex-end; justify-content: space-between; }
.gallery-caption strong { display: block; font: 24px/1.2 var(--serif); }
.gallery-caption > span > span { display: block; font-size: 12px; color: #f0e4cd; margin-top: 7px; }
.gallery-item:first-child .gallery-caption strong { font-size: 34px; }
.gallery-expand { display: flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid #f5e6cc88; border-radius: 50%; background: #101c2c55; flex-shrink: 0; transition: background .25s,border-color .25s; }
.gallery-expand svg { width: 17px; height: 17px; }
.gallery-item:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
.gallery-hint { text-align: center; font-size: 13px; color: var(--muted); margin-top: 25px; }
@media (hover:hover) and (pointer:fine) {
  .gallery-item:hover img { transform: scale(1.035); }
  .gallery-item:hover .gallery-expand { background: #b99a62; border-color: #b99a62; }
}
.gallery-dialog { width: min(1150px,calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 18px 24px; color: var(--ivory); background: #101c2c; border: 1px solid #ffffff30; border-radius: 10px; box-shadow: 0 25px 100px #0005; }
.gallery-dialog::backdrop { background: #060d19e8; backdrop-filter: blur(5px); }
.gallery-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.gallery-dialog-header p { font-size: 12px; letter-spacing: 2px; color: var(--champagne); }
.gallery-dialog button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; color: var(--ivory); border: 1px solid #ffffff50; background: #ffffff0a; border-radius: 50%; }
.gallery-dialog button:hover { background: #ffffff20; }
.gallery-close { font-size: 30px; line-height: 1; }
.gallery-dialog-figure { margin: 0; }
.gallery-dialog-figure img { display: block; width: 100%; height: min(65dvh,720px); object-fit: contain; background: #0a1525; }
.gallery-dialog-figure figcaption { text-align: center; font-size: 15px; padding: 17px 12px 12px; line-height: 1.6; }
.gallery-dialog-controls { display: flex; align-items: center; justify-content: center; gap: 27px; }
.gallery-dialog-controls button { font-size: 23px; }
.gallery-dialog-controls p { min-width: 100px; text-align: center; font-size: 13px; color: #d7c5a6; }

/* Artists on warm paper; reviews on a separate, cooler ivory stage. */
.partners-surface { background: #eee7db; border-bottom: 1px solid #ded5c3; }
.partner-grid-compact { gap: 22px; }
.partner-grid-compact article { padding: 30px 27px; background: #fffaf1; border: 1px solid #d8ccb9; border-top: 3px solid #b99a62; box-shadow: 0 12px 26px #503d2308; }
.partner-grid-compact h3 { font-size: 29px; }
.partner-grid-compact .partner-top { display: block; min-height: 82px; margin-bottom: 16px; }
.partner-grid-compact .partner-top .section-kicker { margin-top: 15px; font-size: 10px; letter-spacing: 1.3px; }
.partner-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--gold); }
.partner-grid-compact p { color: #5e6267; }
.partner-types { color: #786037; }
.partners-bottom { border-top-color: #d0c3ae; }
.reviews-surface { background: #faf9f5; }
.testimonials { padding-top: 94px; padding-bottom: 94px; }
.review-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 22px 28px; }
.review-title-stars { display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0; color: #ac8135; }
.review-title-star { display: block; width: 25px; height: 25px; }
.review-title-star svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.reviews-heading.reveal-pending .review-title-star { opacity: 0; }
.reviews-heading.reveal-visible .review-title-star { animation: review-star-in .65s cubic-bezier(.22,.7,.25,1) both; animation-delay: calc(300ms + var(--star-index) * 180ms); }
@keyframes review-star-in {
  0% { opacity: 0; transform: translateY(9px) scale(.72) rotate(-12deg); }
  65% { opacity: 1; transform: translateY(-2px) scale(1.08) rotate(2deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
}
.testimonials-grid { gap: 24px; }
.testimonial { position: relative; padding: 34px 32px 30px; background: #fff; border: 1px solid #e3dfd5; border-top: 3px solid var(--champagne); box-shadow: 0 10px 30px #18273c08; }
.testimonial blockquote { position: relative; z-index: 1; }
.testimonial::after { content: '“'; position: absolute; right: 25px; bottom: -8px; font-family: var(--serif); font-size: 120px; line-height: 1; color: #f1ede3; pointer-events: none; }
.testimonial figcaption { position: relative; z-index: 1; font-weight: 600; }
.review-stars { color: #95702a; }

/* A clear final invitation, with a raised white form. */
.contact-surface { background: linear-gradient(120deg,#18273c 0%,#223852 100%); border-top: 4px solid var(--champagne); }
.contact { border-top: 0; align-items: start; grid-template-columns: .85fr 1.15fr; gap: 70px; }
.contact-copy { padding-top: 32px; color: var(--ivory); }
.contact-copy .section-kicker, .contact-copy em { color: var(--champagne); }
.contact-copy > p { color: #d2d9e2; }
.contact-copy h2 { font-size: clamp(38px,4vw,54px); }
.contact-copy .contact-mail { font-size: 25px; }
.contact-copy .contact-mail span { color: var(--champagne); }
.contact-copy .phone { font-size: 18px; color: #f5ead4; }
.contact-copy .contact-location { border-top: 1px solid #ffffff26; padding-top: 28px; margin-top: 34px; color: #c5cfdc; }
#project-form { background: #fffdf8; padding: 34px; border-radius: 4px; border: 1px solid #fff8; box-shadow: 0 26px 60px #07101f38; min-width: 0; }
#project-form label, #project-form legend { font-size: 13px; font-weight: 500; }
#project-form input:not([type=checkbox]), #project-form select, #project-form textarea { background: #f4f1e9; border: 1px solid #d9d2c5; padding: 12px 11px; border-radius: 2px; font-weight: 400; }
#project-form input::placeholder, #project-form textarea::placeholder { color: #6c6b66; }
#project-form input:focus, #project-form select:focus, #project-form textarea:focus { border-color: #8b713e; outline-offset: 2px; }
#project-form .choices { gap: 8px; }
#project-form .choices span { padding: 7px 11px; background: #fff; color: #535860; border-color: #d3cec3; border-radius: 2px; }
#project-form .choices input:checked + span { background: var(--night); border-color: var(--night); color: #fff6e4; }
#project-form .button { padding: 17px 20px; font-size: 15px; }
.form-status.is-success { background: #f1eadb; color: var(--night); border-color: #cfbd99; }
.form-alternatives > p { font-size: 12px; }
.form-action { font-size: 13px; }
footer { background: var(--night-deep); border-top: 1px solid #ffffff16; padding-top: 58px; }
.footer-top p { color: #d3c6ae; }
.footer-top strong { color: var(--champagne); }
.footer-bottom { color: #c0c8d2; }

/* The service pages belong to the same visual family. */
.detail-intro { padding-top: 32px; padding-bottom: 85px; }
.detail-photo { box-shadow: 18px 18px 0 #e9dfcc,0 20px 45px #18273c18; border: 1px solid #dfd4c2; }
.detail-features { padding-top: 60px; padding-bottom: 75px; }
.feature-grid { gap: 26px; }
.feature-grid article { background: #fffdf9; border: 1px solid #e1d8c8; border-top: 3px solid var(--champagne); padding: 28px; box-shadow: 0 12px 26px #18273c06; }
.feature-grid h3 { font-size: 27px; }
.photo-experiences { background: #eee7db; }
.photo-experience-grid article { background: #fffaf1; padding: 28px; border-top: 3px solid var(--champagne); box-shadow: 0 12px 26px #18273c08; }
.detail-cta, .photo-experiences + .detail-cta { padding: 80px 25px; background: var(--night); color: var(--ivory); }
.detail-cta .section-kicker, .detail-cta em { color: var(--champagne); }
.detail-cta .button { background: var(--champagne); color: var(--night); }
.detail-cta .button:hover { background: #e8cfa1; }
.related { padding-top: 42px; padding-bottom: 42px; }
.related a { border-bottom: 1px solid #bda87f; padding-bottom: 5px; }
.privacy { padding-top: 50px; }

@media (min-width:761px) and (max-width:1050px) {
  .header-inner nav { gap: 17px; font-size: 14px; }
  .intro-copy .intro-refrain { font-size: 20px; gap: 22px; }
  .intro-refrain span + span::before { left: -13px; }
  .section-heading > .section-note { flex-basis: 285px; padding: 20px; gap: 11px; font-size: 15px; }
  .service-copy, .reverse .service-copy { padding: 30px; }
  .service-copy h3 { font-size: 36px; }
  .partner-grid-compact article { padding: 25px 20px; }
  .partner-grid-compact h3 { font-size: 26px; }
  .contact { gap: 32px; grid-template-columns: .8fr 1.2fr; }
  #project-form { padding: 25px; }
  .feature-grid article, .photo-experience-grid article { padding: 22px; }
  .gallery-grid { grid-auto-rows: 205px; gap: 14px; }
  .gallery-caption { left: 17px; right: 15px; bottom: 18px; gap: 10px; }
  .gallery-caption strong { font-size: 22px; }
}
@media (max-width:760px) {
  .section { padding: 64px 24px; }
  .header-inner nav { font-size: 17px; }
  .header-contact { padding: 9px 12px; }
  .hero { border-bottom-width: 4px; }
  .hero-shade { background: linear-gradient(90deg,#101c2cc9,#101c2c30),linear-gradient(0deg,#101c2c8c,transparent 55%); }
  .hero .eyebrow { padding-left: 12px; }
  .hero-bottom { padding: 19px 24px; }
  .hero-place { display: none; }
  .intro { margin: 0; padding: 56px 24px; }
  .intro::after { left: 24px; right: 24px; }
  .intro h2 { font-size: clamp(32px,8.4vw,43px); letter-spacing: -1.2px; }
  .intro-copy { margin-top: 26px; padding: 0; }
  .intro-copy .intro-refrain { flex-direction: column; gap: 6px; font-size: 21px; margin-bottom: 24px; }
  .intro-refrain span + span::before { display: none; }
  .intro-copy .signature > span { margin-left: 5px; }
  .section-heading { margin-bottom: 32px; }
  .section-heading > .section-note { width: 100%; max-width: 430px; padding: 20px; margin: 26px 0 0; font-size: 15px; gap: 13px; }
  .services-heading { padding: 33px 20px 31px; margin-bottom: 30px; }
  .services-heading .section-kicker { font-size: 16px; letter-spacing: 2px; }
  .services-heading h2 { font-size: clamp(31px,7.8vw,37px); letter-spacing: -1px; }
  .services-heading > p { font-size: 15px; margin-top: 20px; }
  .service-row { gap: 0; margin-bottom: 28px; box-shadow: 0 10px 25px #18273c0b; }
  .service-photo { height: 280px; min-height: 0; }
  .service-photo img { min-height: 0; }
  .service-copy, .reverse .service-copy { padding: 27px 24px 31px; }
  .service-copy h3 { font-size: 34px; }
  .service-copy .section-kicker { font-size: 12px; letter-spacing: 1.1px; }
  .service-copy p { font-size: 15px; }
  .service-copy .text-link { margin-top: 20px; font-size: 14px; }
  .events .section { padding: 64px 24px; }
  .event-tabs { display: grid; grid-template-columns: .8fr 1.15fr 1fr; gap: 7px; padding-bottom: 20px; }
  .event-tabs button { max-width: none; padding: 12px 7px; font-size: 12px; line-height: 1.45; }
  .event-panel { padding-top: 30px; min-height: 350px; }
  .event-word { font-size: 62px; margin-bottom: 24px; }
  .event-panel h3 { font-size: 27px; }
  .event-panel p { font-size: 15px; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 200px; gap: 12px; }
  .gallery-item:first-child, .gallery-item:last-child { grid-column: span 2; grid-row: span 1; }
  .gallery-item:first-child .gallery-caption strong { font-size: 27px; }
  .gallery-caption { left: 14px; right: 12px; bottom: 16px; gap: 8px; }
  .gallery-caption strong { font-size: 20px; }
  .gallery-caption > span > span { font-size: 11px; line-height: 1.5; }
  .gallery-expand { width: 30px; height: 30px; }
  .gallery-hint { font-size: 12px; margin-top: 20px; }
  .gallery-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); padding: 12px; border-radius: 7px; }
  .gallery-dialog-header { margin-bottom: 10px; }
  .gallery-dialog-figure img { height: 57dvh; }
  .gallery-dialog-figure figcaption { font-size: 14px; padding: 14px 7px; }
  .partner-grid-compact { gap: 18px; }
  .partner-grid-compact article { padding: 25px; }
  .partner-grid-compact .partner-top { display: flex; gap: 13px; min-height: 44px; margin-bottom: 17px; }
  .partner-grid-compact .partner-top .section-kicker { margin-top: 0; }
  .partner-icon { flex-shrink: 0; }
  .partners-bottom .button { font-size: 14px; }
  .testimonial { padding: 28px 24px; }
  .review-title-row { gap: 20px; }
  .review-title-star { width: 24px; height: 24px; }
  .testimonial blockquote { font-size: 21px; }
  .contact { margin: 0; grid-template-columns: minmax(0,1fr); gap: 34px; }
  .contact-copy { padding-top: 0; }
  .contact-copy h2 { font-size: 39px; }
  .contact-copy .contact-mail { font-size: 24px; }
  #project-form { padding: 24px 20px; }
  .form-grid { gap: 14px; }
  #project-form input:not([type=checkbox]), #project-form select, #project-form textarea { font-size: 16px; padding: 11px 9px; }
  #project-form .choices span { font-size: 12px; padding: 7px 9px; }
  .form-status.is-success { font-size: 17px; }
  .detail-intro { padding-top: 26px; padding-bottom: 60px; }
  .detail-photo { margin-right: 10px; box-shadow: 10px 10px 0 #e9dfcc,0 12px 25px #18273c14; }
  .feature-grid { gap: 18px; }
  .feature-grid article, .photo-experience-grid article { padding: 26px; }
  .detail-cta, .photo-experiences + .detail-cta { padding: 64px 24px; }
  .related { padding-top: 35px; padding-bottom: 35px; }
}
@media (max-width:480px) {
  .form-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .gallery-grid { grid-auto-rows: 185px; }
  .gallery-caption strong { font-size: 18px; }
  .gallery-caption { display: block; }
  .gallery-caption > span > span { display: none; }
  .gallery-expand { position: absolute; right: 0; bottom: 41px; }
  .gallery-item:first-child .gallery-expand, .gallery-item:last-child .gallery-expand { position: static; }
  .gallery-item:first-child .gallery-caption, .gallery-item:last-child .gallery-caption { display: flex; }
}
@media (max-width:380px) {
  .section, .events .section { padding-left: 20px; padding-right: 20px; }
  .service-copy, .reverse .service-copy { padding-left: 21px; padding-right: 21px; }
  .event-tabs button { font-size: 11px; padding-left: 5px; padding-right: 5px; }
  #project-form { padding-left: 18px; padding-right: 18px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .reviews-heading .review-title-star { opacity: 1 !important; transform: none !important; }
  .section-heading .section-note { opacity: 1 !important; transform: none !important; }
  .together-reveal em { opacity: 1 !important; transform: none !important; }
  .intro-copy { opacity: 1 !important; }
  .service-row:hover, .service-row:hover .text-link > span, .gallery-item:hover img { transform: none !important; }
}
