/* RESET & NORMALIZE */
*,*::before,*::after{box-sizing:border-box;}html{height:100%;}body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ul, ol, li{margin:0;padding:0;}ul,ol{list-style:none;}img{max-width:100%;display:block;}a{text-decoration:none;color:inherit;transition:color 0.2s;}
body{height:100%;min-height:100vh;line-height:1.6;background:#F2F5FA;font-family:'Roboto',Arial,sans-serif;color:#21406A;font-size:16px;-webkit-font-smoothing:antialiased;}

:root {
  --color-primary:#21406A;
  --color-secondary:#F2F5FA;
  --color-accent:#FEC84B;
  --color-white:#fff;
  --color-gray:#e3e6ed;
  --color-shadow:rgba(33,64,106,0.08);
  --text-main:#21406A;
  --text-light:#fff;
  --font-display:'Montserrat', Arial, Helvetica, sans-serif;
  --font-body:'Roboto', Arial, Helvetica, sans-serif;
  --radius:18px;
  --shadow:0 4px 18px var(--color-shadow);
  --focus-outline:2px solid var(--color-accent);
}

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:0.5px;}
h1{font-size:2.25rem;margin-bottom:18px;}
h2{font-size:1.625rem;margin-bottom:16px;}
h3{font-size:1.25rem;margin-bottom:12px;}
p,ul,ol{font-size:1rem;}
p+ul,ul+ul,ul+ol,ol+ul{margin-top:1em;}
strong{font-weight:700;}
small{font-size:0.93em;color:#63789d;}

/* LAYOUTS & SPACING */
.container{width:100%;max-width:1040px;margin:0 auto;padding:0 20px;}
.section{margin-bottom:60px;padding:40px 20px;}
.content-wrapper{display:flex;flex-direction:column;gap:28px;}
.card-container{display:flex;flex-wrap:wrap;gap:24px;}
.card{margin-bottom:20px;position:relative;background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;transition:box-shadow 0.2s;}
.card:hover{box-shadow:0 4px 26px rgba(254,200,75,0.22);}
.content-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;}
.text-image-section{display:flex;align-items:center;gap:30px;flex-wrap:wrap;}
.text-section{display:flex;flex-direction:column;gap:14px;}
.testimonial-card{display:flex;align-items:center;gap:20px;padding:20px;background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;flex-direction:column;}
.testimonial-card.highlighted{background:var(--color-accent);color:var(--color-primary);box-shadow:0 4px 24px rgba(254,200,75,0.12);}
.feature-item{display:flex;flex-direction:column;align-items:flex-start;gap:15px;}
.user-story-box,.highlight-box,.newsletter-signup{background:var(--color-accent);border-radius:var(--radius);box-shadow:0 2px 12px rgba(254,200,75,0.12);padding:28px;display:flex;flex-direction:column;gap:18px;align-items:flex-start;margin-bottom:20px;}

/* NAVIGATION */
header{background:var(--color-secondary);box-shadow:0 2px 8px rgba(33,64,106,0.03);padding:0;position:relative;z-index:10;}
nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;}
nav a{font-family:var(--font-display);font-weight:500;font-size:1rem;color:var(--color-primary);border-radius:10px;padding:8px 13px;transition:background 0.15s,color 0.15s;}
nav a:hover, nav a:focus{background:var(--color-accent);color:var(--color-primary);outline:none;}
.main-nav{display:flex;align-items:center;gap:20px;}
.cta-primary{background:var(--color-primary);color:var(--color-white)!important;font-family:var(--font-display);font-size:1rem;padding:11px 28px;border-radius:50px;font-weight:600;box-shadow:0 2px 16px rgba(33,64,106,0.10);transition:background 0.18s, box-shadow 0.16s;display:inline-block;margin:0 6px 0 0;}
.cta-primary:hover,.cta-primary:focus{background:var(--color-accent);color:var(--color-primary)!important;box-shadow:0 4px 26px rgba(254,200,75,0.22);outline:none;}

/* MOBILE MENU */
.mobile-menu-toggle{display:none;position:relative;z-index:21;background:var(--color-primary);color:var(--color-accent);border:none;padding:10px 18px;font-size:2rem;border-radius:13px;cursor:pointer;transition:background 0.15s;}
.mobile-menu-toggle:focus{outline:var(--focus-outline);}
.mobile-menu{display:none;flex-direction:column;position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--color-secondary);z-index:99;transform:translateX(-105%);transition:transform 0.35s cubic-bezier(.68,-0.55,.27,1.55);padding-top:16px;}
.mobile-menu.open{display:flex;transform:translateX(0);box-shadow:0 0 38px rgba(33,64,106,0.13);}
.mobile-menu-close{background:var(--color-accent);color:var(--color-primary);border:none;font-size:2rem;border-radius:50%;width:48px;height:48px;align-self:flex-end;margin:0 22px 16px 0;cursor:pointer;transition:background 0.15s;}
.mobile-menu-close:hover,.mobile-menu-close:focus{background:var(--color-primary);color:var(--color-accent);}
.mobile-nav{display:flex;flex-direction:column;gap:22px;align-items:flex-start;padding:0 28px;}
.mobile-nav a{font-size:1.15rem;padding:13px 4px;width:100%;color:var(--color-primary);border-radius:10px;}
.mobile-nav a:hover,.mobile-nav a:focus{background:var(--color-accent);color:var(--color-primary);}

