/* ==========================================================================
   Shared styles for inner pages (services, pricing, portfolio, process,
   about, blog, contact, legal)
   ========================================================================== */

.container-narrow{ max-width: 760px; }
.container-mid{ max-width: 920px; }

/* ---- Service detail cards ---- */
.service-detail{
  display:grid; grid-template-columns: 64px 1fr; gap:20px;
  background: var(--color-surface); border:1px solid var(--color-border);
  border-radius: var(--p-radius-lg); padding:28px; box-shadow: var(--shadow-card);
}
.service-detail .icon-tile{ width:64px; height:64px; border-radius: var(--p-radius-lg); }
.service-detail .icon-tile svg{ width:30px; height:30px; }
.service-detail h3{ font-size:19px; margin-bottom:8px; }
.service-detail p{ color: var(--color-text-muted); font-size:14.5px; margin-bottom:14px; }
.service-detail ul{ display:flex; flex-direction:column; gap:8px; }
.service-detail li{
  font-size:13.5px; color: var(--color-text-soft); padding-left:22px; position:relative;
}
.service-detail li::before{
  content:''; position:absolute; left:0; top:4px; width:14px; height:14px;
  background: var(--color-secondary); border-radius:50%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* ---- Pricing table (full page) ---- */
.pricing-toggle{ display:flex; justify-content:center; margin-bottom:36px; }
.price-card{
  background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-lg);
  padding:30px; display:flex; flex-direction:column; gap:18px; position:relative;
}
.price-card.featured{ border-color: var(--color-primary); box-shadow: var(--shadow-lift); }
.price-badge{
  position:absolute; top:-13px; left:50%; transform: translateX(-50%);
  background: var(--gradient-brand); color:#fff; font:700 11.5px/1 var(--font-body);
  padding:6px 14px; border-radius: var(--p-radius-full);
}
.price-card h3{ font-size:20px; }
.price-tag{ font:800 22px/1 var(--font-display); color: var(--color-primary); }
.price-tag small{ font:500 12px/1 var(--font-body); color: var(--color-text-muted); display:block; margin-top:4px; }
.price-features{ display:flex; flex-direction:column; gap:11px; flex:1; }
.price-features li{ font-size:13.5px; color: var(--color-text-soft); padding-left:24px; position:relative; }
.price-features li::before{
  content:''; position:absolute; left:0; top:3px; width:16px; height:16px;
  background: var(--color-secondary); border-radius:50%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;
}

.addon-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
@media (max-width: 780px){ .addon-grid{ grid-template-columns: 1fr; } }
.addon-card{ background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-md); padding:20px; }
.addon-card h5{ font-size:14.5px; margin-bottom:6px; }
.addon-card p{ font-size:13px; color: var(--color-text-muted); }

/* ---- Portfolio filter grid ---- */
.filter-bar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
.filter-btn{
  border:1px solid var(--color-border); background: var(--color-surface); color: var(--color-text-soft);
  padding:9px 18px; border-radius: var(--p-radius-full); font:600 13px/1 var(--font-body);
  transition: all var(--p-duration-fast) var(--p-ease);
}
.filter-btn.active, .filter-btn:hover{ background: var(--gradient-brand); color:#fff; border-color:transparent; }
.portfolio-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
@media (max-width: 980px){ .portfolio-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .portfolio-grid{ grid-template-columns: 1fr; } }
.portfolio-item[hidden]{ display:none; }

/* ---- Process page ---- */
.process-step{
  display:grid; grid-template-columns: 80px 1fr; gap:24px;
  padding-block:32px; border-bottom:1px solid var(--color-border);
}
.process-step:last-child{ border-bottom:none; }
.process-step .step-num{
  width:56px; height:56px; border-radius:50%; background: var(--gradient-brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font:800 20px/1 var(--font-display);
}
.process-step h3{ font-size:19px; margin-bottom:8px; }
.process-step p{ color: var(--color-text-muted); font-size:14.5px; margin-bottom:12px; }
.process-step .sla{
  display:inline-flex; align-items:center; gap:6px; font:700 12px/1 var(--font-body);
  color: var(--color-secondary); background: var(--p-green-50); padding:7px 12px; border-radius: var(--p-radius-full);
}
.process-step .sla svg{ width:14px; height:14px; }

/* ---- About page ---- */
.about-hero-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:48px; align-items:center; }
@media (max-width: 860px){ .about-hero-grid{ grid-template-columns:1fr; } }
.value-card{ background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-lg); padding:24px; box-shadow: var(--shadow-card); }
.value-card h4{ font-size:16px; margin-bottom:8px; }
.value-card p{ font-size:13.5px; color: var(--color-text-muted); }
.stat-strip{ display:flex; justify-content:space-around; flex-wrap:wrap; gap:24px; text-align:center; }
.stat-strip strong{ display:block; font:800 30px/1 var(--font-display); color: var(--color-primary); }
.stat-strip span{ font-size:13px; color: var(--color-text-muted); }

