:root{--ink:#39352f;--muted:#817a70;--paper:#f8f6f1;--line:#ded9cf;--accent:#9a7766}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.75}a{color:inherit;text-decoration:none}.site-header{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:var(--paper)}.wordmark{font-family:'Cormorant Garamond',serif;font-size:21px;letter-spacing:.12em;line-height:1.15}.wordmark span{display:block;text-align:center;font:9px 'DM Sans',sans-serif;letter-spacing:.26em;margin-top:5px}.nav{display:flex;gap:40px;align-items:center;text-transform:uppercase;font-size:10px;letter-spacing:.18em}.nav a{transition:color .2s}.nav a:hover,.text-link:hover{color:var(--accent)}.nav-cta{border-bottom:1px solid var(--ink);padding-bottom:4px}.menu-toggle{display:none;background:none;border:0;color:var(--ink);font:inherit}.hero{height:min(62vw,680px);min-height:430px;position:relative;display:grid;grid-template-columns:1fr 1.07fr 1fr;gap:7px;overflow:hidden}.hero-image{overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;display:block}.hero-one img{object-position:center 45%}.hero-two img{object-position:center 35%}.hero-three img{object-position:center 50%}.hero-note{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);padding:8px 18px;background:rgba(248,246,241,.88);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;white-space:nowrap}.section-pad{padding:110px 9vw}.intro{text-align:center;max-width:1000px;margin:auto;padding-top:115px;padding-bottom:120px}.eyebrow{font-size:9px;letter-spacing:.24em;color:var(--accent);margin:0 0 20px}.intro h1,.section-heading h2,.about h2,.services h2,.contact h2{font:400 clamp(43px,6vw,78px)/.98 'Cormorant Garamond',serif;margin:0;letter-spacing:-.025em}.intro h1 em,.about h2 em,.services h2 em,.contact h2 em{font-weight:400}.intro-copy{max-width:560px;margin:24px auto 26px;color:var(--muted);font-size:14px}.text-link{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid var(--line);padding-bottom:7px}.text-link span{margin-left:12px}.work{padding-top:58px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:34px}.section-heading h2{font-size:54px}.section-heading .eyebrow{margin-bottom:10px}.gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:410px 330px;gap:28px}.gallery figure{margin:0;min-width:0}.gallery img{display:block;width:100%;height:calc(100% - 41px);object-fit:cover}.gallery-large{grid-row:span 2}.gallery-large img{object-position:center}.gallery-tall img{object-position:center 38%}.gallery figcaption{padding-top:9px;font:italic 18px 'Cormorant Garamond',serif}.gallery figcaption span{float:right;font:9px 'DM Sans',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:6px}.about{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;background:#f0ede6}.about-image{height:560px}.about-image img{width:100%;height:100%;object-fit:cover}.about-copy h2{font-size:56px;margin-bottom:24px}.about-copy>p:not(.eyebrow){color:var(--muted);max-width:470px}.about-copy .text-link{margin-top:16px}.services{text-align:center}.services h2{font-size:58px;margin-bottom:50px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:left}.service-grid img{width:100%;height:310px;object-fit:cover}.service-grid h3{font:400 28px 'Cormorant Garamond',serif;margin:17px 0 4px}.service-grid p{color:var(--muted);font-size:12px;margin:0;max-width:320px}.quote{text-align:center;padding:92px 20px;background:#ebe6dc}.quote p{font:italic 32px/1.25 'Cormorant Garamond',serif;max-width:750px;margin:0 auto 20px}.quote span{font-size:9px;letter-spacing:.2em;color:var(--accent)}.contact{text-align:center;padding-top:115px;padding-bottom:110px}.contact h2{font-size:64px}.contact>p:not(.eyebrow){color:var(--muted);margin:20px 0 27px}.button{display:inline-block;background:var(--ink);color:white;padding:13px 34px;text-transform:uppercase;letter-spacing:.14em;font-size:10px;transition:background .2s}.button:hover{background:var(--accent)}.contact small{display:block;color:var(--muted);font-size:10px;margin-top:12px}footer{border-top:1px solid var(--line);padding:28px 6vw;display:flex;justify-content:space-between;align-items:center}footer .wordmark{font-size:16px}footer p,footer>a:last-child{font-size:9px;letter-spacing:.08em;color:var(--muted)}@media(max-width:760px){.site-header{height:70px;padding:0 6vw}.menu-toggle{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:10px}.nav{display:none;position:absolute;z-index:3;top:70px;left:0;right:0;padding:20px 6vw 25px;background:var(--paper);flex-direction:column;align-items:flex-start;gap:18px}.nav.open{display:flex}.hero{height:72vh;min-height:460px;grid-template-columns:1fr 1.1fr}.hero-three{display:none}.section-pad{padding:75px 7vw}.intro{padding-top:82px;padding-bottom:85px}.intro h1{font-size:54px}.section-heading{align-items:start;gap:18px;flex-direction:column}.section-heading h2{font-size:46px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:350px 230px;gap:18px}.gallery-large{grid-column:span 2;grid-row:auto}.gallery-tall{grid-row:auto}.gallery img{height:calc(100% - 45px)}.gallery figcaption{font-size:16px}.gallery figcaption span{float:none;display:block;font-size:8px;padding-top:0}.about{grid-template-columns:1fr;gap:34px}.about-image{height:420px}.about-copy h2,.services h2{font-size:48px}.service-grid{grid-template-columns:1fr;gap:34px}.service-grid img{height:340px}.quote{padding:70px 8vw}.quote p{font-size:27px}.contact h2{font-size:50px}footer{padding:24px 6vw;flex-wrap:wrap;gap:16px}footer p{order:3;width:100%;margin:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.travel-section{background:#f0ede6}.travel-section .section-heading{margin-bottom:8px}.travel-section .section-heading h2{font-size:clamp(38px,5vw,58px)}.travel-intro{color:var(--muted);margin:0 0 28px}.travel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.travel-grid figure{margin:0;min-width:0}.travel-grid img{display:block;width:100%;height:340px;object-fit:cover}.travel-grid figcaption{padding-top:9px;font:italic 18px 'Cormorant Garamond',serif}.
@media(max-width:760px){.travel-grid{grid-template-columns:1fr;gap:18px}.travel-grid img{height:300px}.travel-section .section-heading h2{font-size:42px}}

.about-collage{position:relative;height:600px;background:transparent}.about-collage .about-photo-main{position:absolute;top:0;left:0;width:76%;height:80%;object-fit:cover;object-position:center 55%}.about-collage .about-photo-inset{position:absolute;right:0;bottom:4%;width:52%;height:47%;object-fit:cover;object-position:center;border:10px solid #f0ede6}.collage-note{position:absolute;left:8%;bottom:5%;padding:9px 14px;background:var(--paper);font:italic 16px 'Cormorant Garamond',serif;color:var(--muted)}@media(max-width:760px){.about-image.about-collage{height:450px}.about-collage .about-photo-main{width:78%;height:78%}.about-collage .about-photo-inset{width:52%;height:45%;border-width:7px}.collage-note{left:5%;bottom:4%;font-size:14px}}

.portrait-pair{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:7px;height:340px}.portrait-pair img{display:block;width:100%;height:100%;object-fit:cover}.portrait-pair img:first-child{object-position:center 43%}.portrait-pair img:last-child{object-position:center 54%}


.hero.hero-single{display:block;height:min(64vw,760px);min-height:520px}.hero-single .hero-image{position:absolute;inset:0}.hero-single .hero-image img{object-fit:cover;object-position:center 68%}.hero-single::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.05) 45%,rgba(20,18,16,.48) 100%);pointer-events:none}.hero-single .hero-note{z-index:1;bottom:48px;left:8vw;transform:none;background:transparent;color:#fff;padding:0;font-size:20px;letter-spacing:.04em;text-shadow:0 1px 14px rgba(0,0,0,.3)}@media(max-width:760px){.hero.hero-single{height:72vh;min-height:490px}.hero-single .hero-image img{object-position:50% 68%}.hero-single .hero-note{left:7vw;bottom:32px;font-size:17px}}

.gallery-large img{object-fit:contain;background:#e9e6df}
.gallery-large img{clip-path:inset(0 0 6% 0)}
.gallery-large img{object-position:50% 50%;margin-inline:auto}

/* Soft, paper-toned opening image */
.hero-single .hero-image{background:var(--paper)}
.hero-single .hero-image img{opacity:.82}
.hero-single::after{background:linear-gradient(180deg,rgba(248,246,241,.10) 0%,rgba(248,246,241,.06) 55%,rgba(248,246,241,.46) 100%)}
.hero-single .hero-note{color:var(--ink);text-shadow:0 1px 12px rgba(248,246,241,.5)}

/* Give the featured graduation portrait more room and a softened monochrome finish */
.gallery{grid-template-columns:1.35fr .65fr}
.gallery-large img{filter:grayscale(1);opacity:.86;background:var(--paper)}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr}}

