/* ========================================
   Article page styles (Mobile First)
   ======================================== */

.article-hero{
  position:relative;height:70vh;min-height:420px;
  overflow:hidden;background:var(--ink);
}
.article-hero-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transform:scale(1.05);
  animation:slowZoom 25s ease-in-out infinite alternate;
}
.article-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,31,63,.3) 0%,rgba(0,31,63,.92) 100%);
}
.article-hero-content{
  position:relative;z-index:2;height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 20px 50px;color:#fff;
  max-width:1200px;margin:0 auto;
}
.article-hero-breadcrumb{
  font-family:var(--latin);font-style:italic;
  font-size:11px;letter-spacing:.2em;
  opacity:.75;margin-bottom:28px;
}
.article-hero-breadcrumb a:hover{color:var(--sun)}
.article-hero-meta{
  display:flex;gap:14px;align-items:center;margin-bottom:22px;
  font-size:11px;letter-spacing:.2em;
  font-family:var(--latin);font-style:italic;opacity:.85;
  flex-wrap:wrap;
}
.article-hero-cat{
  padding:5px 12px;border:1px solid var(--sun);color:var(--sun);
  font-family:var(--sans);font-style:normal;
  font-size:10px;letter-spacing:.25em;
}
.article-hero h1{
  font-family:var(--mincho);font-weight:400;
  font-size:26px;
  line-height:1.4;letter-spacing:.03em;
  max-width:1000px;
}

/* ===== TL;DR (Conclusion first for AEO) ===== */
.article-tldr{
  background:var(--sand);
  padding:28px 20px;
  border-left:3px solid var(--sun);
  margin:40px 20px;
  border-radius:2px;
}
.article-tldr-head{
  display:flex;align-items:center;gap:10px;margin-bottom:14px;
  font-family:var(--latin);font-style:italic;
  font-size:11px;letter-spacing:.25em;color:var(--sun);
}
.article-tldr-head::before{
  content:"▲";font-family:var(--sans);font-style:normal;
  font-size:10px;transform:rotate(90deg);display:inline-block;
}
.article-tldr h2{
  font-family:var(--mincho);font-weight:500;
  font-size:16px;letter-spacing:.05em;margin-bottom:12px;
  color:var(--ink);
}
.article-tldr ul{
  margin-left:18px;padding:0;
}
.article-tldr li{
  font-size:13px;line-height:1.9;margin-bottom:6px;color:var(--ink);
}
.article-tldr li::marker{color:var(--sun)}
.article-tldr p{
  font-size:13px;line-height:1.9;color:var(--ink);
}

/* ===== Author block ===== */
.article-author{
  display:flex;gap:14px;align-items:center;
  padding:20px;margin:30px 20px 0;
  background:#fff;border:1px solid var(--line);
}
.article-author-img{
  width:48px;height:48px;border-radius:50%;
  background-size:cover;background-position:center;
  flex-shrink:0;border:2px solid var(--sun);
}
.article-author-info{flex:1;min-width:0}
.article-author-label{
  font-family:var(--latin);font-style:italic;
  font-size:10px;letter-spacing:.25em;color:var(--sun);margin-bottom:4px;
}
.article-author-name{
  font-family:var(--mincho);font-size:14px;font-weight:500;
  letter-spacing:.05em;margin-bottom:2px;
}
.article-author-role{
  font-size:11px;color:var(--mist);
}

/* ===== Body ===== */
.article-body-wrap{
  background:var(--paper);padding:50px 20px 80px;
}
.article-container{
  max-width:760px;margin:0 auto;
}
.article-lead{
  font-family:var(--mincho);font-weight:400;
  font-size:17px;
  line-height:2;letter-spacing:.05em;
  color:var(--sea);
  padding-bottom:36px;margin-bottom:40px;
  border-bottom:1px solid var(--line);
}
.article-container h2{
  font-family:var(--mincho);font-weight:500;
  font-size:22px;
  line-height:1.6;letter-spacing:.05em;
  margin:44px 0 20px;
  padding-left:16px;
  border-left:3px solid var(--sun);
}
.article-container h3{
  font-family:var(--mincho);font-weight:500;
  font-size:17px;
  line-height:1.7;letter-spacing:.05em;
  margin:32px 0 16px;color:var(--sea);
}
.article-container p{
  font-size:14px;line-height:2.1;
  margin-bottom:20px;color:var(--ink);
}
.article-container blockquote{
  position:relative;
  padding:24px 24px 24px 40px;margin:32px 0;
  background:#fff;
  border-left:3px solid var(--sun);
  font-family:var(--mincho);
  font-size:15px;line-height:2;letter-spacing:.04em;
  color:var(--sea);
}
.article-container blockquote::before{
  content:"「";
  position:absolute;left:4px;top:-4px;
  font-family:var(--mincho);font-size:40px;
  color:var(--sun);opacity:.4;
}
.article-container ul,.article-container ol{
  margin:18px 0 24px 20px;
}
.article-container li{
  font-size:14px;line-height:2;margin-bottom:8px;
}
.article-container li::marker{color:var(--sun)}
.article-container li strong{color:var(--ink);font-weight:700}
.article-figure{margin:40px 0}
.article-figure .img{
  width:100%;aspect-ratio:16/9;
  background-size:cover;background-position:center;
}
.article-figure .caption{
  margin-top:10px;
  font-size:11px;color:var(--mist);
  font-family:var(--latin);font-style:italic;
  letter-spacing:.15em;text-align:center;
}