/* ---- Blog list ---- */
.blog-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
@media (max-width: 980px){ .blog-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .blog-grid{ grid-template-columns: 1fr; } }
.blog-card{
  background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-lg);
  overflow:hidden; box-shadow: var(--shadow-card); display:flex; flex-direction:column;
  transition: transform var(--p-duration-fast) var(--p-ease), box-shadow var(--p-duration-fast) var(--p-ease);
}
.blog-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-pop); }
.blog-card .thumb{ aspect-ratio: 16/10; overflow:hidden; }
.blog-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.blog-card-body{ padding:20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.blog-cat{ font:700 11px/1 var(--font-body); text-transform:uppercase; letter-spacing:.05em; color: var(--color-secondary); }
.blog-card h3{ font-size:16px; line-height:1.35; }
.blog-card p{ font-size:13.5px; color: var(--color-text-muted); flex:1; }
.blog-meta{ font-size:12px; color: var(--color-text-muted); display:flex; gap:8px; align-items:center; }

/* ---- Blog post article ---- */
.post-hero-img{ border-radius: var(--p-radius-lg); overflow:hidden; margin-bottom:36px; box-shadow: var(--shadow-card); aspect-ratio:21/9; }
.post-hero-img img{ width:100%; height:100%; object-fit:cover; }
.post-meta{ display:flex; gap:16px; align-items:center; color: var(--color-text-muted); font-size:13.5px; margin-bottom:14px; flex-wrap:wrap; }
.post-body{ max-width: 720px; margin-inline:auto; font-size:16.5px; line-height:1.8; color: var(--color-text-soft); }
.post-body h2{ font-size:24px; margin-block:40px 16px; }
.post-body h3{ font-size:19px; margin-block:28px 12px; }
.post-body p{ margin-bottom:18px; }
.post-body ul, .post-body ol{ margin-bottom:18px; padding-left:22px; list-style:disc; display:flex; flex-direction:column; gap:8px; }
.post-body ol{ list-style:decimal; }
.post-body img{ border-radius: var(--p-radius-md); margin-block:24px; }
.post-body figcaption{ font-size:13px; color: var(--color-text-muted); text-align:center; margin-top:-14px; margin-bottom:24px; }
.post-body blockquote{
  border-left:3px solid var(--color-primary); padding: 4px 20px; margin: 24px 0;
  font-style:italic; color: var(--color-text-soft); font-family: var(--font-display);
}
.post-cta{
  max-width:720px; margin: 48px auto 0; background: var(--color-bg-alt); border-radius: var(--p-radius-lg);
  padding:26px 30px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.post-cta p{ font:700 15.5px/1.4 var(--font-display); max-width:380px; }
.related-posts{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; margin-top:20px; }
@media (max-width: 780px){ .related-posts{ grid-template-columns:1fr; } }

/* ---- Contact page ---- */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:40px; align-items:start; }
@media (max-width: 900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info-card{ background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-lg); padding:28px; box-shadow: var(--shadow-card); }
.contact-info-list{ display:flex; flex-direction:column; gap:20px; margin-top:20px; }
.contact-info-item{ display:flex; gap:14px; align-items:flex-start; }
.contact-info-item .icon-tile{ width:40px; height:40px; border-radius: var(--p-radius-sm); }
.contact-info-item .icon-tile svg{ width:19px; height:19px; }
.contact-info-item strong{ font-size:14px; display:block; margin-bottom:2px; }
.contact-info-item span, .contact-info-item a{ font-size:13.5px; color: var(--color-text-muted); }
.map-embed{ border-radius: var(--p-radius-md); overflow:hidden; margin-top:20px; aspect-ratio:16/10; border:1px solid var(--color-border); }
.map-embed iframe{ width:100%; height:100%; border:0; }

.form-card{ background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--p-radius-lg); padding:30px; box-shadow: var(--shadow-card); }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width: 560px){ .form-row{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.form-field label{ font:600 13px/1 var(--font-body); color: var(--color-text-soft); }
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--color-border); border-radius: var(--p-radius-sm); padding:12px 14px;
  background: var(--color-bg); color: var(--color-text); font-size:14.5px;
  transition: border-color var(--p-duration-fast) var(--p-ease);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color: var(--color-primary); outline:none; }
.form-note{ font-size:12.5px; color: var(--color-text-muted); margin-top:6px; }
.form-success{
  display:none; align-items:center; gap:12px; background: var(--p-green-50); color: var(--p-green-700);
  padding:16px 18px; border-radius: var(--p-radius-md); font:600 14px/1.4 var(--font-body); margin-top:16px;
}
.form-success.show{ display:flex; }
.form-success svg{ width:20px; height:20px; flex-shrink:0; }

/* ---- Legal pages ---- */
.legal-layout{ display:grid; grid-template-columns: 220px 1fr; gap:48px; align-items:start; }
@media (max-width: 860px){ .legal-layout{ grid-template-columns:1fr; } }
.legal-toc{ position:sticky; top: calc(var(--header-h) + 20px); display:flex; flex-direction:column; gap:4px; }
.legal-toc a{ font-size:13.5px; color: var(--color-text-muted); padding:8px 12px; border-radius: var(--p-radius-sm); border-left:2px solid transparent; }
.legal-toc a:hover, .legal-toc a.active{ color: var(--color-primary); border-left-color: var(--color-primary); background: var(--color-bg-alt); }
.legal-body{ max-width: 720px; }
.legal-body h2{ font-size:21px; margin-block:36px 14px; scroll-margin-top: calc(var(--header-h) + 20px); }
.legal-body h2:first-child{ margin-top:0; }
.legal-body p{ margin-bottom:14px; color: var(--color-text-soft); line-height:1.75; }
.legal-body ul{ margin-bottom:14px; padding-left:20px; list-style:disc; display:flex; flex-direction:column; gap:6px; color: var(--color-text-soft); }
.legal-updated{ font-size:13px; color: var(--color-text-muted); margin-bottom:8px; }

/* ---- 404 ---- */
.error-page{ min-height:60vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:20px; padding-block:80px; }
.error-code{ font:800 clamp(80px,14vw,140px)/1 var(--font-display); background: var(--gradient-brand); -webkit-background-clip:text; background-clip:text; color:transparent; }
