/* Cafilo editorial pages. All rules are scoped to the download page. */
body.coffee-download {
  --bg:#faf7f0; --fg:#30291f; --muted:#6e6458; --soft:#eee6d9;
  --card:#fffdf8; --line:#ded5c5; --glass:rgba(250,247,240,.94);
  --coffee-accent:#795132; --coffee-button:#34291f; --coffee-button-text:#fffaf2;
  --coffee-sage:#e6ebdc; --coffee-caramel:#ead3b8;
}
.coffee-download :focus-visible { outline:3px solid var(--coffee-accent); outline-offset:5px; }
.coffee-download .header { border-bottom:1px solid var(--line); }
.coffee-download .eyebrow { color:var(--coffee-accent); font-size:10px; letter-spacing:.15em; font-weight:650; line-height:1.7; margin-bottom:22px; }
.coffee-download .button { background:var(--coffee-button); color:var(--coffee-button-text); min-height:50px; padding:14px 22px; gap:15px; font-size:14px; border-radius:100px; }
.coffee-download .button.secondary { background:transparent; color:var(--fg); border:1px solid var(--line); }
.coffee-download .actions { gap:12px; }
.coffee-download h1,.coffee-download h2,.coffee-download h3 { text-wrap:balance; }
.coffee-hero { display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; padding-block:65px 50px; }
.coffee-hero-copy { min-width:0; }
.coffee-hero-copy>.eyebrow { display:flex; gap:10px; align-items:center; }
.coffee-brand-dot { width:9px; height:9px; flex-shrink:0; border-radius:50%; background:var(--coffee-accent); }
.coffee-download h1 { max-width:700px; font-size:clamp(60px,7.6vw,108px); letter-spacing:-.04em; line-height:1.005; font-weight:720; margin-bottom:31px; }
.coffee-download h1 span { color:var(--coffee-accent); }
.coffee-hero .lead { font-size:19px; line-height:1.65; max-width:420px; margin-bottom:30px; color:var(--muted); }
.coffee-pilot-note { max-width:420px; font-size:12px; color:var(--muted); line-height:1.7; margin:22px 0 0; }
.coffee-hero-signature { display:flex; align-items:center; justify-content:space-between; max-width:380px; border-top:1px solid var(--line); margin-top:47px; padding-top:21px; color:var(--muted); font-size:13px; line-height:1.65; }
.coffee-hero-signature strong { color:var(--fg); font-weight:600; }
.coffee-hero-seal { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--coffee-accent); font-family:Georgia,serif; font-size:23px; font-style:italic; }
.coffee-preview { position:relative; width:min(100%,360px); margin:0 auto; padding:0; }
.coffee-preview:before { content:""; position:absolute; inset:13% -15% 10%; border-radius:50%; background:radial-gradient(ellipse,#e6c5a53b,transparent 70%); z-index:-1; }
.coffee-preview>img { display:block; width:100%; height:auto; border-radius:24px; box-shadow:0 22px 45px -22px #593a285c; }
.coffee-preview figcaption { font-size:11px; line-height:1.7; color:var(--muted); text-align:center; margin-top:28px; }
.coffee-ritual-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; margin-bottom:92px; border-block:1px solid var(--line); color:var(--muted); font-size:10px; line-height:1.8; letter-spacing:.12em; font-weight:600; }
.coffee-strip-line { height:1px; width:50px; background:var(--line); flex-shrink:0; }
.coffee-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:40px; }
.coffee-download .coffee-section-heading h2 { font-size:clamp(36px,4.2vw,56px); letter-spacing:-.056em; line-height:1.08; margin:0; font-weight:650; }
.coffee-section-heading .eyebrow { margin-bottom:19px; }
.coffee-section-heading>p { max-width:350px; flex-basis:350px; color:var(--muted); font-size:15px; line-height:1.7; margin:0; }
.coffee-stories { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.coffee-story { overflow:hidden; padding:36px 34px 0; border-radius:28px; min-width:0; border:1px solid transparent; background:var(--coffee-sage); }
.coffee-story-2 { background:var(--coffee-caramel); }
.coffee-story-copy { min-height:221px; }
.coffee-story .eyebrow { font-size:9px; margin-bottom:16px; }
.coffee-story h3 { color:#30291f; font-size:clamp(26px,2.6vw,35px); letter-spacing:-.05em; line-height:1.12; margin-bottom:19px; max-width:430px; }
.coffee-story-copy>p:not(.eyebrow) { max-width:410px; color:#645a4d; font-size:14px; line-height:1.7; margin-bottom:15px; }
.coffee-story-note { display:block; color:#574b3b; font-size:10px; font-weight:650; letter-spacing:.015em; margin-bottom:26px; }
.coffee-story figure { width:min(100%,310px); padding:0; margin:0 auto 30px; }
.coffee-story img { display:block; width:100%; height:auto; border-radius:18px; box-shadow:0 17px 40px -20px #3d241a66; }
.coffee-preview-note { margin:21px 0 0; font-size:11px; color:var(--muted); line-height:1.7; text-align:center; }
.coffee-gallery { padding-bottom:90px; }
.coffee-section { padding-block:0 90px; }
.coffee-how { border-top:1px solid var(--line); padding-top:52px; }
.coffee-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px; }
.coffee-step { padding-top:22px; border-top:1px solid var(--line); }
.coffee-step .step-index { display:grid; place-items:center; width:33px; height:33px; margin-bottom:22px; border:1px solid var(--line); border-radius:50%; font-size:10px; font-weight:650; color:var(--coffee-accent); }
.coffee-step h3 { font-size:21px; line-height:1.3; margin-bottom:11px; letter-spacing:-.035em; }
.coffee-step p { font-size:14px; line-height:1.75; color:var(--muted); margin:0; }
.coffee-download-section { scroll-margin-top:115px; }
.coffee-platforms { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.coffee-platform { display:flex; flex-direction:column; min-width:0; padding:27px; border:1px solid var(--line); border-radius:23px; background:var(--card); }
.coffee-platform:nth-child(2) { background:var(--soft); }
.coffee-platform-label { font-size:11px; color:var(--muted); font-weight:600; margin-bottom:8px; }
.coffee-platform h3 { font-size:27px; line-height:1.2; letter-spacing:-.05em; margin-bottom:16px; }
.coffee-platform p { color:var(--muted); font-size:14px; line-height:1.75; margin-bottom:23px; }
.coffee-platform .button,.coffee-status { margin-top:auto; align-self:flex-start; }
.coffee-status { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 16px; border:1px solid var(--line); border-radius:100px; color:var(--muted); font-size:12px; line-height:1.5; font-weight:600; }
.coffee-file-meta { display:block; font-size:11px; color:var(--muted); overflow-wrap:anywhere; margin-top:15px; line-height:1.7; }
.coffee-file-meta a { display:flex; align-items:center; min-height:44px; color:var(--fg); text-decoration:underline; text-underline-offset:4px; }
.coffee-questions { display:grid; grid-template-columns:.8fr 1.2fr; gap:65px; padding-block:54px 65px; border-top:1px solid var(--line); margin-bottom:30px; }
.coffee-questions h2 { font-size:clamp(31px,3.4vw,43px); line-height:1.12; letter-spacing:-.05em; margin:0; }
.coffee-faq-list { min-width:0; }
.coffee-questions details { border-bottom:1px solid var(--line); padding-block:3px; }
.coffee-questions details:first-child { border-top:1px solid var(--line); }
.coffee-questions summary { min-height:52px; padding-block:16px; font-size:15px; font-weight:600; line-height:1.5; cursor:pointer; }
.coffee-questions details p { font-size:14px; line-height:1.75; max-width:830px; color:var(--muted); margin:5px 0 20px; }
.coffee-questions details a { color:var(--fg); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.coffee-contact { display:flex; justify-content:space-between; align-items:center; gap:40px; padding:40px; border-radius:26px; background:var(--coffee-sage); color:#30291f; margin-bottom:24px; }
.coffee-contact .eyebrow { color:#64523c; margin-bottom:14px; }
.coffee-contact h2 { font-size:clamp(29px,3vw,39px); line-height:1.13; letter-spacing:-.05em; margin-bottom:15px; }
.coffee-contact p:not(.eyebrow) { color:#625b4f; max-width:620px; font-size:14px; line-height:1.7; margin-bottom:0; }
.coffee-contact .button { white-space:nowrap; flex-shrink:0; background:#34291f; color:#fffaf2; }
.coffee-service-links { display:flex; justify-content:center; flex-wrap:wrap; gap:4px 25px; margin-bottom:40px; }
.coffee-service-links>a { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); font-size:11px; text-decoration:underline; text-underline-offset:4px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .coffee-preview>img { transition:transform 550ms cubic-bezier(.2,.75,.2,1); }
  .coffee-preview:hover>img { transform:translateY(-3px); }
  .coffee-download .button:hover { transform:translateY(-2px); box-shadow:0 8px 20px -12px #241a1570; }
}
@media(prefers-color-scheme:dark) {
  body.coffee-download { --bg:#1b1713; --fg:#f4eadc; --muted:#c0b09e; --soft:#332b23; --card:#231e18; --line:#4e4032; --glass:rgba(27,23,19,.94); --coffee-accent:#dbb58b; --coffee-button:#e5c5a5; --coffee-button-text:#2e2017; }
  .coffee-story .eyebrow { color:#795132; }
  .coffee-preview>img { box-shadow:0 22px 45px -22px #000b; }
}
@media(max-width:1100px) {
  .coffee-hero { gap:45px; grid-template-columns:1.12fr .88fr; padding-top:50px; }
  .coffee-preview { width:min(100%,320px); }
  .coffee-platform { padding:23px; }
  .coffee-platform .button { padding-inline:17px; font-size:12px; }
  .coffee-story { padding:30px 27px 0; }
  .coffee-story-copy { min-height:235px; }
  .coffee-questions { gap:45px; }
}
@media(max-width:850px) {
  .coffee-hero { gap:32px; }
  .coffee-download h1 { font-size:clamp(56px,8.3vw,72px); }
  .coffee-hero .lead { font-size:17px; }
  .coffee-hero-signature { margin-top:28px; }
  .coffee-preview { width:min(100%,280px); }
  .coffee-section-heading { gap:30px; }
  .coffee-section-heading>p { max-width:280px; flex-basis:280px; font-size:14px; }
  .coffee-story h3 { font-size:27px; }
  .coffee-story-copy { min-height:255px; }
  .coffee-platforms { grid-template-columns:1fr 1fr; }
  .coffee-web-platform { grid-column:1/-1; }
  .coffee-platform .button { font-size:14px; }
  .coffee-steps { gap:26px; }
  .coffee-step h3 { font-size:19px; }
  .coffee-contact { align-items:flex-start; flex-direction:column; gap:25px; padding:32px; }
}
@media(max-width:620px) {
  .coffee-hero { grid-template-columns:1fr; gap:38px; padding-block:42px 34px; }
  .coffee-download h1 { font-size:clamp(56px,13vw,80px); letter-spacing:-.04em; }
  .coffee-hero .lead { font-size:17px; max-width:360px; }
  .coffee-hero-copy .eyebrow { margin-bottom:23px; }
  .coffee-hero-signature { display:none; }
  .coffee-hero .actions { gap:10px; }
  .coffee-hero .button { font-size:13px; padding-inline:18px; }
  .coffee-pilot-note { font-size:11px; margin-top:18px; }
  .coffee-preview { width:min(78%,300px); }
  .coffee-preview>img { border-radius:20px; }
  .coffee-preview figcaption { margin-top:22px; }
  .coffee-ritual-strip { margin-bottom:53px; padding-block:20px; font-size:9px; letter-spacing:.04em; gap:12px; }
  .coffee-strip-line { display:none; }
  .coffee-section-heading { display:block; margin-bottom:29px; }
  .coffee-download .coffee-section-heading h2 { font-size:38px; }
  .coffee-section-heading>p { margin-top:22px; max-width:390px; font-size:14px; }
  .coffee-stories { grid-template-columns:1fr; gap:20px; }
  .coffee-story { padding:29px 27px 0; }
  .coffee-story-copy { min-height:0; }
  .coffee-story h3 { font-size:30px; max-width:390px; }
  .coffee-story figure { width:min(90%,285px); margin-bottom:27px; }
  .coffee-preview-note { text-align:left; font-size:10px; margin-top:18px; }
  .coffee-gallery,.coffee-section { padding-bottom:58px; }
  .coffee-how { padding-top:37px; }
  .coffee-steps,.coffee-platforms { grid-template-columns:1fr; gap:18px; }
  .coffee-step { position:relative; padding:24px 0 4px 49px; }
  .coffee-step .step-index { position:absolute; left:0; top:24px; }
  .coffee-step h3 { font-size:21px; }
  .coffee-platform { padding:27px; }
  .coffee-web-platform { grid-column:auto; }
  .coffee-platform .button,.coffee-status { align-self:stretch; }
  .coffee-questions { grid-template-columns:1fr; gap:28px; padding-block:38px 35px; margin-bottom:20px; }
  .coffee-questions h2 { font-size:35px; }
  .coffee-questions>.eyebrow { margin-bottom:16px; }
  .coffee-contact { padding:29px 26px; }
  .coffee-contact h2 { font-size:33px; }
  .coffee-contact .button { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
  .coffee-service-links { gap:2px 20px; margin-bottom:24px; }
}
@media(max-width:360px) {
  .coffee-download h1 { font-size:51px; }
  .coffee-hero .actions { align-items:stretch; flex-direction:column; }
  .coffee-hero .button { align-self:stretch; }
  .coffee-story { padding-inline:21px; }
  .coffee-story h3 { font-size:27px; }
  .coffee-ritual-strip { gap:8px; font-size:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .coffee-download .button,.coffee-preview>img { transition:none!important; }
  .coffee-preview>img,.coffee-preview:hover>img,.coffee-download .button:hover { transform:none; }
  .coffee-download .reveal,.motion-ready .coffee-download .reveal:not(.is-visible) { transition:none; transform:none; opacity:1; }
}
