:root { --blue: #a6caec; --ink: #152e40; --accent: #eefb75; }
.hero-content > * { animation: none !important; }
.text-motion-pending { opacity: 0; transform: translate3d(0,15%,0) scale(.9); transform-origin: 50% 50%; }
@media (prefers-reduced-motion: reduce), print {
  .text-motion-pending { opacity: 1 !important; transform: none !important; }
}

/* Origin travel journals. */
.journey-article { background: #fff; }
.home-journal { border-top: 12px solid var(--blue); scroll-margin-top: 24px; }
.home-journal .journal-header h2 { font: 500 clamp(46px,6vw,88px)/1.03 'Barlow Condensed',sans-serif; letter-spacing: -1px; max-width: 950px; margin: 24px 0; }
.content-section.debut-heading { background: var(--blue); padding: 40px 6vw; }
.content-section.debut-heading h2 { margin: 0; font: 500 clamp(36px,4vw,52px)/1.1 'DM Sans',sans-serif; }
.home-journal .journal-layout { display: block; }
.home-journal .journal-content { max-width: 1050px; margin-inline: auto; }
.home-journal .scroll-photo-frame > img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; }
.journal-header { max-width: 1180px; margin: 0 auto; padding: 45px 6vw 55px; }
.journal-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font: 11px/1.7 'DM Sans',sans-serif; margin-bottom: 45px; }
.journal-breadcrumb a { border-bottom: 1px solid #163c5060; }
.journal-header h1 { font: 500 clamp(46px,6vw,88px)/1.03 'Barlow Condensed',sans-serif; letter-spacing: -1px; max-width: 950px; margin: 24px 0; }
.journal-lead { font: 400 clamp(16px,1.7vw,20px)/1.85 'Lora',serif; max-width: 800px; }
.journal-meta { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 28px; font: 11px/1.8 'DM Sans',sans-serif; }
.journal-meta span:first-child { background: #a6caec55; padding: 5px 12px; border-radius: 30px; }
.journal-meta span:last-child { padding: 5px 0; }
.journal-cover { margin: 0 4.5vw; }
.journal-cover img { display: block; width: 100%; height: clamp(300px,48vw,650px); object-fit: cover; object-position: 50% 43%; }
.journal-cover figcaption { font: 11px/1.7 'DM Sans',sans-serif; padding: 12px 0; }
.journal-layout { max-width: 1260px; margin: 0 auto; padding: 55px 5vw 80px; display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 6vw; }
.journal-sidebar { position: sticky; top: 115px; align-self: start; display: flex; flex-direction: column; gap: 18px; padding-right: 15px; font: 12px/1.75 'DM Sans',sans-serif; }
.journal-sidebar > span { font-size: 9px; letter-spacing: 1.4px; margin-bottom: 8px; }
.journal-sidebar a { border-left: 2px solid #a6caec; padding-left: 13px; }
.journal-sidebar a:hover { border-color: #163c50; }
.journal-sidebar .journal-back { border: 0; padding: 24px 0 0; font-size: 11px; }
.journal-content { min-width: 0; }
.journal-facts { display: grid; grid-template-columns: .8fr 1.2fr; gap: 25px; border-top: 1px solid #163c5030; border-bottom: 1px solid #163c5030; padding: 24px 0; margin-bottom: 45px; }
.journal-facts dt { font: 500 9px 'DM Sans',sans-serif; letter-spacing: 1.5px; margin-bottom: 12px; }
.journal-facts dd { font: 400 14px/1.6 'DM Sans',sans-serif; margin: 0; }
.journal-video-section,.journal-text { scroll-margin-top: 115px; }
.journal-content h2,.journal-related h2 { font: 500 clamp(33px,3.7vw,48px)/1.1 'Barlow Condensed',sans-serif; letter-spacing: -.4px; margin: 22px 0; }
.journey-video { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; background: #163c50; margin-top: 24px; }
.journal-video-caption { font: 11px/1.8 'DM Sans',sans-serif; margin: 12px 0 45px; }
.journal-source-note { border-top: 1px solid #163c5030; margin-top: 35px; padding-top: 20px; font: 11px/1.8 'DM Sans',sans-serif; }
.journal-resource { border-top: 1px solid #163c5030; padding-top: 30px; margin-top: 35px; }
.journal-resource > p { font: 14px/1.9 'Lora',serif; }
.journal-resource .journal-source-note { border: 0; font: 11px/1.8 'DM Sans',sans-serif; margin-top: 18px; padding-top: 0; }
.field-notes { background: #f2f5f6; }
.contact-faq { margin-top: 50px; padding-top: 32px; border-top: 1px solid #163c5030; }
.contact-faq > h2 { font-size: clamp(32px,3.6vw,45px); }
.contact-faq details { max-width: 900px; }
.field-stories { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; margin-top: 40px; }
.field-story { display: block; }
.field-story > img { display: block; width: 100%; height: 300px; object-fit: cover; object-position: 50% 40%; margin-bottom: 25px; }
.field-story-type { font: 500 10px 'DM Sans',sans-serif; letter-spacing: 1.5px; }
.field-story h3 { font: 500 35px/1.12 'Barlow Condensed',sans-serif; margin: 16px 0; }
.field-story p,.technical-note > p { font: 14px/1.9 'Lora',serif; max-width: 750px; }
.technical-note > p { margin-bottom: 28px; }
@media(max-width:700px) { .field-stories { grid-template-columns: 1fr; gap: 40px; } .field-story > img { height: 240px; } .field-story h3 { font-size: 32px; } }
.journal-text { margin: 45px 0; max-width: 780px; }
.journal-chapter { font: 500 10px 'DM Sans',sans-serif; letter-spacing: 1px; opacity: .6; }
.journal-text p { font: 400 16px/2 'Lora',serif; margin: 22px 0; }
.journal-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 40px 0 55px; }
.journal-gallery.gallery-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.journal-gallery img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; object-position: 50% 35%; }
.journal-gallery figcaption { font: 10px/1.8 'DM Sans',sans-serif; padding-top: 12px; }
.journal-cta { padding: 36px; background: #a6caec55; margin-top: 50px; }
.journal-cta p { font: 14px/1.9 'Lora',serif; margin-bottom: 25px; }
.journal-cta > div { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.journal-cta .underlined-link { margin: 0; }
.journal-related { padding: 65px 6vw 80px; background: #f2f5f6; }
.journal-related > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; margin-top: 35px; }
.journal-related img { width: 100%; height: 260px; object-fit: cover; object-position: 50% 40%; margin-bottom: 20px; }
.journal-related a > span { display: block; font: 11px/1.8 'DM Sans',sans-serif; }
.journal-related h3 { font: 500 31px/1.15 'Barlow Condensed',sans-serif; margin: 12px 0 20px; }
@media(max-width:800px) {
  .journal-layout { display: block; padding: 35px 24px 55px; }
  .journal-sidebar { position: static; border-bottom: 1px solid #163c5030; padding: 0 0 25px; margin-bottom: 30px; gap: 13px; }
  .journal-sidebar .journal-back { padding-top: 5px; }
  .journal-header { padding: 28px 24px 35px; }
  .journal-breadcrumb { margin-bottom: 28px; font-size: 10px; }
  .journal-header h1 { font-size: 53px; }
  .journal-cover { margin: 0; }
  .journal-cover img { height: 340px; }
  .journal-cover figcaption { padding: 12px 24px; }
  .journal-text p { font-size: 15px; line-height: 1.95; }
  .journal-gallery.gallery-3 { grid-template-columns: 1fr; }
  .journal-gallery.gallery-3 img { aspect-ratio: 1.2; object-position: 50% 30%; }
  .journal-cta { padding: 27px 23px; }
  .journal-related { padding: 50px 24px; }
  .journal-related > div { gap: 28px; }
  .journal-related img { height: 180px; }
  .journal-related h3 { font-size: 27px; }
}
@media(max-width:450px) {
  .journal-header h1 { font-size: 46px; }
  .journal-gallery,.journal-related > div { grid-template-columns: 1fr; }
  .journal-gallery img { aspect-ratio: 1.1; }
  .journal-related img { height: 230px; }
  .journal-facts { grid-template-columns: 1fr; gap: 22px; }
}
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 1000; padding: 15px; background: white; color: black; }
.skip-link:focus { top: 10px; }
.kasato-logo { font-family: 'Playfair Display', serif; font-size: 26px; letter-spacing: -.8px; white-space: nowrap; }
.kasato-logo span { font-family: 'DM Sans', sans-serif; font-size: 8px; letter-spacing: 1.4px; margin-top: 7px; }
.language-switch a { font-size: 12px; opacity: .65; padding: 10px 2px; }
.language-switch a[aria-current] { opacity: 1; font-weight: 700; }
.hero h1 { font-size: clamp(42px, 6.8vw, 96px); max-width: 960px; }
.hero-description { max-width: 580px; }
.video-control { position: absolute; bottom: 28px; right: 5%; z-index: 3; color: white; background: #10291a66; border: 1px solid #ffffff80; border-radius: 30px; padding: 10px 18px; cursor: pointer; font-size: 12px; }
.content-section { padding: 100px max(6vw, 24px); }
.content-section h2, .content-section h1, .custom-copy h2, .custom-copy h1 { font-family: 'Playfair Display',serif; font-size: clamp(34px,4.6vw,62px); font-weight: 500; line-height: 1.12; letter-spacing: -1.8px; margin: 20px 0 34px; max-width: 850px; }
.section-heading { margin-bottom: 30px; }
.section-intro { font-size: 17px; line-height: 1.8; max-width: 790px; margin-bottom: 36px; }
.prose { font-size: 16px; line-height: 1.9; }
.prose p { margin-bottom: 20px; }
.prose h3 { font-size: 23px; font-weight: 500; margin: 30px 0 18px; }
.about { background: white; display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; }
.lead { font-size: 23px; line-height: 1.65; }
.two-column { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7vw; align-items: start; }
.partner-photo img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 48% 48% 4px 4px; }
figcaption { font-size: 12px; line-height: 1.6; padding: 14px 0; }
.partner-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 50px; padding-top: 32px; border-top: 1px solid #152e4030; }
.partner-grid h3 { font-family: 'Playfair Display',serif; font-size: 25px; font-weight: 500; margin-bottom: 16px; }
.partner-grid p { line-height: 1.8; font-size: 15px; }
details { border-top: 1px solid #152e4030; padding: 22px 0; }
summary { cursor: pointer; font-size: 17px; line-height: 1.6; }
details p { margin-top: 20px; line-height: 1.85; }
.inspiration { margin-top: 45px; }
.inspiration .prose { max-width: 900px; }
.origins-section { background: #e5edf0; }
.region-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 60px; }
.region { display: block; text-align: center; }
.region img { aspect-ratio: 1; border-radius: 50%; object-fit: cover; margin-bottom: 24px; transition: transform .3s; }
.region:hover img { transform: scale(.97); }
.region span { display: block; font-size: 12px; line-height: 1.8; }
.region h3 { font-family: 'Playfair Display',serif; font-size: 28px; font-weight: 500; margin: 10px 0; }
.journal-note { display: flex; align-items: center; gap: 35px; margin-top: 70px; padding-top: 30px; border-top: 1px solid #152e4030; }
.journal-note > span { font-family: 'Playfair Display',serif; font-size: 25px; flex: 1; }
.journal-note p { flex: 1.5; line-height: 1.8; }
.journal-note a { flex-shrink: 0; }
.collection-section { background: white; }
.table-scroll { overflow-x: auto; margin: 30px 0; }
table { width: 100%; border-collapse: collapse; text-align: left; }
caption { text-align: left; font-size: 16px; margin-bottom: 20px; }
th { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; padding: 18px 12px; background: #edf2f4; white-space: nowrap; }
td { font-size: 15px; padding: 30px 16px; line-height: 1.8; border-bottom: 1px solid #152e4030; }
.custom-section { display: grid; grid-template-columns: 1fr 1fr; background: #e8ede5; scroll-margin-top: 90px; }
.custom-photo img { height: 100%; min-height: 580px; object-fit: cover; }
.custom-copy { padding: 80px 6vw; }
.custom-copy p { line-height: 1.9; margin-bottom: 24px; }
.custom-copy .button { margin-top: 15px; }
.newsletter-section { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 8vw; }
.newsletter-section p { line-height: 1.9; margin-bottom: 25px; max-width: 540px; }
.newsletter-section img { aspect-ratio: 1.15; object-fit: cover; border-radius: 5px; }
.newsletter-section .small-note { margin-top: 18px; font-size: 12px; }
.contact-section { background: var(--blue); color: var(--ink); }
.contact-section .section-label { color: var(--ink); }
.contact-top { display: grid; grid-template-columns: 1.2fr 1fr; gap: 50px; }
.contact-top p { line-height: 1.7; }
.phone { display: block; font-size: clamp(24px,3vw,43px); margin: 20px 0 8px; letter-spacing: -1px; }
.contact-top span { font-size: 12px; }
address { font-style: normal; line-height: 1.8; }
.contact-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; border-top: 1px solid #152e4030; margin-top: 55px; padding: 35px 0; }
.contact-grid h3 { font-size: 13px; margin-bottom: 24px; }
.contact-grid p { font-size: 17px; margin-bottom: 8px; }
.contact-grid span { display: block; font-size: 12px; line-height: 1.7; }
.faq-section { background: #fff; }
.faq-section details { max-width: 900px; }
.footer-brand { font-family: 'Playfair Display',serif; font-size: 38px; }
.footer-brand span { font-family: 'DM Sans',sans-serif; font-size: 12px; line-height: 1.8; letter-spacing: .3px; }
.inner-page .header { background: #f2efe8; color: #152e40; position: absolute; }
.inner-page main { padding-top: 90px; }
.inner-page .logo, .inner-page .desktop-nav a, .inner-page .language-switch { color: #152e40; }
.inner-page .menu-button span { background: #152e40; }
.mobile-menu a { font-size: clamp(22px,5vw,34px); }
@media(max-width: 1050px) { .desktop-nav { display: none; } .menu-button { display: flex; } .contact-grid { grid-template-columns: repeat(2,1fr); } }
@media(max-width: 700px) { .header { padding: 18px 24px; } .kasato-logo { font-size: 22px; } .kasato-logo span { font-size: 6px; } .hero { min-height: 720px; height: 95svh; } .hero-content { padding: 140px 24px 100px; } .hero h1 { font-size: 48px; } .hero-description { font-size: 16px; } .hero-buttons { flex-wrap: wrap; gap: 20px; } .hero .text-link { padding: 10px 16px; } .content-section { padding: 65px 24px; } .about, .two-column, .region-grid, .partner-grid, .custom-section, .newsletter-section, .contact-top { grid-template-columns: 1fr; gap: 32px; } .region-grid { gap: 45px; } .region img { max-width: 300px; margin: 0 auto 24px; } .partner-photo img { aspect-ratio: 1.1; } .journal-note { flex-direction: column; align-items: flex-start; gap: 20px; } .custom-photo img { min-height: 0; height: 320px; } .custom-copy { padding: 55px 24px; } .newsletter-section img { max-height: 300px; } .contact-grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; } .contact-grid h3 { margin-bottom: 16px; } .contact-grid p { font-size: 15px; } .footer-bottom { flex-wrap: wrap; gap: 18px; } }
@media(prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Kasato Maru: palette and editorial direction from the design workbook. */
.two-column .partner-photo img { object-position: 70% 38%; height: auto; aspect-ratio: 1.4; }
.region-photo { object-position: 50% 40%; height: auto; }
.custom-photo img { object-position: 50% 50%; }
.newsletter-section img { object-position: 50% 45%; height: auto; }
.contact-grid .team-portrait { display: block; width: 105px; height: 105px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; margin-bottom: 22px; }
.sample-process { margin: 36px 0 42px; }
.sample-process img { width: 100%; height: clamp(220px,32vw,400px); object-fit: cover; object-position: 50% 45%; }
.sample-process figcaption { font: 12px/1.7 'DM Sans',sans-serif; }
:root { --blue: #a6caec; --blue-bright: #83cbeb; --gray: #d9d9d9; --cream: #fff; --gold: #eefb75; --gold-soft: #eefb75; --olive: #163c50; --olive-dark: #163c50; --ink: #163c50; --black: #163c50; --black-soft: #163c50; }
body { background: #fff; color: var(--ink); font-family: 'Lora', Georgia, serif; }
::selection { background: var(--accent); color: var(--ink); }
:where(a,button,input,textarea):focus-visible { outline: 3px solid #163c50; outline-offset: 5px; }
.header { position: absolute; height: 96px; padding: 0 4.5vw; background: var(--blue); color: var(--ink); font-family: 'DM Sans',sans-serif; }
.header.scrolled, .inner-page .header { height: 82px; background: var(--blue); color: var(--ink); border: 0; box-shadow: 0 1px 0 #163c5025; }
.kasato-logo { font-family: 'Barlow Condensed',sans-serif; font-size: 31px; font-weight: 600; line-height: 1; letter-spacing: .2px; text-transform: uppercase; }
.kasato-logo span { color: inherit; font-size: 7px; letter-spacing: 1.3px; margin-top: 9px; font-weight: 500; }
.desktop-nav { align-items: center; gap: 22px; font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.debut-menu { position: relative; border: 0; padding: 0; margin: 0; }
.desktop-nav > a { display: inline-flex; align-items: center; min-height: 40px; line-height: 1.2; white-space: nowrap; }
.desktop-nav .debut-menu > summary { min-height: 40px; font: inherit; line-height: 1.2; }
.debut-menu > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border: 0; border-radius: 0; cursor: pointer; list-style: none; }
.debut-menu > summary::-webkit-details-marker { display: none; }
.debut-menu > summary:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.debut-menu[open] > summary span { transform: rotate(180deg); }
.debut-menu-links { position: absolute; top: calc(100% + 10px); left: 0; z-index: 20; min-width: 230px; padding: 12px; background: var(--blue); color: var(--ink); border: 1px solid #163c5030; box-shadow: 0 12px 30px #163c5020; }
.desktop-nav .debut-menu-links a { display: block; padding: 12px 14px; border-radius: 4px; font-size: 14px; white-space: nowrap; }
.debut-menu-links a:hover, .debut-menu-links a:focus-visible { background: var(--accent); color: var(--ink); }
.mobile-menu .debut-menu > summary { width: fit-content; font: 500 42px/1.2 'Barlow Condensed',sans-serif; }
.mobile-menu .debut-menu-links { position: static; margin-top: 12px; box-shadow: none; border: 0; border-left: 2px solid var(--ink); }
.mobile-menu .debut-menu-links a { display: block; padding: 9px 14px; font: 500 22px/1.2 'DM Sans',sans-serif; }
.desktop-nav .nav-collection { padding: 11px 17px; background: var(--accent); border-radius: 50px; color: var(--ink); }
.desktop-nav .nav-collection span { padding-left: 8px; }
.desktop-nav a::after { background: var(--accent); }
.language-switch { padding: 4px 7px; border-color: #163c5055; }
.header.scrolled .language-switch, .inner-page .language-switch { border-color: #163c5055; }
.language-switch a { font-size: 10px; padding: 6px; }
.hero { height: 68svh; min-height: 460px; max-height: 720px; display: flex; justify-content: center; align-items: center; background: #24536d; }
.hero-video { opacity: .82; }
.hero-overlay { background: linear-gradient(180deg,#163c5080 0%,#173e505c 45%,#12384ac9 100%); }
.hero-content { position: relative; width: 100%; max-width: 1150px; margin: 0 auto; padding: 150px 40px 90px; text-align: center; }
.hero .hero-tagline { z-index: 1; max-width: 1280px; padding: 70px 6vw; text-align: center; }
.hero .hero-tagline h1 { font-family: 'DM Sans',Arial,sans-serif; font-weight: 600; font-size: clamp(38px,5.4vw,82px); line-height: 1.12; text-transform: none; letter-spacing: -.035em; text-shadow: 0 2px 20px #163c5050; }
/* Prefer Cavolini when available on the visitor's device. */
@font-face {
  font-family: 'Cavolini';
  src: local('Cavolini'), local('Cavolini Regular'), local('Cavolini-Regular');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.hero .hero-handwritten h1 {
  color: #fff;
  font-family: 'Anton', 'Barlow Condensed', sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: uppercase;
  line-height: 1.02;
}
.hero .hero-handwritten { padding-block: 24px; }
.hero .hero-handwritten h1 { font-size: clamp(28px, 4vw, 60px); line-height: 1.08; max-width: 1100px; }
@media (prefers-reduced-motion: reduce) {
  .hero .hero-handwritten, .hero .hero-handwritten h1 { transform: none; }
}
.hero-handwritten h1 span { display: block; }
.hero-handwritten h1 span + span { margin-top: .12em; }
.hero .eyebrow { display: block; margin: 0 auto 25px; font-family: 'DM Sans',sans-serif; font-size: 12px; letter-spacing: 3px; color: #fff; }
.eyebrow::before { display: none; }
.hero h1 { max-width: 1100px; margin: 0 auto; font-family: 'Barlow Condensed',sans-serif; font-size: clamp(64px,8.6vw,126px); font-weight: 600; text-transform: uppercase; line-height: .96; letter-spacing: -1.5px; color: white; text-wrap: balance; }
.hero-description { max-width: 610px; margin: 28px auto 0; font-family: 'Lora',Georgia,serif; font-size: 16px; line-height: 1.75; color: #fff; }
.hero-buttons { display: flex; justify-content: center; margin-top: 32px; gap: 15px; }
.button, .text-link { font-family: 'DM Sans',sans-serif; font-size: 12px; font-weight: 500; border-radius: 50px; letter-spacing: 0; }
.button { min-height: 52px; padding: 15px 23px; box-shadow: none; gap: 25px; }
.button::before { display: none; }
.button::after { font-size: 20px; }
.button-gold { background: var(--accent); color: var(--ink); border-color: var(--accent); }
.button-gold:hover { background: white; border-color: white; color: var(--ink); }
.button-dark { background: var(--ink); color: #fff; }
.button-dark:hover { background: #285c76; color: white; }
.hero .text-link { background: transparent; border: 1px solid #ffffffb0; backdrop-filter: none; padding: 15px 23px; }
.video-control { font-family: 'DM Sans',sans-serif; bottom: 23px; right: 4.5vw; font-size: 10px; background: #163c5050; }
.values-strip { display: grid; grid-template-columns: repeat(3,1fr); background: var(--blue); border-bottom: 1px solid #163c5020; padding: 25px 5vw; gap: 20px; }
.values-strip a { display: flex; justify-content: center; align-items: center; gap: 16px; font: 500 13px 'DM Sans',sans-serif; }
.line-icon { display: inline-block; width: 32px; height: 32px; flex-shrink: 0; vertical-align: middle; }
.section-label { display: flex; align-items: center; gap: 14px; color: var(--ink); font: 500 10px 'DM Sans',sans-serif; letter-spacing: 1.6px; }
.content-section { padding: 90px 6vw; }
.content-section h2,.content-section h1,.custom-copy h2,.custom-copy h1,.buying-grid h2,.origins-header h2,.projects-header h2 { font-family: 'Barlow Condensed',sans-serif; font-size: clamp(43px,5vw,72px); font-weight: 500; line-height: 1; letter-spacing: -.8px; }
.content-section .section-heading h2 { margin-top: 24px; }
.prose { font-size: 15px; line-height: 1.95; }
.prose h3,.partner-grid h3,.region h3 { font-family: 'DM Sans',sans-serif; font-weight: 500; }
.partner-photo img { border-radius: 0; aspect-ratio: 1.05; }
.partner-photo figcaption { font-family: 'DM Sans',sans-serif; color: #163c50b0; font-size: 10px; }
.two-column { gap: 8vw; }
.partner-grid { gap: 0; border-top: 0; padding-top: 10px; }
.partner-grid article { padding: 26px; background: #f5f7f8; border-right: 4px solid white; }
.partner-grid article:last-child { border: 0; }
.partner-grid h3 { font-size: 18px; }
.partner-grid p { font-size: 13px; line-height: 1.85; }
details { border-color: #163c5030; }
summary { font: 500 15px/1.65 'DM Sans',sans-serif; }
.inspiration .prose { padding-top: 15px; }
.origins-section { background: var(--blue); }
.origins-section .section-heading { text-align: center; }
.origins-section .section-label { justify-content: center; }
.origins-section h2 { margin-left: auto; margin-right: auto; }
.origins-section .section-intro { margin-left: auto; margin-right: auto; text-align: center; font-size: 15px; max-width: 660px; }
.region-grid { gap: 6vw; margin-top: 50px; }
.region img { border: 8px solid #ffffff45; aspect-ratio: 1; }
.region h3 { font-family: 'Barlow Condensed',sans-serif; font-size: 34px; margin: 8px 0; }
.region span { font-family: 'DM Sans',sans-serif; font-size: 10px; }
.journal-note { margin-top: 50px; border-color: #163c5035; }
.journal-note > span { font-family: 'Barlow Condensed',sans-serif; font-size: 30px; }
.journal-note p { font-size: 13px; }
.origins { background: #fff; }
.origin-story-copy h3 { font-family: 'Barlow Condensed',sans-serif; font-weight: 500; color: var(--ink); }
.origin-body p { font-family: 'Lora',serif; font-size: 15px; }
.origin-story-image, .editorial-image { border-radius: 0; }
.origin-index,.origin-region,.origin-facts,.origin-character { font-family: 'DM Sans',sans-serif; }
.projects { background: #f4f6f7; }
.project-row h3 { font-family: 'DM Sans',sans-serif; font-size: 21px; font-weight: 400; }
.project-row strong { color: var(--ink); }
.buying-grid { display: grid; grid-template-columns: 1fr 1fr; }
.collection-preview { padding: 75px 6vw; background: white; }
.crop-pill { display: inline-block; margin-top: 35px; border: 1px solid #163c5060; border-radius: 30px; padding: 6px 12px; font: 500 10px 'DM Sans',sans-serif; letter-spacing: 1px; }
.collection-preview h2 { margin: 25px 0; }
.buying-grid p { font-size: 14px; line-height: 1.95; max-width: 440px; margin-bottom: 30px; }
.underlined-link { display: block; width: fit-content; font: 500 12px 'DM Sans',sans-serif; border-bottom: 1px solid; padding-bottom: 5px; margin-top: 25px; }
.custom-preview { position: relative; min-height: 640px; color: white; overflow: hidden; }
.custom-preview > img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.custom-preview::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#163c5035,#163c50ed); }
.custom-preview > div { position: relative; z-index: 1; padding: 75px 6vw; height: 100%; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; }
.custom-preview .section-label { color: white; }
.custom-preview h2,.custom-copy h2,.custom-copy h1 { font-family: 'Caveat',cursive; text-transform: none; font-size: 84px; font-weight: 500; letter-spacing: -2px; margin: 20px 0; }
.custom-section { background: var(--blue-bright); }
.custom-copy .section-label { color: var(--ink); }
.newsletter-section { background: #f4f5f5; padding-top: 70px; padding-bottom: 70px; }
.newsletter-section h2 { font-size: clamp(52px,6vw,86px); }
.newsletter-section p { font-size: 14px; }
.newsletter-section img { border-radius: 0; aspect-ratio: 1.25; }
.small-note { font-family: 'DM Sans',sans-serif; }
.contact-section { background: var(--blue-bright); }
.contact-top p,.contact-grid, address { font-family: 'DM Sans',sans-serif; font-size: 14px; }
.contact-grid h3 { font-size: 12px; letter-spacing: .2px; }
.contact-grid span { font-size: 11px; }
.phone { font-family: 'Barlow Condensed',sans-serif; font-size: clamp(35px,4vw,56px); }
.faq-section { background: white; }
.faq-section details p { font-size: 14px; }
.footer { background: var(--ink); color: white; padding: 60px 6vw 30px; }
.footer-brand { font-family: 'Barlow Condensed',sans-serif; text-transform: uppercase; letter-spacing: 1px; }
.footer-brand span { text-transform: none; color: var(--blue); }
.footer-bottom { color: #ffffffb0; border-color: #ffffff30; font-family: 'DM Sans',sans-serif; font-size: 10px; }
.mobile-menu { background: var(--blue); color: var(--ink); align-items: flex-start; overflow-y: auto; padding: 110px 24px 40px; }
.mobile-menu nav { flex-shrink: 0; width: min(100%,400px); }
.mobile-menu a { font-family: 'Barlow Condensed',sans-serif; font-size: 42px; letter-spacing: 0; text-transform: none; }
.inner-page main { padding-top: 82px; }
.inner-page .header .logo span { color: var(--ink); }
.existing-heading { margin: 65px 0 18px; font: 500 30px 'Barlow Condensed',sans-serif; }
th { background: var(--blue); color: var(--ink); font-family: 'DM Sans',sans-serif; }
.coffee-editorial-copy { font-family: 'DM Sans',sans-serif; }
.coffee-editorial-copy h3 { font-family: 'Barlow Condensed',sans-serif; }
.coffee-score { background: var(--accent); color: var(--ink); }
@media(max-width:1100px) { .desktop-nav { gap: 15px; font-size: 10px; } .kasato-logo { font-size: 27px; } }
@media(max-width:700px) {
  .header,.header.scrolled { padding: 0 23px; height: 78px; }
  .hero { min-height: 420px; height: 65svh; max-height: 600px; }
  .hero-content { padding: 125px 24px 110px; }
  .hero .eyebrow { font-size: 9px; letter-spacing: 1.8px; line-height: 1.8; }
  .hero h1 { font-size: clamp(58px,11vw,78px); letter-spacing: -.6px; }
  .hero-description { font-size: 14px; line-height: 1.85; margin-top: 25px; }
  .hero-buttons { flex-direction: row; align-items: center; margin-top: 25px; }
  .hero-buttons a { width: auto; min-height: 48px; padding: 13px 19px; font-size: 11px; }
  .hero-buttons a::after { font-size: 17px; }
  .values-strip { padding: 22px 18px; gap: 10px; }
  .values-strip a { flex-direction: column; text-align: center; font-size: 10px; line-height: 1.5; gap: 8px; }
  .values-strip .line-icon { width: 28px; height: 28px; }
  .content-section { padding: 65px 24px; }
  .content-section h2,.content-section h1 { font-size: 48px; }
  .section-label { font-size: 9px; gap: 10px; letter-spacing: 1.2px; }
  .section-label .line-icon { width: 27px; height: 27px; }
  .partner-grid { gap: 8px; }
  .partner-grid article { border: 0; padding: 25px; }
  .region-grid { gap: 40px; }
  .region img { max-width: 260px; }
  .buying-grid { grid-template-columns: 1fr; }
  .collection-preview { padding: 60px 24px; }
  .collection-preview h2 { font-size: 52px; }
  .custom-preview { min-height: 520px; }
  .custom-preview > div { padding: 60px 24px; }
  .custom-preview h2,.custom-copy h2,.custom-copy h1 { font-size: 75px; }
  .newsletter-section img { margin-top: 0; }
  .phone { font-size: 43px; }
  .contact-grid { gap: 28px 18px; }
  .footer { padding: 55px 24px 28px; }
  .footer-bottom { gap: 18px; line-height: 1.8; }
}

/* Full homepage sequence and contact details in the footer. */
.introduction-section { background: #fff; }
.intro-what-we-do .prose { max-width: 950px; font-size: 18px; }
.intro-company { background: #f2f5f6; }
.intro-company .intro-body,.intro-our-name .intro-body { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7vw; align-items: center; }
.intro-photo img { width: 100%; height: auto; aspect-ratio: 1.25; object-fit: cover; object-position: 50% 35%; }
.intro-our-name .prose { max-width: 720px; }
.intro-our-name .intro-body { align-items: start; }
.intro-our-name .intro-body > .prose { grid-column: 2; grid-row: 1; }
.intro-our-name .intro-body > .heritage-art { grid-column: 1; grid-row: 1; }
.intro-our-name .section-heading { margin-bottom: 18px; }
.intro-our-name .section-heading h2 { margin-bottom: 18px; }
.heritage-art { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 8px 20px 20px; background: transparent; }
.heritage-art img { width: 100%; height: auto; max-width: 540px; object-fit: contain; transform-origin: 50% 78%; animation: heritage-sailing 7s ease-in-out infinite; }
@keyframes heritage-sailing {
  0%, 100% { transform: translate3d(-5px, 2px, 0) rotate(-1deg); }
  25% { transform: translate3d(2px, -6px, 0) rotate(.5deg); }
  50% { transform: translate3d(7px, 1px, 0) rotate(1deg); }
  75% { transform: translate3d(0, 6px, 0) rotate(-.4deg); }
}
@media (prefers-reduced-motion: reduce), print {
 .heritage-art img { animation: none; transform: none; }
}
.heritage-art figcaption { font: 10px/1.8 'DM Sans',sans-serif; letter-spacing: 2px; margin-top: 12px; }
.intro-mission { background: #a6caec; }
.intro-mission .prose { max-width: 1000px; font-size: 20px; line-height: 1.8; }
.intro-mission .intro-body { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 6vw; align-items: center; }
.mission-photo { margin: 0; min-width: 0; overflow: hidden; border-radius: 50%; aspect-ratio: 1; }
.mission-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: 50% 40%; border: 0; border-radius: 50%; animation: mission-photo-zoom 9s ease-in-out infinite alternate; transform-origin: 50% 40%; }
@keyframes mission-photo-zoom { from { transform: scale(1); } to { transform: scale(1.13); } }
@media (prefers-reduced-motion: reduce), print { .mission-photo img { animation: none; transform: none; } }
.intro-inspiration .prose { max-width: 1000px; font-size: 17px; }
.intro-inspiration .intro-body { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr); gap: 6vw; align-items: center; }
.intro-inspiration .intro-body > .prose { grid-column: 2; grid-row: 1; }
.intro-inspiration .intro-body > .inspiration-art { grid-column: 1; grid-row: 1; }
.inspiration-art { margin: 0; }
.inspiration-art img { display: block; width: 100%; height: auto; max-width: 460px; margin: 0 auto; object-fit: contain; }
.steaming-cup { position: relative; max-width: 460px; margin: 0 auto; }
.steaming-cup .cup-base { clip-path: inset(49% 0 0); }
.steaming-cup .cup-steam { position: absolute; inset: 0; clip-path: inset(0 0 51%); transform-origin: 50% 52%; animation: coffee-steam-rise 4.8s ease-in-out infinite; pointer-events: none; }
@keyframes coffee-steam-rise {
  0%, 100% { transform: translate3d(-2px,0,0) scaleX(.97); opacity: .65; }
  35% { transform: translate3d(3px,-6px,0) scaleX(1.02); opacity: 1; }
  70% { transform: translate3d(-3px,-12px,0) scaleX(1.05); opacity: .75; }
}
@media (prefers-reduced-motion: reduce), print {
 .steaming-cup .cup-base { clip-path: none; }
 .steaming-cup .cup-steam { display: none; animation: none; }
}
.home-collection { display: grid; grid-template-columns: 1.3fr 1fr; gap: 6vw; align-items: center; background: #fff; }
.home-collection p { max-width: 670px; font: 16px/1.85 'Lora',serif; }
@font-face {
  font-family: 'The Hand Extrablack';
  src: local('The Hand Extrablack'), local('The Hand ExtraBlack'), local('TheHand-ExtraBlack');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
.home-collection h2.bly-signature {
  display: inline-grid;
  width: fit-content;
  margin: 0 0 24px;
  font-family: 'The Hand Extrablack', 'Caveat', cursive;
  font-size: clamp(76px, 8vw, 124px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: 0;
}
.bly-signature .bly-name { color: var(--ink); text-transform: uppercase; }
.bly-signature .bly-projet {
  justify-self: end;
  transform: translateX(65%);
  margin-top: -.38em;
  color: var(--ink);
  font-size: .32em;
  line-height: 1;
  text-transform: lowercase;
}
.collection-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.collection-actions .underlined-link { margin: 0; }
.contact-heading { background: #83cbeb; padding-bottom: 55px; }
.contact-heading p { font: 16px/1.8 'Lora',serif; max-width: 750px; }
.contact-footer { background: #163c50; color: white; }
#contact-details { scroll-margin-top: 82px; }
.footer-phone-row { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 35px 0; border-bottom: 1px solid #ffffff35; }
.footer-kicker { display: block; font: 10px/1.8 'DM Sans',sans-serif; letter-spacing: 1.4px; color: #a6caec; }
.footer-phone { display: block; font: 500 clamp(35px,5vw,62px)/1.2 'Barlow Condensed',sans-serif; margin-top: 10px; }
.footer-contact-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; padding: 40px 0; border-bottom: 1px solid #ffffff35; }
.footer-contact-grid h3 { font: 500 13px/1.7 'DM Sans',sans-serif; color: #a6caec; margin-bottom: 15px; }
.footer-contact-grid .footer-email { display: inline-block; font: 12px/1.8 'DM Sans',sans-serif; border-bottom: 1px solid #ffffff50; margin-bottom: 18px; overflow-wrap: anywhere; }
.footer-contact-grid p { font: 500 16px/1.7 'DM Sans',sans-serif; margin: 0 0 5px; }
.footer-contact-grid article > span { display: block; font: 11px/1.8 'DM Sans',sans-serif; color: #ffffffbd; }
.footer-location { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 35px 0; }
.footer-location address p { font: 12px/1.9 'DM Sans',sans-serif; margin: 0; }
.footer-location address p:first-child { color: #a6caec; font-weight: 600; margin-bottom: 7px; }
.footer-location nav { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 13px 25px; font: 12px/1.8 'DM Sans',sans-serif; }
.footer-faq { border-top: 1px solid #ffffff35; margin-top: 10px; padding: 30px 0; }
.footer-faq .section-label { color: #a6caec; }
.footer-faq h2 { font: 500 36px/1.1 'Barlow Condensed',sans-serif; margin: 20px 0; }
.footer-faq details { border-color: #ffffff35; }
.footer-faq details p { font: 12px/1.85 'DM Sans',sans-serif; max-width: 900px; }
.contact-footer .footer-bottom { margin-top: 5px; }
@media(max-width:1100px) { .desktop-nav { gap: 13px; font-size: 10px; } }
@media(max-width:850px) { .footer-contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .intro-company .intro-body,.intro-our-name .intro-body,.home-collection { grid-template-columns: 1fr; gap: 30px; }
 .intro-our-name .intro-body > .heritage-art { grid-column: 1; grid-row: 1; }
 .intro-our-name .intro-body > .prose { grid-column: 1; grid-row: 2; }
 .intro-what-we-do .prose,.intro-mission .prose { font-size: 16px; }
 .intro-inspiration .prose { font-size: 15px; }
 .intro-mission .intro-body { grid-template-columns: 1fr; gap: 30px; }
 .mission-photo { width: 100%; max-width: 420px; margin: 0 auto; }
 .intro-inspiration .intro-body { grid-template-columns: 1fr; gap: 25px; }
 .intro-inspiration .intro-body > .inspiration-art { grid-column: 1; grid-row: 1; }
 .intro-inspiration .intro-body > .prose { grid-column: 1; grid-row: 2; }
 .steaming-cup { max-width: 330px; }
 .inspiration-art img { max-width: 330px; }
 .heritage-art { padding: 8px 20px 20px; }
 .footer-phone-row { align-items: flex-start; flex-direction: column; padding: 30px 0; gap: 25px; }
 .footer-phone { font-size: 44px; }
 .footer-contact-grid { gap: 30px 20px; padding: 32px 0; }
 .footer-contact-grid h3 { font-size: 12px; }
 .footer-contact-grid .footer-email { font-size: 11px; }
 .footer-location { grid-template-columns: 1fr; gap: 25px; }
}
@media(max-width:420px) { .footer-contact-grid { grid-template-columns: 1fr; } }

.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }

/* Large, borderless photographic panels inspired by Raw Material. */
.intro-company, #partners { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding: 0; gap: 0; }
.intro-company .intro-body, #partners .two-column { display: contents; }
.intro-company > .section-heading, #partners > .section-heading { grid-column: 1; margin: 0; padding: 65px 6vw 0; }
.intro-company .prose, #partners .two-column > .prose { grid-column: 1; padding: 0 6vw 60px; }
.intro-company .intro-photo, #partners .partner-photo { grid-column: 2; grid-row: 1 / 3; margin: 0; min-width: 0; display: flex; flex-direction: column; }
.intro-company .intro-photo img, #partners .partner-photo img { display: block; flex: 1; width: 100%; height: 100%; min-height: 580px; aspect-ratio: auto; object-fit: cover; border: 0; border-radius: 0; }
#partners .partner-photo { position: relative; }
#partners .partner-grid, #partners > .inspiration { grid-column: 1 / -1; margin: 0; }
#partners .partner-grid { padding: 35px 6vw; }
.partner-acknowledgment { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); background: #f2f5f6; }
.partner-acknowledgment figure { margin: 0; min-width: 0; }
.partner-acknowledgment img { display: block; width: 100%; height: 100%; min-height: 600px; max-height: 760px; object-fit: cover; object-position: 35% 40%; }
.partner-acknowledgment > .prose { padding: 65px 6vw; align-self: center; font-size: 18px; line-height: 1.95; }
.partner-acknowledgment a { text-decoration: underline; text-underline-offset: 4px; }
.partner-video { grid-column: 2; margin: 0; padding: 0; min-width: 0; overflow: hidden; }
.partner-video video { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0; background: #163c50; object-fit: cover; object-position: center 60%; }
@media (max-width: 700px) { .partner-video { grid-column: 1 / -1; } }
#partners > .inspiration { padding: 30px 6vw; }
.newsletter-section { padding: 0; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0; align-items: stretch; }
.newsletter-section > div { padding: 70px 6vw; align-self: center; }
.newsletter-section > img { display: block; width: 100%; height: 100%; min-height: 560px; max-height: none; aspect-ratio: auto; object-fit: cover; border-radius: 0; }
.origins-section { padding: 0; }
.origins-section > .section-heading { padding: 70px 6vw 0; }
.origins-section > .section-intro { padding: 0 24px 40px; }
.region-grid { grid-template-columns: 1fr; margin: 0; gap: 0; }
.region { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-rows: 1fr auto 1fr; text-align: left; background: #f2f5f6; }
.region:nth-child(even) { background: var(--blue); }
.region img { grid-column: 1; grid-row: 1 / 4; display: block; width: 100%; height: 100%; min-height: 480px; max-width: none; aspect-ratio: auto; margin: 0; border: 0; border-radius: 0; object-fit: cover; }
.region > span, .region > h3 { grid-column: 2; padding: 0 6vw; }
.region > span:first-of-type { grid-row: 1; align-self: end; padding-bottom: 15px; font-size: 12px; }
.region > h3 { grid-row: 2; margin: 0; font-size: clamp(38px,4.5vw,64px); line-height: 1.08; }
.region > span:last-child { grid-row: 3; align-self: start; padding-top: 24px; font-size: 12px; }
.region:nth-child(even) img { grid-column: 2; }
.region:nth-child(even) > span, .region:nth-child(even) > h3 { grid-column: 1; }
.region:hover img { transform: none; }
.region:hover > span:last-child { text-decoration: underline; text-underline-offset: 5px; }
.region:focus-visible { outline-offset: -5px; }
.origins-section > .journal-note { margin: 0; padding: 40px 6vw; }
.journal-cover { margin-left: 0; margin-right: 0; }
.journal-cover figcaption { padding-left: 6vw; padding-right: 6vw; }
.journal-gallery { gap: 0; }
.journal-gallery figure { margin: 0; }
.journal-gallery figcaption { padding: 12px 16px; }
@media(max-width:700px) {
 .intro-company, #partners, .newsletter-section { grid-template-columns: minmax(0,1fr); }
 .intro-company > .section-heading, #partners > .section-heading { padding: 50px 24px 0; }
 .intro-company .prose, #partners .two-column > .prose { padding: 0 24px 30px; }
 .intro-company .intro-photo, #partners .partner-photo { grid-column: 1; grid-row: 3; }
 .intro-company .intro-photo img, #partners .partner-photo img { min-height: 0; height: auto; aspect-ratio: 4 / 3; flex: none; }
 #partners .partner-grid { padding: 30px 24px; }
 .partner-acknowledgment { grid-template-columns: 1fr; }
 .partner-acknowledgment img { min-height: 0; height: auto; max-height: 560px; aspect-ratio: 4 / 5; }
 .partner-acknowledgment > .prose { padding: 40px 24px; font-size: 16px; }
 #partners > .inspiration { padding: 30px 24px; }
 .newsletter-section > div { padding: 50px 24px; }
 .newsletter-section > img { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
 .origins-section > .section-heading { padding: 50px 24px 0; }
 .region { display: flex; flex-direction: column; }
 .region img { min-height: 0; height: auto; aspect-ratio: 4 / 3; max-width: none; margin: 0; }
 .region > span, .region > h3 { padding-left: 24px; padding-right: 24px; }
 .region > span:first-of-type { align-self: stretch; padding-top: 30px; padding-bottom: 12px; }
 .region > h3 { font-size: 40px; }
 .region > span:last-child { padding-top: 20px; padding-bottom: 35px; }
 .origins-section > .journal-note { padding: 35px 24px; }
}

/* Scroll-linked, clipped photographs; native page scrolling stays responsive. */
.scroll-photo-frame { position: relative; overflow: hidden; min-width: 0; isolation: isolate; }
.scroll-photo-frame > img { position: absolute !important; inset: 0; display: block; width: 100% !important; height: 100% !important; min-height: 0 !important; max-height: none !important; max-width: none !important; aspect-ratio: auto !important; object-fit: cover; border: 0 !important; border-radius: 0 !important; margin: 0 !important; transform: none !important; transition: none !important; }
@media(min-width:701px) and (prefers-reduced-motion:no-preference) {
 .scroll-photo-frame { clip-path: inset(0); }
 .scroll-photo-frame > img { position: fixed !important; inset: 0 auto auto var(--photo-left,0px); width: var(--photo-width,50vw) !important; height: 100svh !important; }
}
#partners .partner-photo > .scroll-photo-frame, .intro-company .intro-photo > .scroll-photo-frame { flex: 1; min-height: 580px; }
.partner-acknowledgment figure > .scroll-photo-frame { height: 100%; min-height: 600px; max-height: 760px; }
.newsletter-section > .scroll-photo-frame { min-height: 560px; }
.custom-photo > .scroll-photo-frame { height: 100%; min-height: 580px; }
.region > .scroll-photo-frame { grid-column: 1; grid-row: 1 / 4; min-height: 480px; }
.region:nth-child(even) > .scroll-photo-frame { grid-column: 2; }
.journal-cover > .scroll-photo-frame { height: clamp(300px,48vw,650px); }

@media(max-width:700px) {
 #partners .partner-photo > .scroll-photo-frame, .intro-company .intro-photo > .scroll-photo-frame, .newsletter-section > .scroll-photo-frame, .custom-photo > .scroll-photo-frame, .region > .scroll-photo-frame { flex: none; width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; }
 .partner-acknowledgment figure > .scroll-photo-frame { min-height: 0; height: auto; aspect-ratio: 4 / 5; max-height: 560px; }
 .journal-cover > .scroll-photo-frame { height: 340px; }

}
@media(prefers-reduced-motion:reduce), print { .scroll-photo-frame > img { transform: none !important; } }


/* Origin cards share the available section width. */
.origins-section { padding: 65px 6vw 70px; background: var(--blue); color: var(--ink); }
.origins-section > .section-heading { padding: 0; margin: 0 0 65px; text-align: left; }
.origins-section .section-heading h2, .origins-section .section-heading h1 { margin: 0; color: var(--ink); font-family: 'DM Sans',sans-serif; font-size: clamp(36px,4vw,52px); font-weight: 500; letter-spacing: -1.5px; }
.origins-section > .section-intro, .origins-section > .journal-note { display: none; }
.origins-section .region-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 12px; margin: 0; padding: 0; }
.origins-section .region { position: relative; display: block; max-width: none; min-width: 0; height: clamp(320px,35vw,560px); border-radius: 0; overflow: hidden; isolation: isolate; text-align: center; background: #163c50; }
.origins-section .region img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; max-width: none; aspect-ratio: auto; border: 0; border-radius: 0; object-fit: cover; object-position: 50% 40%; margin: 0; transform: scale(1.01); transition: transform .7s ease; }
.origins-section .region::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,#15122510 0%,#15122555 40%,#151225b0 100%); pointer-events: none; }
.origins-section .region > span { display: none; }
.origins-section .region > h3 { position: absolute; left: 0; right: 0; top: 50%; z-index: 2; margin: 0; padding: 0 12px; transform: translateY(-50%); color: #fff; font: 500 clamp(26px,2.7vw,39px)/1.12 'DM Sans',sans-serif; letter-spacing: -1px; text-wrap: balance; }
.origins-section .region:hover img { transform: scale(1.08); }
.origins-section .region:focus-visible { outline: 3px solid #eefb75; outline-offset: -5px; }
@media(max-width:700px) {
 .origins-section { padding: 45px 24px; }
 .origins-section > .section-heading { margin-bottom: 35px; }
 .origins-section .region-grid { grid-template-columns: 1fr; gap: 12px; }
 .origins-section .region { min-width: 0; height: auto; aspect-ratio: 4 / 3; }
 .origins-section .region > h3 { font-size: 29px; }
}
@media(prefers-reduced-motion:reduce) { .origins-section .region img { transition: none; } }

/* The partner photo effect stays clipped inside each rounded origin card. */



/* Partner-style fixed photos inside the travel reports opened from the cards. */
.journal-gallery figure > .scroll-photo-frame { width: 100%; aspect-ratio: 3 / 4; }
@media(max-width:700px) { .journal-gallery figure > .scroll-photo-frame { aspect-ratio: 1.1; } }

/* Travel photographs paired with their existing story, like Partners. */
.journal-photo-chapter { max-width: none; }
.journal-gallery.journal-photo-story { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0; margin: 0; background: #f2f5f6; align-items: stretch; }
.journal-photo-story > figure { margin: 0; min-width: 0; display: flex; flex-direction: column; }
.journal-photo-story figure > .scroll-photo-frame { flex: 1; min-height: 540px; width: 100%; aspect-ratio: auto; }
.journal-photo-story > figure > img { width: 100%; min-height: 540px; height: 100%; object-fit: cover; }
.journal-photo-story figcaption { padding: 14px 20px; font-size: 10px; }
.journal-photo-copy { padding: 35px 28px; align-self: center; min-width: 0; }
.journal-photo-copy h2 { font-size: clamp(30px,3vw,44px); }
.journal-photo-copy p { font-size: 15px; line-height: 1.85; }
.journal-photo-story.photo-reversed > figure { grid-column: 2; grid-row: 1; }
.journal-photo-story.photo-reversed > .journal-photo-copy { grid-column: 1; grid-row: 1; }
@media(min-width:1100px) { .journal-layout { max-width: 1500px; grid-template-columns: 180px minmax(0,1fr); gap: 4vw; padding-left: 4vw; padding-right: 4vw; } }
@media(max-width:950px) {
 .journal-gallery.journal-photo-story { grid-template-columns: 1fr; }
 .journal-photo-story.photo-reversed > figure, .journal-photo-story.photo-reversed > .journal-photo-copy { grid-column: 1; grid-row: auto; }
 .journal-photo-story figure > .scroll-photo-frame { flex: none; min-height: 0; height: auto; aspect-ratio: 4 / 3; }
 .journal-photo-story > figure > img { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
 .journal-photo-copy { padding: 30px 24px; }
}

.journal-minimal-gallery { margin: 0 6vw 70px; }
@media(max-width:700px) { .journal-minimal-gallery { grid-template-columns: 1fr; margin: 0 24px 45px; } }
.journal-minimal-video { margin: 0 6vw 45px; }

.journal-gallery.journal-minimal-gallery { display: flex; flex-direction: column; gap: 30px; max-width: 1100px; margin-left: auto; margin-right: auto; padding: 0 24px; }
.journal-minimal-gallery figure { margin: 0; }
.journal-minimal-gallery figure > img { position: static; display: block; width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; transform: none !important; animation: none !important; transition: none !important; }

/* Static square photographs in the Minas Gerais gallery. */
.journal-gallery.journal-minimal-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.journal-minimal-gallery figure { min-width: 0; overflow: hidden; aspect-ratio: 1; }
.journal-minimal-gallery figure > img { display: block; width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; object-position: center; }
@media(max-width:600px) { .journal-gallery.journal-minimal-gallery { gap: 12px; padding: 0 16px; } }

.other-journeys > div { justify-items: center; }
.other-journeys > div > a { display: block; width: 100%; max-width: 400px; text-align: center; }
.other-journeys > div > a > img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover; object-position: 50% 40%; }
@media(max-width:600px) { .other-journeys > div > a { max-width: 300px; } }

.journal-gallery.journal-static-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.journal-static-gallery figure { min-width: 0; }
.journal-static-gallery figure > img { display: block; position: static; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transform: none !important; animation: none !important; transition: none !important; }
.journal-static-gallery .araponga-loop-video { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; background: var(--blue); }
@media(max-width:600px) { .journal-gallery.journal-static-gallery { gap: 12px; } }

/* Araponga: still photographs and silent films in an editorial mosaic. */
.journal-layout:has(.araponga-mosaic) { display: block; max-width: 1560px; padding-top: 12px; }
.journal-layout:has(.araponga-mosaic) .journal-sidebar { display: none; }
.journal-gallery.araponga-mosaic { grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: clamp(150px,17vw,260px); grid-auto-flow: dense; gap: 16px; margin: 0; }
.araponga-mosaic > figure { margin: 0; min-width: 0; min-height: 0; overflow: hidden; border-radius: 14px; background: var(--blue); }
.araponga-mosaic > figure:nth-child(12n + 1) { grid-column: span 2; grid-row: span 2; }
.araponga-mosaic > figure:nth-child(12n + 6), .araponga-mosaic > figure:nth-child(12n + 10) { grid-column: span 2; }
.araponga-mosaic .mosaic-open { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: inherit; overflow: hidden; background: transparent; cursor: zoom-in; color: white; }
.araponga-mosaic .mosaic-open > img, .araponga-mosaic .mosaic-open > video { display: block; position: static; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; transform: none !important; }
.araponga-mosaic .mosaic-open:focus-visible { outline: 3px solid var(--accent); outline-offset: -4px; }
.media-lightbox { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; padding: 0; border: 0; margin: 0; background: #102e3ef5; color: white; }
.media-lightbox::backdrop { background: #102e3e; }
.media-lightbox[open] { display: grid; grid-template-rows: 64px minmax(0,1fr) 54px; }
.media-lightbox-bar { display: flex; align-items: center; justify-content: space-between; padding: 10px 24px; font: 13px/1.5 'DM Sans',sans-serif; letter-spacing: 1px; }
.media-lightbox button { display: grid; place-items: center; padding: 0; border: 1px solid #ffffff50; border-radius: 50%; width: 42px; height: 42px; background: transparent; color: white; cursor: pointer; font: 25px/1 sans-serif; }
.media-lightbox button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.media-lightbox-stage { min-height: 0; display: grid; grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; padding: 0 16px; }
.media-lightbox-content { height: 100%; min-height: 0; display: flex; justify-content: center; align-items: center; }
.media-lightbox-content > img, .media-lightbox-content > video { display: block; width: 100%; height: 100%; object-fit: contain; max-height: 100%; }
.media-lightbox-count { text-align: center; align-self: center; font: 13px/1.5 'DM Sans',sans-serif; }
body.media-lightbox-open { overflow: hidden; }
@media(max-width:700px) {
 .journal-gallery.araponga-mosaic { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: calc((100vw - 60px)/2); gap: 12px; }
 .araponga-mosaic > figure:nth-child(n) { grid-column: span 1; grid-row: span 1; border-radius: 10px; }
 .araponga-mosaic > figure.journal-video-tile, .araponga-mosaic > figure:first-child { grid-column: span 2; }
 .media-lightbox-stage { grid-template-columns: 40px minmax(0,1fr) 40px; padding: 0 4px; }
 .media-lightbox-stage button { width: 34px; height: 34px; }
 .media-lightbox-bar { padding: 10px 16px; }
}

.other-journeys > div > a:only-child { grid-column: 1 / -1; }
.minas-partner-presentation .journal-header h1 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 500;
  letter-spacing: -1px;
}
.minas-partner-presentation .journal-lead {
  font-family: 'The Hand Extrablack', 'Caveat', cursive;
  font-weight: 900;
  letter-spacing: 0;
}
.minas-partner-presentation .journal-lead { font-size: clamp(25px,2.3vw,34px); line-height: 1.5; }
.journal-gallery.journal-partner-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; max-width: none; margin: 0; padding: 0; }
.journal-partner-gallery > figure { margin: 0; min-width: 0; }
.journal-partner-gallery > figure:last-child:nth-child(odd) { grid-column: 1 / -1; }
.journal-partner-gallery figure > .scroll-photo-frame { height: 75svh; min-height: 580px; aspect-ratio: auto; }
.journal-partner-gallery figure > img { width: 100%; height: 75svh; min-height: 580px; object-fit: cover; }
.minas-story-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; }
.minas-story-copy { padding: 40px 6vw 60px; }
.minas-story-copy .journal-lead { margin: 0 0 24px; }
.minas-story-copy .journal-lead:last-child { margin-bottom: 0; }
.minas-story-layout .journal-partner-gallery { grid-template-columns: minmax(0,1fr); }
.journal-gallery.minas-story-mosaic { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; padding: 0; max-width: none; align-items: stretch; }
.minas-story-mosaic > figure { margin: 0; min-width: 0; display: flex; }
.minas-story-mosaic figure > .scroll-photo-frame { width: 100%; height: 100%; min-height: 600px; aspect-ratio: auto; }
.minas-story-mosaic .minas-story-copy { padding: 65px 6vw; align-self: center; }
.minas-story-mosaic .minas-story-copy:nth-child(4) { background: #f2f5f6; align-self: stretch; display: flex; align-items: center; }
.minas-story-mosaic h1 { margin: 0 0 30px; font: 500 clamp(44px,4.5vw,72px)/1.05 'Barlow Condensed',sans-serif; letter-spacing: -1px; }
.minas-story-mosaic .minas-story-copy h2 { margin: 0 0 26px; font: 500 clamp(38px,3.6vw,60px)/1.08 'Barlow Condensed',sans-serif; letter-spacing: -1px; }
.araponga-partner-presentation > .araponga-mosaic { margin-top: 0; }
.minas-story-mosaic > figure.mosaic-video { position: relative; min-height: 600px; }
.minas-story-mosaic .mosaic-video > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Rotate only this photographed archive print, preserving its original pixels. */
.scroll-photo-frame.photo-orientation-corrected > img {
  inset: auto !important;
  left: 50% !important;
  top: 50% !important;
  width: var(--photo-height) !important;
  height: var(--photo-width) !important;
  transform: translate(-50%, -50%) rotate(-90deg) !important;
  object-fit: cover;
}
@supports (clip-path: inset(0)) {
  .scroll-photo-frame.photo-orientation-corrected > img {
    left: calc(var(--photo-left) + var(--photo-width) / 2) !important;
    top: 50svh !important;
    width: 100svh !important;
  }
}
@media(max-width:700px) {
  .minas-story-mosaic > figure.mosaic-video { min-height: 0; aspect-ratio: 4 / 3; }
  .journal-gallery.minas-story-mosaic { display: flex; flex-direction: column; }
  .minas-story-mosaic .minas-story-copy { padding: 40px 24px; }
  .minas-story-mosaic figure > .scroll-photo-frame { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .minas-story-layout { grid-template-columns: minmax(0,1fr); }
  .minas-story-copy { padding: 0 24px 40px; }
  .journal-gallery.journal-partner-gallery { grid-template-columns: 1fr; }
  .journal-partner-gallery figure > .scroll-photo-frame,
  .journal-partner-gallery figure > img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
}

/* Keep It Flowing: photo on the left, copy on the right. */
@media (min-width: 701px) { .newsletter-section > img, .newsletter-section > .scroll-photo-frame { order: -1; } }

/* People and coffee: copy paired with the square roasting video. */
.partner-people-copy { grid-column: 1; min-width: 0; margin: 0; padding: 65px 6vw; align-self: center; font-size: 20px; line-height: 1.95; }
.partner-people-copy p { margin: 0; }
@media (max-width: 700px) { .partner-people-copy { grid-column: 1 / -1; padding: 48px 24px; font-size: 18px; } }

/* Navigation typography styled after the Nordic Approach reference. */
.desktop-nav, .desktop-nav a, .desktop-nav .debut-menu > summary,
.mobile-menu a, .mobile-menu .debut-menu > summary { font-family: 'DM Sans', sans-serif; font-weight: 600; letter-spacing: -0.025em; }
.desktop-nav { font-size: 18px; line-height: 1.2; }
.desktop-nav .debut-menu-links a { font-size: 17px; }
@media (min-width: 1051px) and (max-width: 1100px) { .desktop-nav { font-size: 16px; } }

/* Partners acknowledgment: copy left, photo right. */
@media (min-width: 701px) { .partner-acknowledgment > .prose { grid-column: 1; grid-row: 1; } .partner-acknowledgment > figure { grid-column: 2; grid-row: 1; } }

/* Partners introduction: photo left, heading and copy right. */
@media (min-width: 701px) {
  #partners > .section-heading, #partners .two-column > .prose { grid-column: 2; }
  #partners .partner-photo { grid-column: 1; grid-row: 1 / 3; }
}

/* Secondary hero line beneath the headline. */
.hero .hero-subtitle { margin: 28px auto 0; max-width: 100%; color: #fff; font-family: 'DM Sans', sans-serif; font-size: clamp(16px, 1.4vw, 22px); font-weight: 400; line-height: 1.5; letter-spacing: .03em; text-transform: none; text-shadow: 0 2px 14px #163c5080; }
@media (max-width: 700px) { .hero .hero-subtitle { margin-top: 22px; } }

/* Keep the longer headline and subtitle comfortably within the banner. */
.hero .hero-handwritten { padding-block: 40px; }
@media (max-width: 700px) { .hero .hero-handwritten h1 { font-size: clamp(26px, 6vw, 40px); } .hero .hero-subtitle { font-size: 15px; margin-top: 20px; } }

/* Center the hero message and use the site's yellow for the exporter subtitle. */
.hero > .hero-content.hero-tagline { position: absolute; top: 58%; left: 0; right: 0; margin: 0 auto; padding: 24px 6vw; transform: translateY(-50%); }
.hero .hero-subtitle { color: var(--accent); text-transform: uppercase; font-weight: 500; letter-spacing: .055em; }

/* Mission link and readable editorial section. */
.hero .hero-mission-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 18px; color: #fff; font: 500 16px/1.4 'DM Sans', sans-serif; text-decoration: underline; text-underline-offset: 6px; }
.hero .hero-mission-link:hover { color: var(--accent); }
.hero .hero-mission-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 8px; }
.our-mission-section { background: #f2f5f6; scroll-margin-top: 90px; padding: 85px 6vw; }
.mission-reading { max-width: 880px; margin: 0 auto; }
.our-mission-section h2 { max-width: 820px; margin: 16px 0 36px; font-size: clamp(32px, 3.8vw, 54px); line-height: 1.12; }
.our-mission-section .prose { font-size: 18px; line-height: 1.9; }
@media (max-width: 700px) { .our-mission-section { padding: 55px 24px; } .our-mission-section .prose { font-size: 16px; } .hero .hero-mission-link { font-size: 14px; margin-top: 14px; } }

/* Mission opens as a standalone editorial article. */
.mission-article { background: #f2f5f6; }
.mission-breadcrumb { max-width: 880px; margin: 0 auto; padding: 48px 0 0; font: 14px/1.5 'DM Sans', sans-serif; }
.mission-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.mission-article .our-mission-section { padding-top: 36px; }
.our-mission-section h1 { max-width: 820px; margin: 16px 0 36px; font: 500 clamp(32px, 3.8vw, 54px)/1.12 'Barlow Condensed', sans-serif; color: var(--ink); }
@media (max-width: 1000px) { .mission-breadcrumb { margin: 0 6vw; } }

/* Responsive layout: small phones, tablets, short landscape screens and desktop. */
*, *::before, *::after { box-sizing: border-box; }
main, main > *, .prose, .collection-actions, .footer-contact-grid > *, .mission-reading { min-width: 0; }
img, video, svg { max-width: 100%; }
.prose, .contact-footer, .mission-reading, .journal-lead { overflow-wrap: break-word; }
.button { max-width: 100%; white-space: normal; text-align: center; }
.table-scroll { width: 100%; max-width: 100%; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.table-scroll:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
@media (max-width: 1050px) {
  .mobile-menu { justify-content: flex-start; align-items: stretch; height: 100vh; height: 100dvh; padding: 100px max(24px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); overflow-y: auto; overscroll-behavior: contain; }
  .mobile-menu nav { width: min(100%, 520px); margin: 0 auto; gap: 12px; text-align: left; }
  .mobile-menu a, .mobile-menu .debut-menu > summary { display: flex; align-items: center; width: fit-content; min-height: 44px; max-width: 100%; padding: 5px 0; font-size: clamp(26px, 4.8vw, 38px); line-height: 1.25; }
  .mobile-menu .debut-menu-links a { font-size: 22px; min-height: 44px; }
  .menu-button { min-width: 44px; min-height: 44px; flex-shrink: 0; }
}
@media (max-width: 900px) {
  #partners, .intro-company, .newsletter-section { grid-template-columns: minmax(0, 1fr); }
  #partners > .section-heading, #partners .two-column > .prose { grid-column: 1; padding-left: 24px; padding-right: 24px; }
  #partners > .section-heading { padding-top: 48px; }
  #partners .two-column > .prose { padding-bottom: 32px; }
  #partners .partner-photo { grid-column: 1; grid-row: 3; }
  .partner-acknowledgment { grid-template-columns: minmax(0, 1fr); }
  .partner-acknowledgment > figure, .partner-acknowledgment > .prose { grid-column: 1; grid-row: auto; }
  .partner-acknowledgment > .prose { padding: 40px 24px; }
  .newsletter-section > .scroll-photo-frame { order: 0; }
  .newsletter-section > div { padding: 48px 24px; }
  .scroll-photo-frame > img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; }
  #partners .partner-photo > .scroll-photo-frame, .newsletter-section > .scroll-photo-frame { height: auto; min-height: 0; aspect-ratio: 4 / 3; flex: none; }
  .partner-acknowledgment figure > .scroll-photo-frame { height: auto; min-height: 0; max-height: none; aspect-ratio: 4 / 5; }
  .home-collection { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .collection-actions { flex-wrap: wrap; }
}
@media (max-width: 700px) {
  .header, .header.scrolled { padding-inline: 16px; gap: 8px; }
  .kasato-logo { font-size: clamp(19px, 5vw, 24px); white-space: nowrap; }
  .header-actions { gap: 8px; flex-shrink: 0; }
  .language-switch { padding: 0; }
  .language-switch a { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 44px; padding: 0 5px; font-size: 11px; }
  .hero { height: auto; min-height: 440px; max-height: none; padding-block: 50px; }
  .hero > .hero-content.hero-tagline { position: relative; top: auto; left: auto; right: auto; transform: none; padding: 24px 20px; margin: 0 auto; }
  .hero .hero-handwritten h1 { font-size: clamp(27px, 6.5vw, 44px); line-height: 1.12; }
  .hero .hero-subtitle { font-size: clamp(13px, 3.3vw, 17px); line-height: 1.6; }
  .hero .hero-mission-link { min-height: 44px; margin-top: 12px; }
  .content-section h2, .content-section h1 { font-size: clamp(30px, 8.5vw, 44px); line-height: 1.15; }
  .home-collection h2.bly-signature { font-size: clamp(72px, 20vw, 100px); max-width: 80%; }
  .bly-signature .bly-projet { transform: translateX(25%); }
  .collection-actions .button, .footer-phone-row .button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  .newsletter-section .button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  .contact-footer { padding-inline: 24px; }
  .footer-brand { font-size: clamp(29px, 8vw, 42px); overflow-wrap: anywhere; }
  .footer-contact-grid .footer-email { font-size: 14px; }
  .footer-location nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-bottom { gap: 14px; flex-wrap: wrap; }
  .minas-story-mosaic h1, .minas-story-mosaic .minas-story-copy h2 { font-size: clamp(32px, 9vw, 46px); }
  .journal-cta { padding: 24px; }
  .journal-cta > div { align-items: flex-start; }
  .our-mission-section h1 { font-size: clamp(32px, 8.5vw, 46px); }
  .table-scroll::before { content: 'Swipe sideways to see all columns →'; display: block; position: sticky; left: 0; width: fit-content; max-width: 100%; margin-bottom: 12px; font: 12px/1.6 'DM Sans', sans-serif; color: var(--ink); }
  html[lang^="pt"] .table-scroll::before { content: 'Deslize para os lados para ver todas as colunas →'; }
}
@media (max-width: 420px) {
  .footer-contact-grid { grid-template-columns: minmax(0, 1fr); }
  .values-strip { gap: 8px; padding-inline: 12px; }
  .values-strip a { min-width: 0; font-size: 10px; }
  .footer-location nav { gap: 12px; }
}
@media (max-height: 500px) and (max-width: 1050px) {
  .mobile-menu { padding-top: 90px; }
  .mobile-menu nav { gap: 6px; }
  .mobile-menu a, .mobile-menu .debut-menu > summary { font-size: 26px; }
}

/* Draw arrows as graphics so iOS never substitutes a colored emoji. */
.button::after, .text-link::after {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 19 19 5M5 5h14v14'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 19 19 5M5 5h14v14'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 900px) {
  /* Separate the two photos with their accompanying copy on narrow screens. */
  .partner-acknowledgment > .prose { grid-row: 1; }
  .partner-acknowledgment > figure { grid-row: 2; }
  /* Show each complete photograph rather than cropping it into a desktop panel. */
  #partners .partner-photo, .partner-acknowledgment > figure { display: block; }
  #partners .partner-photo > .scroll-photo-frame,
  .partner-acknowledgment figure > .scroll-photo-frame { display: block; height: auto; min-height: 0; max-height: none; aspect-ratio: auto; clip-path: none; }
  #partners .partner-photo img,
  .partner-acknowledgment figure img { position: static !important; inset: auto !important; display: block; width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important; aspect-ratio: auto !important; object-fit: contain; transform: none !important; }
}