/* ===== Inline CTA (within article) ===== */
.inline-cta{
  margin:40px 0;
  background:var(--ink);color:#fff;
  overflow:hidden;
  position:relative;
  text-decoration:none;
  display:block;
  transition:transform .4s;
}
.inline-cta:hover{transform:translateY(-3px)}
.inline-cta-inner{
  display:flex;flex-direction:column;
}
.inline-cta-img{
  width:100%;height:180px;
  background:url("https://images.unsplash.com/photo-1606851181064-f9d65a4d7b56?w=1200&q=80") center/cover;
  position:relative;
}
.inline-cta-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,31,63,.3));
}
.inline-cta-body{
  padding:26px 22px;
}
.inline-cta-label{
  font-family:var(--latin);font-style:italic;
  font-size:11px;letter-spacing:.25em;color:var(--sun);margin-bottom:10px;
}
.inline-cta-title{
  font-family:var(--mincho);font-weight:500;
  font-size:18px;line-height:1.6;letter-spacing:.05em;margin-bottom:10px;
}
.inline-cta-desc{font-size:12px;line-height:1.9;opacity:.8;margin-bottom:20px}
.inline-cta-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:14px 28px;min-height:48px;
  background:var(--sun);color:#fff;
  font-size:11px;letter-spacing:.2em;
  transition:background .3s;
}
.inline-cta:hover .inline-cta-btn{background:#ff9268}
.inline-cta-btn::after{content:"→"}

/* ===== FAQ ===== */
.article-faq{
  margin-top:60px;padding-top:40px;
  border-top:1px solid var(--line);
}
.article-faq-head{
  font-family:var(--latin);font-style:italic;
  font-size:12px;letter-spacing:.25em;color:var(--sun);margin-bottom:16px;
}
.article-faq h2{
  font-family:var(--mincho);font-weight:500;
  font-size:24px;letter-spacing:.05em;margin-bottom:28px;
  padding:0;border:none;
}
.faq-item{
  border-top:1px solid var(--line);
  padding:20px 0;
}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  font-family:var(--mincho);font-weight:500;
  font-size:15px;letter-spacing:.03em;line-height:1.7;
}
.faq-q::before{
  content:"Q";
  font-family:var(--latin);font-style:italic;
  color:var(--sun);font-size:18px;
  flex-shrink:0;line-height:1;
}
.faq-a{
  display:flex;gap:12px;align-items:flex-start;
  margin-top:14px;
  font-size:13px;line-height:2;color:var(--sea);
}
.faq-a::before{
  content:"A";
  font-family:var(--latin);font-style:italic;
  color:var(--mist);font-size:18px;
  flex-shrink:0;line-height:1;
}

/* ===== Tags / Share ===== */
.article-tags{
  margin-top:48px;padding-top:32px;
  border-top:1px solid var(--line);
  display:flex;gap:8px;flex-wrap:wrap;
}
.article-tags a{
  padding:5px 14px;font-size:10px;letter-spacing:.2em;
  border:1px solid var(--line);color:var(--sea);
  transition:all .3s;
}
.article-tags a:hover{border-color:var(--sun);color:var(--sun)}

.article-share{
  margin-top:32px;display:flex;gap:14px;align-items:center;
  font-size:10px;letter-spacing:.2em;color:var(--mist);
}
.article-share a{
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);font-size:12px;color:var(--sea);
  transition:all .3s;
}
.article-share a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ===== Related ===== */
.related{background:#fff;padding:60px 20px}
.related-inner{max-width:1400px;margin:0 auto}
.related-grid{
  display:flex;flex-direction:column;gap:20px;margin-top:30px;
}
.related-card{
  background:var(--paper);cursor:pointer;
  transition:transform .5s, box-shadow .5s;
  display:flex;flex-direction:column;
}
.related-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,31,63,.12);
}
.related-img{aspect-ratio:16/10;overflow:hidden}
.related-img div{
  width:100%;height:100%;background-size:cover;background-position:center;
  transition:transform .8s ease;
}
.related-card:hover .related-img div{transform:scale(1.06)}
.related-body{padding:22px 20px;display:flex;flex-direction:column;flex:1}
.related-meta{
  display:flex;gap:12px;align-items:center;margin-bottom:12px;
  font-size:10px;letter-spacing:.2em;
  color:var(--mist);font-family:var(--latin);font-style:italic;
}
.related-cat{
  color:var(--sun);font-weight:500;font-family:var(--sans);font-style:normal;
  padding:3px 9px;border:1px solid var(--sun);
  font-size:9px;letter-spacing:.2em;
}
.related-title{
  font-family:var(--mincho);font-size:15px;font-weight:500;
  line-height:1.6;letter-spacing:.04em;
}