/* FOOTER */
footer{background:var(--color-secondary);padding:36px 0;margin-top:60px;box-shadow:0 -2px 10px rgba(33,64,106,0.05);}
.footer-menu, .contact-info, .social-links{margin-bottom:20px;}
.footer-menu{display:flex;flex-wrap:wrap;gap:10px;font-size:0.97rem;align-items:center;}
.footer-menu a{color:var(--color-primary);padding:5px 8px;border-radius:6px;transition:background 0.16s;}
.footer-menu a:hover{background:var(--color-accent);color:var(--color-primary);}
.contact-info p{color:#415d8b;font-size:1rem;margin-bottom:8px;}
.social-links{display:flex;align-items:center;gap:18px;}
.social-links img{height:28px;width:28px;filter:drop-shadow(0 0 2px #fec84b1a);transition:transform 0.16s;}
.social-links img:hover{transform:scale(1.13);}

/* BUTTONS & INTERACTIVE */
button,input[type="submit"],.cta-primary{cursor:pointer;outline:none;}
button:focus,input:focus{outline:var(--focus-outline);}
input,button,select,textarea{font-family:var(--font-body);font-size:1rem;}

/* CARDS & LISTS */
ul>li,ol>li{padding:12px 0 12px 3px;border-bottom:1px solid var(--color-gray);}
ul>li:last-child,ol>li:last-child{border-bottom:none;}
.card a,.content-wrapper a:not(.cta-primary){color:var(--color-primary);font-weight:500;text-decoration:underline;transition:color 0.15s;}
.card a:hover,.content-wrapper a:not(.cta-primary):hover{color:var(--color-accent);}

.card strong{display:block;margin-bottom:5px;}

/* TESTIMONIALS */
.testimonial-card{transition:box-shadow 0.20s, background 0.18s;max-width:540px;margin-left:auto;margin-right:auto;}
.testimonial-card blockquote{color:#284469;font-size:1.08rem;font-style:italic;margin-bottom:10px;line-height:1.7;}
.testimonial-card .star-rating{color:var(--color-accent);font-size:1.15rem;letter-spacing:2px;}
.testimonial-card.highlighted{background:var(--color-accent);color:var(--color-primary);border:2px solid #ffdb86;}
.testimonial-card.highlighted blockquote,.testimonial-card.highlighted p,strong{color:var(--color-primary);}

/* BLOG CARDS */
.blog-post-card{background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 21px;margin-bottom:20px;transition:box-shadow 0.16s, background 0.17s;position:relative;display:flex;flex-direction:column;gap:10px;}
.featured-article{border:2px solid var(--color-accent);box-shadow:0 4px 22px rgba(254,200,75,0.15);}
.category-tag{background:var(--color-accent);color:var(--color-primary);border-radius:100px;padding:4px 14px;font-size:0.93em;display:inline-block;font-weight:600;margin-bottom:8px;}
.blog-post-card h3{margin-bottom:3px;color:var(--color-primary);}

/* SEARCH FORM */
.search-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0;}
.search-form input[type="text"]{padding:10px 16px;border:1px solid #b9bfcb;border-radius:var(--radius);font-size:1rem;flex:1 1 160px;max-width:250px;box-shadow:0 1px 4px rgba(33,64,106,0.05);transition:box-shadow 0.14s,border 0.16s;}
.search-form input:focus{box-shadow:0 2px 10px #fec84b33;border:1.6px solid var(--color-accent);}
.search-form button{padding:11px 24px;background:var(--color-accent);border:none;border-radius:var(--radius);color:var(--color-primary);font-weight:700;font-family:var(--font-display);transition:background 0.14s,color 0.14s;}
.search-form button:hover,.search-form button:focus{background:var(--color-primary);color:var(--color-accent);}

/* PRICES */
.price{color:var(--color-accent);font-weight:700;font-size:1rem;display:inline-block;margin:3px 0;}

/* COOKIE CONSENT BANNER */
.cookie-banner{position:fixed;bottom:0;left:0;width:100%;background:var(--color-primary);color:var(--color-white);display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:2222;padding:22px 18px;box-shadow:0 -2px 18px rgba(33,64,106,0.09);font-size:1rem;transition:transform 0.38s;}
.cookie-banner.hide{transform:translateY(110%);}
.cookie-banner .cookie-btns{display:flex;gap:15px;}
.cookie-banner button,.cookie-banner .cookie-btns button{background:var(--color-accent);color:var(--color-primary);border:none;border-radius:50px;padding:9px 24px;font-family:var(--font-display);font-weight:600;font-size:1rem;cursor:pointer;transition:background 0.14s,color 0.14s;}
.cookie-banner button:hover,.cookie-banner button:focus{background:var(--color-secondary);color:var(--color-primary);}
.cookie-banner .cookie-btns .cookie-settings-btn{background:var(--color-secondary);color:var(--color-primary);}
.cookie-banner .cookie-btns .cookie-settings-btn:hover,.cookie-banner .cookie-btns .cookie-settings-btn:focus{background:var(--color-accent);}

/* COOKIE MODAL */
.cookie-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(33,64,106,0.40);z-index:2223;display:flex;justify-content:center;align-items:center;}
.cookie-modal{background:var(--color-secondary);color:var(--color-primary);border-radius:var(--radius);padding:40px 26px;max-width:96vw;width:390px;box-shadow:0 4px 28px rgba(33,64,106,0.16);display:flex;flex-direction:column;gap:22px;animation:cookieModalPopIn 0.46s cubic-bezier(.68,-0.55,.27,1.55);}
@keyframes cookieModalPopIn{from{transform:scale(0.7);opacity:0;}to{transform:scale(1);opacity:1;}}
.cookie-modal h2{font-size:1.21rem;margin-bottom:8px;}
.cookie-modal label{display:flex;gap:8px;align-items:center;user-select:none;}
.cookie-modal input[type="checkbox"]{accent-color:var(--color-accent);width:20px;height:20px;border-radius:6px;}
.cookie-category{margin-bottom:16px;}
.cookie-modal .cookie-modal-btns{display:flex;flex-direction:row;gap:14px;margin-top:4px;}
.cookie-modal .cookie-modal-btns button{padding:10px 26px;border-radius:50px;font-family:var(--font-display);font-size:1rem;font-weight:600;background:var(--color-primary);color:var(--color-white);border:none;transition:background 0.14s,color 0.14s;}
.cookie-modal .cookie-modal-btns button:hover,.cookie-modal .cookie-modal-btns button:focus{background:var(--color-accent);color:var(--color-primary);}

/* HIGHLIGHT, NEWSLETTER, MISC CARDS */
.highlight-box,.newsletter-signup{border:2px solid #ffdb86;}


/* RESPONSIVE DESIGN */
@media (max-width:1000px){
  .container{padding:0 10px;}
  nav{flex-wrap:wrap;gap:12px;}
}
@media (max-width:900px){
  .main-nav{gap:10px;}
  h1{font-size:1.67rem;}
  h2{font-size:1.27rem;}
  section{padding:32px 7px;}
}
@media (max-width:768px){
  nav .main-nav{display:none;}
  .mobile-menu-toggle{display:inline-block;}
  .cta-primary{margin:0;}
  nav{gap:8px;}
  .container{padding:0 6px;}
  .section{padding:27px 8px;}
  .content-wrapper,.card-container,.content-grid,.text-section{gap:15px;}
  .text-image-section{flex-direction:column;gap:19px;}
  .feature-item{gap:8px;}
  .footer-menu{flex-direction:column;gap:6px;}
  .contact-info{font-size:0.98em;}
}
@media (max-width:520px){
  html{font-size:14px;}
  .container{padding:0 2px;}
  .newsletter-signup,.highlight-box{padding:16px 7px;}
  .card,.blog-post-card{padding:15px 7px;}
  .cookie-modal{padding:20px 7px;}
}

/* ANIMATIONS & MICRO-INTERACTIONS */
.cta-primary,.card,.testimonial-card,.blog-post-card,.highlight-box,.newsletter-signup, .category-tag, .social-links img {
  transition:all 0.18s cubic-bezier(.62,.3,.3,1.12);
}
.cta-primary:active{transform:scale(0.97);} 
.card:hover,.blog-post-card:hover{box-shadow:0 8px 30px rgba(254,200,75,0.17);}
/* Subtle bounce for featured/testimonial hover */
.featured-article:hover,.testimonial-card.highlighted:hover{transform:translateY(-4px) scale(1.025);}

/* Z-INDEX for overlays and menus */
header{z-index:1000;}
.mobile-menu{z-index:1099;}
.cookie-banner{z-index:2222;}
.cookie-modal-overlay{z-index:2223;}

/* FOCUS VISIBLE OUTLINE */
a:focus,button:focus{outline:var(--focus-outline);box-shadow:0 0 0 3px #fdedbf99;}

/* UTILITY */
.mt-0{margin-top:0!important;}
.mb-0{margin-bottom:0!important;}
.gap-0{gap:0!important;}

/* SCROLLBAR (for mobile nav/modal) */
.mobile-menu,.cookie-modal-overlay{scrollbar-width:thin;scrollbar-color:var(--color-accent) var(--color-secondary);}
.mobile-menu::-webkit-scrollbar,.cookie-modal-overlay::-webkit-scrollbar{width:8px;background:var(--color-secondary);}
.mobile-menu::-webkit-scrollbar-thumb,.cookie-modal-overlay::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:10px;}

/* ARIA accessible hiding */
[hidden]{display:none!important;}

/* Fix for absolute/relative in content cards: only allow images or icons absolute if needed */
.card img[alt],.blog-post-card img[alt]{position:relative;z-index:0;}

/* ENSURE ALL FLEX LAYOUTS NEVER USE GRID */
/* NO display:grid or column-* anywhere */