/* Balance the FSU frame with the centered arches portrait */
.gallery{grid-template-columns:1fr 1fr}
.gallery-large img{object-position:50% 50%}
.gallery-tall img{object-fit:contain;object-position:center;background:var(--paper)}

/* Four aligned gallery frames; the arches remain centered */
.gallery{grid-template-columns:1fr 1fr;grid-template-rows:370px 370px;align-items:stretch}
.gallery-large{grid-row:auto}
.gallery-large img{object-position:50% 50%}
.gallery-tall img,.gallery-bottom-left img{object-fit:contain;object-position:center;background:var(--paper)}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:350px 250px 250px}.gallery-large{grid-column:span 2}.gallery-large img{object-fit:contain}}

/* Restore the arches feature on the left; retain FSU and campus images on the right */
.gallery{grid-template-columns:1fr 1fr;grid-template-rows:410px 330px}
.gallery-large{grid-column:auto;grid-row:span 2}
.gallery-large img{object-position:50% 50%}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:350px 230px 230px}.gallery-large{grid-column:span 2;grid-row:auto}}

/* Match the two right-hand campus photo frames */
.gallery{grid-template-rows:370px 370px}

/* Landscape crop for the lower-right University of Florida photo */
.gallery-bottom-left img{object-fit:cover;object-position:50% 0%;}

