/* SurfSide REI — clear Caribbean water, warm sand, and one shared type system. */
:root {
  --ink: #123d4b;
  --deep: #084c61;
  --navy: #084c61;
  --sea: #006f86;
  --water: #008ca6;
  --aqua: #35c7d1;
  --shallows: #e7f7f7;
  --sand: #f2e5cf;
  --foam: #fffcf7;
  --paper: #ffffff;
  --wash: #f2e5cf;
  --cream: #fff7e9;
  --mist: #d9f3f2;
  --muted: #47646c;
  --coral: #006b82;
  --line: #bccdc9;
  --display: "Manrope", Arial, sans-serif;
  --body: "Instrument Sans", Arial, sans-serif;
  font-family: var(--body);
  color: var(--ink);
  background: var(--foam);
}
html { scroll-behavior: auto; }
body { background: var(--foam); font-family: var(--body); font-size: 1rem; }
h1,h2,h3 { font-family: var(--display); font-weight: 800; letter-spacing: -.03em; }
:is(.property-page,.regional-page,.about-page) :is(h1,h2,h3) { letter-spacing: -.025em; }
a,button,input,textarea,select { font-family: inherit; }
a,button { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--sea); outline-offset: 5px; }
.site-header {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  gap: 24px; min-height: 88px; padding: 14px 4.5vw;
  border-top: 4px solid var(--water); border-bottom: 1px solid var(--line);
  background: var(--paper); color: var(--ink); position: sticky; top: 0; z-index: 50;
}
.header-nav { display: flex; gap: 28px; font-size: .875rem; align-items: center; }
.header-nav a { padding: 12px 0; }
.header-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.brand { justify-self: center; display: flex; align-items: center; }
.brand-lockup { display: inline-flex; align-items: center; gap: 11px; }
.brand-lockup__crab { width: 54px; height: 44px; object-fit: contain; }
.brand-lockup__type { display: flex; align-items: baseline; gap: 8px; }
.brand-lockup__name { font-family: var(--display); font-size: 1.9rem; font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.brand-lockup__descriptor { display: inline; width: auto; font: 600 .6875rem/1 var(--body); letter-spacing: .1em; padding: 0; }
.brand-lockup__descriptor i { display: none; }
.header-contact, .primary-link, .button-solid {
  background: var(--sea); border: 1px solid var(--sea); color: #fff;
  border-radius: 4px; min-height: 48px; font-size: .875rem; font-weight: 600;
  transition: background-color 160ms, border-color 160ms;
}
.header-contact { justify-self: end; display: flex; align-items: center; gap: 22px; padding: 12px 18px !important; }
.header-contact:hover, .primary-link:hover, .button-solid:hover { background: var(--deep); border-color: var(--deep); }
.mobile-menu { display: none; position: relative; margin: 0; }
.mobile-menu summary { list-style: none; cursor: pointer; padding: 10px 12px; min-height: 44px; border: 1px solid var(--line); border-radius: 4px; font-size: .875rem; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu nav { display: grid; position: absolute; right: 0; top: 52px; min-width: 240px; padding: 12px; background: var(--deep); color: var(--paper); border-radius: 4px; box-shadow: 0 12px 30px #084c6130; }
.mobile-menu nav a { padding: 13px 12px; border-bottom: 1px solid #ffffff35; }
.intro {
  max-width: none; background: var(--shallows); border-bottom: 1px solid #b3dddf;
  padding: 32px 4.5vw 34px; gap: 5vw;
}
.intro h1 { font-size: clamp(2.2rem,4.1vw,3.6rem); line-height: 1.12; }
.intro h1 span { color: var(--sea); }
.intro-note { font-size: 1rem; max-width: 380px; }
.intro-note>a { font-size: .875rem; color: var(--sea); border-color: var(--sea); }
.homes { padding-top: 22px; padding-bottom: 52px; }
.property-grid { gap: 3vw; }
.property-location { border-top: 0; padding: 0 0 13px; color: var(--sea); font-size: .875rem; }
.property-number { color: var(--muted); }
.home-image { border-radius: 5px 5px 0 0; aspect-ratio: 1.85; }
.all-photos { background: var(--paper); border-radius: 3px; min-height: 44px; font-size: .875rem; top: 12px; right: 12px; }
.all-photos:hover { background: var(--sand); }
.photo-controls { background: var(--sand); border-color: #c7b99f; gap: 24px; padding: 0 16px; }
.photo-controls button { font-size: .875rem; min-height: 46px; }
.photo-controls button[aria-pressed=true] { color: var(--sea); }
.photo-controls button::after { background: var(--sea); height: 3px; }
.property-title { margin-top: 18px; }
.property-title h2 { font-size: clamp(1.8rem,2.6vw,2.35rem); line-height: 1.22; }
.property-title>p, .property-description, .availability-link { font-size: .875rem; }
.property-facts { gap: 26px; padding: 13px 0 17px; }
.property-facts dd { font-size: 1.125rem; }
.property-facts dd span { font-size: .875rem; }
.availability-link { color: var(--sea); min-height: 46px; }
.property-actions { grid-template-columns: 1fr 1fr; gap: 16px; }
.primary-link { padding: 12px 18px; }
.contact-section { background: var(--shallows); color: var(--ink); border-top: 1px solid #b3dddf; padding: 48px 4.5vw; }
.contact-photo { border-radius: 5px; }
.eyebrow { color: var(--sea); font-size: .875rem; font-weight: 600; letter-spacing: .025em; text-transform: none; }
.contact-copy p { font-size: 1rem; color: var(--muted); }
.email-link { color: var(--sea); border-color: var(--sea); overflow-wrap: anywhere; }
.about-link { font-size: .875rem; }
.contact-inquiries>a { border-color: #a9cbcd; font-size: 1.5rem; }
.contact-inquiries small { color: var(--muted); font-size: .875rem; }
/* Property facts and contact stay beside the main photograph at desktop sizes. */
.property-opening {
  display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr);
  gap: 4vw; align-items: center; padding: 34px 4.5vw 40px;
  background: var(--foam); border-bottom: 1px solid var(--line);
}
.property-masthead { display: flex; flex-direction: column; align-items: flex-start; padding: 0; gap: 16px; }
.property-masthead h1 { font-size: clamp(2.5rem,4.4vw,4.5rem); line-height: 1.08; text-wrap: auto; }
.property-masthead .eyebrow { margin: 0; }
.property-address { font-size: 1rem; max-width: none; margin: 0; color: var(--muted); }
.property-top-actions { gap: 20px; flex-wrap: wrap; margin: 2px 0 0; }
.property-top-actions .button-solid,.property-top-actions .text-button { font-size: .875rem; }
.property-top-actions .button-solid { padding: 12px 20px; }
.fact-strip { display: flex; width: 100%; margin: 4px 0 0; border-top: 1px solid #a9cbcd; border-bottom: 1px solid #a9cbcd; }
.fact-strip div { align-items: flex-start; justify-content: flex-start; flex-direction: column; gap: 6px; padding: 16px 24px; border: 0; }
.fact-strip div:first-child { padding-left: 0; }
.fact-strip strong { font-weight: 600; font-size: 1.75rem; color: var(--sea); }
.fact-strip span { font-size: .875rem; white-space: nowrap; }
.property-hero { margin: 0; background: var(--sand); border-radius: 5px; overflow: hidden; }
.property-hero img { width: 100%; height: auto; max-height: 440px; aspect-ratio: 1.45; object-fit: cover; object-position: center; }
.property-nav { top: 88px; background: var(--paper); gap: 24px; padding: 10px 4.5vw; }
.property-nav a { font-size: .875rem; min-height: 44px; }
.property-nav .property-nav-inquiry { background: var(--sea); color: #fff; border-radius: 4px; padding: 11px 18px; }
.property-nav .property-nav-inquiry:hover { background: var(--deep); color: #fff; }
#overview,#film,#gallery,#rooms,#details,#location,#inquiry { scroll-margin-top: 166px; }
.property-intro { padding: 28px 4.5vw; }
.property-film,.property-film--portrait { background: var(--deep); color: var(--paper); }
.property-film__frame { background: #05394b; border-radius: 4px; }
.property-gallery { background: var(--paper); }
.gallery-filters button { background: var(--paper); border-radius: 4px; font-size: .875rem; }
.gallery-filters button[aria-pressed=true] { background: var(--sea); border-color: var(--sea); color: #fff; }
.gallery-collage { border-radius: 5px; overflow: hidden; }
.tour-section { background: var(--foam); }
.tour-group { border-color: #c7b99f; }
.tour-group-copy p { font-size: 1rem; }
.tour-view-group { color: var(--sea); }
.property-details { background: var(--paper); }
.location-section { background: var(--shallows); }
.location-map iframe { border-radius: 5px; background: #b7dedf; }
.inquiry-section { background: var(--sand); }
.inquiry-form input,.inquiry-form textarea,.inquiry-form select { background: var(--paper); border: 1px solid #7c969b; border-radius: 4px; }
.inquiry-form label>span { font-size: .875rem; }
.form-status--error { color: #9a342c; }
.about-profile { background: var(--shallows); min-height: 0; padding: 48px 7vw; }
.about-name h1 { font-size: clamp(2.7rem,5vw,4.7rem); }
.about-profile figure { max-height: 570px; border-radius: 5px; }
.about-links { background: var(--sand); }
.lightbox-backdrop { background: #05394bfa; }
/* Identical footer structure on the homepage and all interior pages. */
.site-footer {
  display: grid; grid-template-columns: 1.5fr .7fr .8fr; align-items: start;
  gap: 36px; padding: 42px 4.5vw 24px; color: var(--paper); background: var(--deep);
}
.footer-mark { justify-self: start; }
.footer-mark .brand-lockup { gap: 12px; flex-direction: row; align-items: center; }
.footer-mark .brand-lockup__name { font-size: 2.3rem; font-weight: 600; }
.footer-mark .brand-lockup__crab { width: 62px; height: 48px; filter: brightness(0) invert(1); }
.footer-links,.footer-social { display: grid; gap: 4px; font-size: .875rem; }
.footer-links a,.footer-social a { padding: 9px 0; border-bottom: 1px solid #ffffff40; }
.footer-social p { margin: 0 0 6px; font-size: .875rem; }
.footer-links a:hover,.footer-social a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-legal { grid-column: 1/-1; display: flex; justify-content: space-between; gap: 20px; align-items: center; border-top: 1px solid #ffffff40; padding-top: 22px; font-size: .8125rem; }
.motion-toggle,#motion-toggle { color: var(--paper); border: 1px solid #ffffff70; background: transparent; border-radius: 4px; padding: 10px 13px; font-size: .875rem; min-height: 44px; }
.site-footer :focus-visible { outline-color: var(--aqua); }
@media(max-width:1100px) {
  .property-actions { grid-template-columns: 1fr; gap: 0; }
  .availability-link { justify-self: start; }
  .property-opening { grid-template-columns: 1fr 1.1fr; gap: 28px; }
  .fact-strip div { padding-right: 16px; padding-left: 16px; }
  .header-nav { gap: 20px; }
}
@media(max-width:760px) {
  .site-header { display: flex; justify-content: space-between; min-height: 80px; padding: 12px 5vw; gap: 14px; }
  .site-header>.header-nav,.site-header>.header-contact { display: none; }
  .mobile-menu { display: block; }
  .brand-lockup__name { font-size: 1.7rem; }
  .brand-lockup__crab { width: 45px; height: 38px; }
  .brand-lockup__descriptor { font-size: .6875rem; }
  .intro { display: block; padding: 26px 5vw; }
  .intro h1 { font-size: clamp(2rem,7.6vw,3.2rem); line-height: 1.12; }
  .intro h1 span { white-space: normal; }
  .intro-note { font-size: 1rem; margin-top: 16px; max-width: none; }
  .intro-note>a { display: none; }
  .homes { padding: 20px 5vw 36px; }
  .location-jumps { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 24px; }
  .location-jumps>a { background: var(--paper); border: 1px solid #8cafb5; border-radius: 4px; font-size: .875rem; }
  .location-jumps small { font-size: .8125rem; }
  .property-grid { grid-template-columns: 1fr; gap: 32px; }
  .home-image { aspect-ratio: 1.55; }
  .property-title { display: block; }
  .property-title h2 { font-size: 2rem; }
  .property-title>p { margin-top: 6px; font-size: .875rem; }
  .property-description { font-size: .875rem; }
  .property-facts { gap: 22px; }
  .property-actions { grid-template-columns: 1fr; gap: 0; }
  .primary-link { font-size: .875rem; }
  .availability-link { justify-self: start; font-size: .875rem; }
  .all-photos { font-size: .8125rem; min-height: 44px; }
  .photo-controls button { font-size: .875rem; }
  .contact-section { padding: 36px 5vw; grid-template-columns: 90px minmax(0,1fr); gap: 22px; }
  .contact-copy>.eyebrow { font-size: .8125rem; letter-spacing: 0; }
  .contact-copy h2 { font-size: 2rem; }
  .contact-copy p { font-size: 1rem; }
  .email-link { font-size: .875rem; white-space: normal; gap: 6px; }
  .about-link { font-size: .875rem; }
  .contact-inquiries { grid-template-columns: 1fr; gap: 16px; }
  .contact-inquiries>.eyebrow,.contact-inquiries small { font-size: .875rem; }
  .contact-inquiries>a { font-size: 1.4rem; padding: 12px 0 18px; }
  .property-opening { grid-template-columns: 1fr; gap: 26px; padding: 28px 5vw; }
  .property-masthead { gap: 14px; }
  .property-masthead h1 { font-size: clamp(2.4rem,9.5vw,3.75rem); }
  .property-address { font-size: .875rem; }
  .property-hero img { max-height: none; aspect-ratio: auto; object-fit: contain; }
  .fact-strip div { padding: 15px 20px; }
  .fact-strip strong { font-size: 1.5rem; }
  .fact-strip span { font-size: .875rem; }
  .property-nav { top: 80px; justify-content: flex-start; gap: 22px; }
  .mobile-property-inquiry { background: var(--sea); font-size: .875rem; }
  .about-profile { padding: 32px 5vw 40px; }
  .about-profile figure { max-height: 520px; }
  .about-name h1 { font-size: 2.7rem; }
  .site-footer { grid-template-columns: 1fr 1fr; padding: 36px 5vw 24px; gap: 28px; }
  .footer-mark { grid-column: 1/-1; }
  .footer-mark .brand-lockup__name { font-size: 2rem; }
  .footer-legal { flex-wrap: wrap; font-size: .8125rem; }
}
@media(max-width:360px) {
  .brand-lockup { gap: 8px; }
  .brand-lockup__name { font-size: 1.5rem; }
  .brand-lockup__crab { width: 39px; }
  .fact-strip div { padding-right: 12px; padding-left: 12px; }
  .contact-section { grid-template-columns: 1fr; }
  .contact-photo { width: 110px; }
}
/* Photography-led page refinements. */
.property-masthead h1 { font-size:clamp(2.5rem,4vw,3.8rem); }
.property-opening { background:var(--foam); }
.property-hero img { aspect-ratio:1.6; object-position:center 56%; }
.property-gallery { padding:44px 4.5vw; }
.gallery-heading { margin-bottom:20px; }
.gallery-controls { display:flex; align-items:center; gap:20px; max-width:1440px; margin:0 auto 22px; }
.gallery-filters { flex:1; margin:0; }
.gallery-room-select { display:none; }
.gallery-rooms-link { color:var(--sea); display:flex; gap:12px; align-items:center; min-height:44px; font-size:.875rem; white-space:nowrap; text-decoration:underline; text-underline-offset:5px; }
.gallery-collage { grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:repeat(2,minmax(160px,23vh)); }
.gallery-collage--filtered { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto; }
.tour-section { padding:36px 4.5vw 44px; }
.tour-heading { margin-bottom:20px; }
.tour-groups { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 32px; }
.tour-group { display:grid; grid-template-columns:140px minmax(0,1fr); gap:22px; align-items:start; padding:22px 0; border-color:var(--line); }
.tour-group-photo { width:100%; aspect-ratio:1.15; position:relative; overflow:hidden; border:0; padding:0; border-radius:5px; cursor:zoom-in; background:var(--sand); }
.tour-group-photo img { object-fit:cover; }
.tour-group-copy h3 { font-size:1.2rem; margin-bottom:8px; }
.tour-group-copy p { font-size:1rem; margin-bottom:4px; }
.tour-group--suite { grid-column:1/-1; grid-template-columns:180px minmax(0,1fr); background:var(--shallows); border:1px solid #c5e7e7; border-radius:6px; padding:22px; align-items:center; }
.tour-group-copy .suite-inquiry-note { margin-top:12px; font-size:.875rem; }
.suite-inquiry-note a { color:var(--sea); text-decoration:underline; text-underline-offset:4px; }
.property-film { padding:40px max(4.5vw,calc((100vw - 1200px)/2)); background:var(--shallows); color:var(--ink); }
.property-film__copy { margin-bottom:22px; }
.property-film__copy h2 { font-size:clamp(1.7rem,2.8vw,2.5rem); }
.property-film__frame { max-width:1000px; margin:auto; }
.property-film--landscape video { aspect-ratio:16/9; max-height:600px; }
.property-film--portrait { display:grid; grid-template-columns:1fr minmax(260px,404px); gap:7vw; align-items:center; padding:40px max(7vw,calc((100vw - 1000px)/2)); }
.property-film--portrait .property-film__frame { max-width:340px; width:100%; }
.property-film--portrait video { aspect-ratio:404/720; width:100%; height:auto; max-height:none; object-fit:cover; }
.property-details { padding:44px 4.5vw; }
.location-section { padding:44px 4.5vw; background:var(--foam); border-top:1px solid var(--line); }
.location-map iframe { height:460px; }
.inquiry-section { padding:44px 4.5vw; gap:4vw; align-items:start; border-top:0; }
.inquiry-person { display:flex; gap:16px; align-items:center; margin-bottom:24px; }
.inquiry-person img { width:72px; height:72px; object-fit:cover; object-position:center 38%; border-radius:50%; }
.inquiry-person .eyebrow { margin:0 0 4px; }
.inquiry-person span { font-size:1rem; font-weight:600; }
.inquiry-intro h2 { font-size:clamp(1.8rem,3vw,2.65rem); max-width:16ch; }
.inquiry-form { background:var(--paper); border:1px solid #ddcfb8; border-radius:8px; padding:28px; gap:20px; }
.inquiry-form input,.inquiry-form textarea,.inquiry-form select { background:var(--foam); border-color:#9dafaf; }
.about-profile { grid-template-columns:1.1fr .9fr; gap:7vw; background:var(--foam); padding:44px 7vw; }
.about-name h1 { font-size:clamp(2.5rem,4.5vw,4rem); }
.about-profile figure { aspect-ratio:1; width:100%; max-width:440px; max-height:none; justify-self:end; margin:0; }
.about-profile figure img { object-position:center 44%; }
.about-bio { max-width:44ch; margin-top:20px; }
.about-related { padding:34px 7vw 44px; background:var(--shallows); }
.about-related>h2 { font-size:1.4rem; margin:0 0 20px; }
.about-related-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.about-related-grid--single { grid-template-columns:1fr; }
.about-home-card,.about-location-card { display:grid; grid-template-columns:42% minmax(0,1fr); align-items:center; gap:26px; padding:16px; background:var(--paper); border:1px solid #c5dddd; border-radius:7px; }
.about-home-card { max-width:850px; }
.about-home-card>img,.about-location-card>img { display:block; width:100%; height:auto; aspect-ratio:1.6; object-fit:cover; border-radius:4px; }
.about-home-card .eyebrow,.about-location-card .eyebrow { margin:0 0 8px; }
.about-home-card h3,.about-location-card h3 { font-size:1.7rem; line-height:1.2; }
.about-home-card h3+p { font-size:.875rem; color:var(--muted); margin-top:10px; line-height:1.6; }
.about-card-action { display:flex; gap:20px; color:var(--sea); font-size:.875rem; padding-top:16px; font-weight:600; }
.about-home-card:hover .about-card-action,.about-location-card:hover .about-card-action { text-decoration:underline; text-underline-offset:4px; }
.site-footer { grid-template-columns:1fr 1.2fr .8fr; padding:30px 4.5vw 20px; gap:22px 36px; }
.footer-mark .brand-lockup__name { font-size:1.9rem; }
.footer-mark .brand-lockup__crab { width:50px; height:40px; }
.footer-links { grid-template-columns:1fr 1fr; column-gap:24px; }
.footer-links a,.footer-social a { min-height:44px; padding:10px 0; border-bottom:0; }
.footer-social { grid-template-columns:1fr; gap:0; }
.footer-social p { margin-bottom:0; }
.footer-legal { padding-top:14px; }
@media(max-width:1050px) {
  .tour-group { grid-template-columns:110px minmax(0,1fr); gap:16px; }
  .about-related-grid { grid-template-columns:1fr; }
  .footer-links { column-gap:16px; }
}
@media(max-width:760px) {
  .site-header { min-height:76px; padding:8px 5vw; }
  .brand-lockup__crab { height:32px; width:42px; }
  .property-opening { grid-template-columns:minmax(0,1fr); padding:24px 5vw; gap:20px; }
  .property-masthead { min-width:0; }
  .property-top-actions { width:100%; gap:12px; }
  .fact-strip { justify-content:space-between; gap:12px; }
  .fact-strip div { padding:14px 0; min-width:0; }
  .fact-strip span { white-space:normal; font-size:.8125rem; }
  .property-masthead h1 { font-size:clamp(2rem,8.4vw,3rem); }
  .property-hero img { aspect-ratio:1.6; object-fit:cover; }
  .property-page .property-nav { top:76px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:4px 5vw; overflow:visible; }
  .property-nav a { text-align:center; min-height:44px; padding:11px 4px; }
  .property-nav .property-nav-extra,.property-nav .property-nav-inquiry { display:none; }
  #overview,#film,#gallery,#rooms,#details,#location,#inquiry { scroll-margin-top:140px; }
  .property-intro { padding:26px 5vw; gap:8px; }
  .property-gallery { padding:30px 5vw; }
  .gallery-heading { flex-direction:row; align-items:center; gap:16px; margin-bottom:18px; }
  .gallery-heading h2 { font-size:1.85rem; }
  .gallery-view-all { font-size:.875rem; }
  .gallery-controls { align-items:end; gap:18px; margin-bottom:20px; }
  .gallery-filters { display:none; }
  .gallery-room-select { display:grid; gap:7px; flex:1; min-width:0; font-size:.875rem; }
  .gallery-room-select select { width:100%; min-height:46px; padding:10px 12px; color:var(--ink); background:var(--foam); border:1px solid #9dafaf; border-radius:4px; font-size:1rem; }
  .gallery-collage { grid-template-columns:1fr 1fr; grid-template-rows:220px 135px 135px; }
  .gallery-collage--filtered { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .tour-section { padding:28px 5vw; }
  .tour-groups { grid-template-columns:1fr; gap:0; }
  .tour-group { grid-template-columns:100px minmax(0,1fr); gap:16px; padding:20px 0; }
  .tour-group-photo { aspect-ratio:1; }
  .tour-group-copy h3 { font-size:1.1rem; }
  .tour-group-copy p { font-size:.9375rem; }
  .tour-group--suite { grid-template-columns:100px minmax(0,1fr); padding:16px; margin-top:12px; }
  .property-film,.property-film--portrait { display:block; padding:28px 5vw; }
  .property-film--portrait .property-film__frame { max-width:320px; }
  .property-details,.location-section { padding:30px 5vw; }
  .location-map iframe { height:340px; }
  .inquiry-section { padding:30px 5vw; gap:24px; }
  .inquiry-person { margin-bottom:18px; }
  .inquiry-person img { height:60px; width:60px; }
  .inquiry-intro h2 { max-width:none; }
  .inquiry-form { padding:20px 16px; gap:18px; }
  .about-profile { grid-template-columns:1fr; gap:26px; padding:30px 5vw; }
  .about-name h1 { font-size:2.4rem; }
  .about-profile figure { aspect-ratio:1.1; max-width:none; }
  .about-related { padding:26px 5vw 32px; }
  .about-home-card,.about-location-card { grid-template-columns:34% minmax(0,1fr); gap:16px; padding:12px; }
  .about-home-card>img,.about-location-card>img { aspect-ratio:.9; }
  .about-home-card h3,.about-location-card h3 { font-size:1.3rem; }
  .about-card-action { padding-top:12px; }
  .site-footer { grid-template-columns:1fr; gap:18px; padding:28px 5vw 18px; }
  .footer-mark { grid-column:auto; }
  .footer-links { grid-template-columns:1fr 1fr; gap:0 20px; }
  .footer-social { display:flex; flex-wrap:wrap; gap:0 24px; align-items:center; }
  .footer-social p { flex-basis:100%; }
  .footer-legal { gap:12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; } }
