/* === Hero === */
.hero-section{background:linear-gradient(135deg,#232F3E 0%,#37475A 50%,#485769 100%);border-radius:var(--radius-xl);padding:var(--spacing-3xl) var(--spacing-2xl);margin-bottom:var(--spacing-3xl);color:var(--color-text-white);position:relative;overflow:hidden;}
.hero-section::before{content:'';position:absolute;top:-50%;right:-10%;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(255,153,0,0.12),transparent 70%);pointer-events:none;}
.hero-badge{display:inline-block;background:rgba(255,153,0,0.2);color:var(--color-aws-orange-original);padding:6px 18px;border-radius:20px;font-size:0.8em;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-base);letter-spacing:0.05em;}
.hero-title{font-size:2.2em;font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm);line-height:1.3;color:#FFFFFF;}
.hero-subtitle{font-size:1.05em;opacity:0.85;margin-bottom:var(--spacing-2xl);max-width:750px;}
.key-takeaways{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-base);}
.takeaway-card{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:var(--radius-base);padding:var(--spacing-base) var(--spacing-lg);backdrop-filter:blur(10px);}
.takeaway-card .takeaway-num{display:inline-block;background:var(--color-aws-orange-original);color:#fff;width:32px;height:32px;border-radius:var(--radius-full);text-align:center;line-height:32px;font-size:0.8em;font-weight:var(--font-weight-bold);margin-bottom:8px;}
.takeaway-card p{font-size:0.88em;line-height:1.6;opacity:0.92;}

/* === Section === */
.content-section{background:var(--color-bg-white);border-radius:var(--radius-xl);padding:var(--spacing-2xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-border-light);}
.section-label{display:inline-block;padding:4px 14px;border-radius:16px;font-size:0.7em;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md);letter-spacing:0.04em;}
.section-label.networking{background:linear-gradient(135deg,#DBEAFE,#BFDBFE);color:#1D4ED8;}
.section-label.sdwan{background:linear-gradient(135deg,#D1FAE5,#A7F3D0);color:#047857;}
.section-label.aws{background:linear-gradient(135deg,#FFF7ED,#FFEDD5);color:#C2410C;}
.section-label.tips{background:linear-gradient(135deg,#FEF3C7,#FDE68A);color:#92400E;}
.section-label.history{background:linear-gradient(135deg,#F3E8FF,#E9D5FF);color:#7C3AED;}
.section-title{font-size:1.5em;font-weight:var(--font-weight-bold);color:var(--color-aws-dark);margin-bottom:var(--spacing-base);line-height:1.35;}
.section-lead{font-size:1em;color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);max-width:820px;line-height:1.7;}

/* === Analogy Box === */
.analogy-box{background:linear-gradient(135deg,#FFF7ED,#FFFBEB);border:2px solid #FDBA74;border-radius:var(--radius-lg);padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl);position:relative;}
.analogy-box::before{content:'';font-size:1.6em;position:absolute;top:-18px;left:20px;background:var(--color-bg-white);padding:0 8px;border-radius:8px;}
.analogy-box .analogy-title{font-size:1em;font-weight:var(--font-weight-bold);color:#C2410C;margin-bottom:8px;}
.analogy-box p{font-size:0.92em;color:var(--color-text-primary);line-height:1.7;}

/* === Tables === */
.mapping-table-wrapper{overflow-x:auto;margin-bottom:var(--spacing-xl);}
.mapping-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:var(--radius-base);overflow:hidden;font-size:0.88em;}
.mapping-table thead th{background:var(--color-aws-dark);color:var(--color-text-white);padding:14px 18px;text-align:left;font-weight:var(--font-weight-semibold);}
.mapping-table tbody td{padding:14px 18px;border-bottom:1px solid var(--color-border-light);vertical-align:top;}
.mapping-table tbody tr:nth-child(even){background:var(--color-bg-light);}
.mapping-table tbody tr:hover{background:#EEF2FF;}

/* === Feature Grid === */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-base);margin-bottom:var(--spacing-xl);}
.feature-grid.three-col{grid-template-columns:repeat(3,1fr);}
.feature-grid.four-col{grid-template-columns:repeat(4,1fr);}
.feature-card{background:var(--color-bg-light);border:1px solid var(--color-border-light);border-radius:var(--radius-base);padding:var(--spacing-lg);transition:transform var(--transition-base),box-shadow var(--transition-base);}
.feature-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.feature-card .card-icon{font-size:1.8em;margin-bottom:var(--spacing-sm);}
.feature-card .card-title{font-size:0.92em;font-weight:var(--font-weight-bold);color:var(--color-aws-dark);margin-bottom:8px;}
.feature-card .card-desc{font-size:0.82em;color:var(--color-text-secondary);line-height:1.6;}

/* === Comparison === */
.comparison-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);}
.comparison-card{border-radius:var(--radius-lg);padding:var(--spacing-xl);border:2px solid var(--color-border-light);}
.comparison-card.traditional{border-color:#94A3B8;background:linear-gradient(180deg,#F8FAFC,#F1F5F9);}
.comparison-card.modern{border-color:#34D399;background:linear-gradient(180deg,#ECFDF5,#D1FAE5);}
.comparison-card .comp-title{font-size:1.05em;font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);}
.comparison-card ul{list-style:none;padding:0;}
.comparison-card li{font-size:0.85em;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.06);display:flex;align-items:flex-start;gap:8px;line-height:1.5;}

/* === Step Flow === */
.step-flow{display:flex;flex-direction:column;gap:var(--spacing-base);margin-bottom:var(--spacing-xl);}
.step-item{display:flex;gap:var(--spacing-lg);align-items:flex-start;background:var(--color-bg-light);border-radius:var(--radius-base);padding:var(--spacing-lg);border-left:4px solid var(--color-info);}
.step-item .step-num{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-info);color:white;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:1em;}
.step-item .step-content .step-title{font-weight:var(--font-weight-bold);font-size:0.95em;margin-bottom:4px;color:var(--color-aws-dark);}
.step-item .step-content .step-desc{font-size:0.85em;color:var(--color-text-secondary);line-height:1.6;}

/* === SVG Container === */
.svg-container{margin:var(--spacing-xl) 0;overflow-x:auto;}
.svg-container svg{display:block;margin:0 auto;max-width:100%;height:auto;}
.svg-caption{text-align:center;font-size:0.82em;color:var(--color-text-tertiary);margin-top:8px;font-style:italic;}

/* === Code Tabs === */
.code-tabs{margin-bottom:var(--spacing-xl);}
.tab-buttons{display:flex;gap:0;border-bottom:2px solid var(--color-border-light);}
.tab-btn{padding:10px 24px;background:transparent;border:none;font-size:0.82em;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast);font-family:inherit;}
.tab-btn.active{color:var(--color-info);border-bottom-color:var(--color-info);}
.tab-btn:hover{color:var(--color-aws-dark);}
.tab-content{display:none;background:#1E293B;border-radius:0 0 var(--radius-base) var(--radius-base);padding:var(--spacing-lg);overflow-x:auto;}
.tab-content.active{display:block;}
.tab-content pre{margin:0;font-family:'Courier New',Consolas,monospace;font-size:0.76em;line-height:1.6;color:#E2E8F0;white-space:pre;}
.tab-content .comment{color:#94A3B8;}
.tab-content .keyword{color:#7DD3FC;}
.tab-content .string{color:#86EFAC;}
.tab-content .prop{color:#FDBA74;}

/* === Practices Grid === */
.practices-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);}
.practice-col{border-radius:var(--radius-lg);padding:var(--spacing-xl);}
.practice-col.best{background:linear-gradient(180deg,#ECFDF5,#D1FAE5);border:2px solid #34D399;}
.practice-col.anti{background:linear-gradient(180deg,#FEF2F2,#FEE2E2);border:2px solid #F87171;}
.practice-col .prac-title{font-size:1.02em;font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);}
.practice-col ul{list-style:none;padding:0;}
.practice-col li{font-size:0.85em;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.06);line-height:1.55;}

/* === Trouble === */
.trouble-item{background:var(--color-bg-light);border-radius:var(--radius-base);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);border-left:4px solid var(--color-warning);}
.trouble-item .trouble-q{font-weight:var(--font-weight-bold);font-size:0.92em;color:var(--color-aws-dark);margin-bottom:6px;}
.trouble-item .trouble-a{font-size:0.85em;color:var(--color-text-secondary);line-height:1.6;}

/* === Exam Tips === */
.exam-tip-box{background:linear-gradient(135deg,#FFFBEB,#FEF3C7);border:2px solid #F59E0B;border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);position:relative;}
.exam-tip-box::before{content:'';font-size:1.5em;position:absolute;top:-16px;left:20px;background:var(--color-bg-white);padding:0 8px;border-radius:8px;}
.exam-tip-box .tip-title{font-weight:var(--font-weight-bold);font-size:1.02em;color:#92400E;margin-bottom:var(--spacing-md);}
.exam-tip-box li{font-size:0.88em;margin-bottom:8px;line-height:1.6;color:var(--color-text-primary);}

/* === FAQ === */
.faq-item{border:1px solid var(--color-border-light);border-radius:var(--radius-base);margin-bottom:var(--spacing-sm);overflow:hidden;background:var(--color-bg-white);}
.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);cursor:pointer;font-weight:var(--font-weight-semibold);font-size:0.92em;color:var(--color-aws-dark);background:none;border:none;width:100%;text-align:left;font-family:inherit;transition:background var(--transition-fast);}
.faq-question:hover{background:var(--color-bg-light);}
.faq-question .faq-icon{font-size:1.2em;transition:transform var(--transition-base);flex-shrink:0;margin-left:12px;}
.faq-item.open .faq-question .faq-icon{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease;}
.faq-item.open .faq-answer{max-height:600px;padding:0 var(--spacing-xl) var(--spacing-lg);}
.faq-answer p{font-size:0.88em;color:var(--color-text-secondary);line-height:1.7;}

/* === Cheat Sheet === */
.cheat-sheet{background:linear-gradient(135deg,#EEF2FF,#E0E7FF);border:2px solid #818CF8;border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);}
.cheat-sheet .cheat-title{font-weight:var(--font-weight-bold);font-size:1.1em;color:#3730A3;margin-bottom:var(--spacing-md);}
.cheat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);}
.cheat-item{background:rgba(255,255,255,0.8);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-base);}
.cheat-item .cheat-term{font-weight:var(--font-weight-bold);font-size:0.85em;color:#4338CA;margin-bottom:4px;}
.cheat-item .cheat-def{font-size:0.8em;color:var(--color-text-secondary);line-height:1.5;}

/* === Highlight === */
.highlight-box{border-radius:var(--radius-base);padding:var(--spacing-lg);margin-bottom:var(--spacing-base);}
.highlight-box.info{background:#EFF6FF;border-left:4px solid #3B82F6;}
.highlight-box.warning{background:#FFFBEB;border-left:4px solid #F59E0B;}
.highlight-box.success{background:#ECFDF5;border-left:4px solid #10B981;}
.highlight-box p{font-size:0.88em;line-height:1.65;}

/* === Visual Divider === */
.visual-divider{text-align:center;padding:var(--spacing-xl) 0;margin:var(--spacing-sm) 0;position:relative;}
.visual-divider::before{content:'';position:absolute;top:50%;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--color-border-light),transparent);}
.visual-divider span{background:var(--color-bg-light);padding:0 20px;position:relative;font-size:1.5em;}

/* === Sub Heading === */
.sub-heading{font-size:1.1em;font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);color:var(--color-aws-dark);padding-left:14px;border-left:4px solid var(--color-aws-orange-original);}

/* === Responsive === */
@media(max-width:768px){
  .key-takeaways,.feature-grid,.feature-grid.three-col,.feature-grid.four-col,.comparison-wrapper,.practices-grid,.cheat-grid{grid-template-columns:1fr;}
  .hero-title{font-size:1.5em;}
  .content-section{padding:var(--spacing-xl) var(--spacing-base);}
}