/* ===== Floating bar ===== */
.floating-cta{
  position:fixed;bottom:0;left:0;right:0;z-index:40;
  background:var(--ink);
  padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  transform:translateY(120%);
  transition:transform .5s cubic-bezier(.4,0,.2,1);
  box-shadow:0 -10px 30px rgba(0,0,0,.2);
}
.floating-cta.visible{transform:translateY(0)}
.floating-cta-text{
  color:#fff;flex:1;min-width:0;
}
.floating-cta-label{
  font-family:var(--latin);font-style:italic;
  font-size:9px;letter-spacing:.25em;color:var(--sun);margin-bottom:2px;
}
.floating-cta-title{
  font-family:var(--mincho);font-size:13px;font-weight:500;
  letter-spacing:.03em;line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.floating-cta-btn{
  padding:14px 20px;min-height:48px;display:inline-flex;align-items:center;
  background:var(--sun);color:#fff;
  font-size:12px;letter-spacing:.15em;white-space:nowrap;
  transition:background .3s;flex-shrink:0;
}
.floating-cta-btn:hover{background:#ff9268}
.floating-cta-close{
  color:#fff;opacity:.6;font-size:20px;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.floating-cta-close:hover{opacity:1}

/* ========================================
   TABLET (>=600px)
   ======================================== */
@media(min-width:600px){
  .article-hero{min-height:480px}
  .article-hero-content{padding:0 28px 60px}
  .article-hero h1{font-size:32px}
  .article-tldr{margin:50px 28px;padding:32px 28px}
  .article-tldr h2{font-size:18px}
  .article-tldr li,.article-tldr p{font-size:14px}
  .article-author{margin:40px 28px 0;padding:24px 28px}
  .article-author-img{width:56px;height:56px}
  .article-author-name{font-size:15px}
  .article-body-wrap{padding:70px 28px 100px}
  .article-lead{font-size:19px;padding-bottom:44px;margin-bottom:50px}
  .article-container h2{font-size:26px;padding-left:18px}
  .article-container h3{font-size:19px}
  .article-container p,.article-container li{font-size:15px}
  .article-container blockquote{padding:28px 32px 28px 48px}
  .inline-cta-inner{flex-direction:row;align-items:stretch}
  .inline-cta-img{width:40%;height:auto;min-height:200px}
  .inline-cta-body{flex:1;padding:32px 28px;display:flex;flex-direction:column;justify-content:center}
  .inline-cta-title{font-size:20px}
  .article-faq h2{font-size:28px}
  .faq-q{font-size:16px}
  .faq-a{font-size:14px}
  .related{padding:80px 28px}
  .related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
  .floating-cta{padding:14px 24px}
  .floating-cta-title{font-size:14px}
}

/* ========================================
   DESKTOP (>=900px)
   ======================================== */
@media(min-width:900px){
  .article-hero{height:75vh;min-height:540px}
  .article-hero-content{padding:0 40px 80px}
  .article-hero h1{font-size:44px}
  .article-tldr{margin:60px auto;max-width:760px;padding:36px 40px}
  .article-tldr h2{font-size:20px}
  .article-author{margin:50px auto 0;max-width:760px}
  .article-body-wrap{padding:90px 40px 120px}
  .article-lead{font-size:22px}
  .article-container h2{font-size:30px;margin:60px 0 28px;padding-left:20px}
  .article-container h3{font-size:21px;margin:40px 0 20px}
  .inline-cta-title{font-size:22px}
  .article-faq{margin-top:80px;padding-top:50px}
  .article-faq h2{font-size:32px;margin-bottom:32px}
  .related{padding:100px 40px}
  .related-grid{grid-template-columns:repeat(3,1fr);gap:32px;margin-top:50px}

  /* Floating CTA: desktop */
  .floating-cta{
    bottom:24px;right:24px;left:auto;
    max-width:420px;
    padding:16px 20px;border-radius:4px;
  }
}

@media(min-width:1200px){
  .article-hero h1{font-size:56px}
  .article-container h2{font-size:32px}
}