.video-feature{display:flex;flex-direction:column;align-items:center;gap:20px}
.video-preview{position:relative;display:block;width:min(100%,920px);overflow:hidden}
.video-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .35s ease}
.video-preview:hover img{transform:scale(1.025)}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:68px;height:68px;padding-left:4px;border-radius:50%;background:rgba(248,246,241,.9);color:var(--ink);font-size:22px;box-shadow:0 4px 20px rgba(30,25,20,.18)}
.video-link{font-size:10px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:6px}

/* Preserve each photograph's own orientation as the viewport changes */
.hero.hero-single{height:min(62vw,680px);min-height:430px;aspect-ratio:auto}
.hero-single .hero-image img{object-fit:cover;object-position:center 58%}
.travel-grid img,.service-grid img{display:block;width:100%;height:auto;object-fit:contain}
.service-image-crop{width:100%;aspect-ratio:3/4;overflow:hidden}
.service-image-crop img{width:100%;height:100%;object-fit:cover;object-position:center bottom;transform:scale(1.35);transform-origin:center bottom}
.travel-grid{display:block;columns:4;column-gap:4px}
.travel-grid figure{position:relative;display:inline-block;vertical-align:top;width:100%;margin:0 0 4px;break-inside:avoid;overflow:hidden}
.travel-grid img{display:block;width:100%;height:auto;object-fit:contain;transition:transform .4s ease}
.travel-grid figure:hover img{transform:scale(1.025)}
.travel-grid figcaption{position:absolute;right:0;bottom:0;left:0;padding:34px 12px 11px;background:linear-gradient(transparent,rgba(27,24,21,.72));color:#fff;font:italic 16px/1.2 'Cormorant Garamond',serif}
@media(max-width:900px){.travel-grid{columns:3}}
@media(max-width:600px){.travel-grid{columns:2;column-gap:3px}.travel-grid figure{margin-bottom:3px}.travel-grid figcaption{padding:30px 8px 8px;font-size:14px}}
.about-mosaic{display:grid;position:relative;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;height:560px;overflow:hidden}
.about-mosaic img{position:static;width:100%;height:100%;min-height:0;object-fit:cover;border:0}
.about-mosaic .mosaic-hydrangeas{grid-column:1;grid-row:1 / span 2;object-position:center}
.about-mosaic .mosaic-boots{grid-column:2;grid-row:1}
.about-mosaic .mosaic-drink{grid-column:2;grid-row:2}
.about-mosaic .mosaic-picnic{grid-column:1;grid-row:3}
.about-mosaic .mosaic-house{grid-column:2;grid-row:2}
.about-mosaic .mosaic-drink{grid-column:2;grid-row:3}
.about-mosaic .collage-note{z-index:1;left:10px;bottom:10px;background:rgba(248,246,241,.9)}
@media(max-width:760px){.about-mosaic{height:450px;gap:6px}.about-mosaic .collage-note{left:8px;bottom:8px}}

.about-mosaic{grid-template-rows:.7fr .7fr 1.6fr}
.about-mosaic .mosaic-drink,.about-mosaic .mosaic-picnic{object-fit:contain;background:#f0ede6}

.intro-cta{font-size:13px;padding:13px 24px;border:1px solid var(--line)}

/* One dense photo wall keeps ACIS and personal photographs together. */
.travel-section{padding-bottom:0}
.travel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(120px,calc(13.325vw - 3px),175px);grid-auto-flow:dense;gap:6px}
.travel-grid figure{position:relative;display:block;vertical-align:initial;width:auto;margin:0;min-width:0;break-inside:auto;overflow:hidden}
.travel-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:none}
.travel-grid figure:hover img{transform:none}
.travel-grid .photo-campus,.travel-grid .photo-ceiling,.travel-grid .photo-equestrian,.travel-grid .photo-winged,.travel-grid .photo-monument,.travel-grid .photo-house,.travel-grid .photo-boots,.travel-grid .photo-picnic,.travel-grid .photo-drink{grid-row:span 2}
.travel-grid .photo-santorini,.travel-grid .photo-hydrangeas,.travel-grid .photo-dome{grid-column:span 2;grid-row:span 2}
.travel-grid .photo-sky-statue{grid-column:span 2;grid-row:span 3;object-position:center 44%}
.about{display:block;padding-top:76px;padding-bottom:90px}
.about-copy{max-width:680px;margin:0 auto}
@media(max-width:900px){.travel-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(120px,calc(15.6vw - 3px),155px)}}
@media(max-width:760px){.travel-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(140px,calc(28.6vw - 2px),175px);gap:5px}.travel-section{padding-bottom:0}.about{padding:64px 6vw}}

/* Give the personal photos larger frames while dense flow packs them into the wall. */
.travel-grid .photo-house{grid-column:auto;grid-row:span 3}
.travel-grid .photo-boots{grid-column:auto;grid-row:span 2}
.travel-grid .photo-sky-statue{grid-column:span 2;grid-row:span 3;object-position:center 44%}
.travel-grid .photo-hydrangeas{grid-column:span 2;grid-row:span 2}
@media(max-width:760px){
  .travel-grid .photo-house{grid-column:auto;grid-row:span 3}
  .travel-grid .photo-boots{grid-column:auto;grid-row:span 2}
  .travel-grid .photo-sky-statue{grid-column:span 2;grid-row:span 2}
  .travel-grid .photo-hydrangeas{grid-column:auto;grid-row:span 2}
}
