/*
Theme Name: Literary Louis Gutenberg Astra Child
Theme URI: https://literarylouis.com/
Description: A free Gutenberg-first Astra child theme for Literary Louis, inspired by Astra's Vlogger starter design. No Elementor required.
Author: Literary Louis
Template: astra
Version: 2.0.0
Text Domain: literary-louis-gutenberg
*/

:root{
  --ll-black:#000000;
  --ll-white:#ffffff;
  --ll-pink:#ff5fa2;
  --ll-yellow:#f9c51b;
  --ll-ink:#101010;
  --ll-soft:#171717;
  --ll-muted:#bdbdbd;
  --ll-radius:26px;
  --ll-radius-sm:18px;
  --ll-shadow:0 18px 55px rgba(0,0,0,.18);
  --ll-max:1180px;
}

html{scroll-behavior:smooth}
body{background:var(--ll-black);color:var(--ll-white);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{transition:color .2s ease,opacity .2s ease,transform .2s ease}

/* Astra shell */
.ast-primary-header-bar,.site-header .ast-primary-header-bar,.ast-mobile-header-wrap .ast-primary-header-bar{background:rgba(0,0,0,.97)!important;border-bottom-color:rgba(255,255,255,.08)!important}
.main-header-menu>.menu-item>.menu-link,.ast-header-break-point .main-navigation ul .menu-item .menu-link,.site-title a{color:#fff!important;font-weight:800}
.main-header-menu>.menu-item>.menu-link:hover,.main-header-menu>.current-menu-item>.menu-link{color:var(--ll-yellow)!important}
.ast-header-button-1 .ast-custom-button,.ast-builder-button-wrap .ast-custom-button{background:var(--ll-yellow)!important;color:#000!important;border:0!important;border-radius:999px!important;font-weight:900!important;padding:13px 20px!important}
.site-primary-footer-wrap,.site-below-footer-wrap,.ast-small-footer{background:#050505!important;color:#fff!important;border-color:rgba(255,255,255,.08)!important}
.site-footer a{color:var(--ll-yellow)!important}

/* Managed Gutenberg pages */
.ll-managed-page .entry-header{display:none}
.ll-managed-page .site-content>.ast-container{max-width:none!important;padding-left:0!important;padding-right:0!important}
.ll-managed-page .content-area{width:100%!important;margin:0!important}
.ll-managed-page .site-main{width:100%!important}
.ll-managed-page .entry-content{margin:0!important}
.ll-managed-page .entry-content>.alignfull{margin-left:0!important;margin-right:0!important;width:100%!important;max-width:none!important}

/* Gutenberg layout helpers */
.ll-section{padding:88px 28px}
.ll-section.ll-tight{padding-top:54px;padding-bottom:54px}
.ll-section>.wp-block-group__inner-container,.ll-section>.wp-block-columns,.ll-section>.wp-block-query,.ll-section>.wp-block-buttons,.ll-section>.wp-block-heading,.ll-section>p{max-width:var(--ll-max);margin-left:auto;margin-right:auto}
.ll-dark{background:var(--ll-black);color:#fff}
.ll-soft-dark{background:var(--ll-soft);color:#fff}
.ll-white{background:var(--ll-white);color:#000}
.ll-yellow{background:var(--ll-yellow);color:#000}
.ll-pink{background:var(--ll-pink);color:#000}
.ll-gradient{background:linear-gradient(135deg,var(--ll-yellow),var(--ll-pink));color:#000}
.ll-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px!important;font-weight:900!important;margin-bottom:12px!important}
.ll-display{font-size:clamp(48px,7vw,96px)!important;line-height:.94!important;letter-spacing:-.055em!important;font-weight:900!important;margin-top:0!important;margin-bottom:22px!important}
.ll-h2{font-size:clamp(34px,4.3vw,62px)!important;line-height:1!important;letter-spacing:-.04em!important;font-weight:900!important;margin-top:0!important}
.ll-lead{font-size:clamp(18px,2vw,24px)!important;line-height:1.5!important;max-width:760px}
.ll-copy{font-size:17px;line-height:1.75}
.ll-muted{color:var(--ll-muted)!important}
.ll-centre{text-align:center}
.ll-max-copy{max-width:760px!important}

/* Hero */
.ll-hero{position:relative;overflow:hidden;min-height:76vh;display:flex;align-items:center}
.ll-hero:before{content:"";position:absolute;width:430px;height:430px;border:34px solid transparent;border-top-color:var(--ll-yellow);border-right-color:var(--ll-pink);border-radius:50%;right:-150px;top:-120px;transform:rotate(18deg);opacity:.95;pointer-events:none}
.ll-hero .wp-block-columns{align-items:center!important;position:relative;z-index:2}
.ll-photo-frame{position:relative;padding:18px}
.ll-photo-frame:before{content:"";position:absolute;inset:0;border-radius:38% 62% 55% 45%/43% 37% 63% 57%;background:linear-gradient(135deg,var(--ll-yellow),var(--ll-pink));z-index:0}
.ll-photo-frame img{position:relative;z-index:1;border-radius:34% 66% 60% 40%/45% 40% 60% 55%;aspect-ratio:4/5;object-fit:cover;width:100%}

/* Buttons */
.wp-block-button__link{border-radius:999px!important;padding:14px 22px!important;font-weight:900!important;text-decoration:none!important}
.ll-btn-primary .wp-block-button__link{background:var(--ll-yellow)!important;color:#000!important}
.ll-btn-pink .wp-block-button__link{background:var(--ll-pink)!important;color:#000!important}
.ll-btn-outline .wp-block-button__link{background:transparent!important;color:#fff!important;border:2px solid #fff!important}
.ll-btn-dark .wp-block-button__link{background:#000!important;color:#fff!important}

/* Topic / feature cards */
.ll-card-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px!important}
.ll-card-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ll-card-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ll-card{border-radius:var(--ll-radius);overflow:hidden;box-shadow:var(--ll-shadow);height:100%;background:#fff;color:#000}
.ll-card>.wp-block-group__inner-container,.ll-card-body{padding:26px}
.ll-card h3,.ll-card .wp-block-post-title{font-size:clamp(22px,2.2vw,30px)!important;line-height:1.05!important;letter-spacing:-.03em!important;font-weight:900!important;margin-top:0!important}
.ll-card p{color:#2c2c2c;line-height:1.58}
.ll-card a{color:#000;font-weight:900;text-decoration:none}
.ll-card-yellow{background:var(--ll-yellow);color:#000}
.ll-card-pink{background:var(--ll-pink);color:#000}
.ll-card-white{background:#fff;color:#000}
.ll-card-dark{background:#111;color:#fff;border:1px solid rgba(255,255,255,.1)}
.ll-card-dark p,.ll-card-dark a{color:#fff}
.ll-card-media img,.ll-card .wp-block-post-featured-image img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ll-kicker,.ll-card .taxonomy-category{font-size:12px!important;text-transform:uppercase;letter-spacing:.12em;font-weight:900!important}

/* Query loops */
.ll-query .wp-block-post-template{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px!important;margin:0!important}
.ll-query.ll-query-4 .wp-block-post-template{grid-template-columns:repeat(4,minmax(0,1fr))}
.ll-query .wp-block-post{background:#fff;color:#000;border-radius:var(--ll-radius);overflow:hidden;box-shadow:var(--ll-shadow);list-style:none}
.ll-query .wp-block-post-featured-image{margin:0!important}
.ll-query .wp-block-post-featured-image img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ll-query .wp-block-post-title,.ll-query .wp-block-post-excerpt,.ll-query .wp-block-post-terms{padding-left:22px;padding-right:22px}
.ll-query .wp-block-post-title{font-size:24px!important;line-height:1.08!important;font-weight:900!important;letter-spacing:-.03em!important;margin:18px 0 10px!important}
.ll-query .wp-block-post-title a{color:#000;text-decoration:none}
.ll-query .wp-block-post-excerpt{padding-bottom:22px;color:#333}
.ll-query .wp-block-post-terms{padding-top:20px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}
.ll-query .wp-block-query-pagination{margin-top:30px;gap:12px}
.ll-query .wp-block-query-pagination a{color:var(--ll-yellow);font-weight:900}

/* Stats and social blocks */
.ll-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important}
.ll-stat{border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:22px;background:#101010}
.ll-stat h3{font-size:clamp(30px,4vw,52px)!important;line-height:1!important;color:var(--ll-yellow)!important;letter-spacing:-.04em!important;margin:0 0 8px!important;font-weight:900!important}
.ll-stat p{margin:0;color:#fff}
.ll-social-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important}
.ll-social-card{border-radius:20px;padding:22px!important;min-height:120px;display:flex;align-items:flex-end}
.ll-social-card h3{margin:0!important;font-size:22px!important;font-weight:900!important}
.ll-social-card a{color:#000!important;text-decoration:none!important}

/* Horizontal favourite books rail, no plugin needed */
.ll-book-rail{display:flex!important;gap:18px!important;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.ll-book-rail>.wp-block-group{min-width:min(280px,78vw);scroll-snap-align:start}

/* Quotes / callouts */
.ll-callout{border-radius:var(--ll-radius);padding:34px!important}
.ll-callout blockquote,.ll-callout p{margin-top:0}

/* Native blog and archives */
.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.blog .site-main .ast-article-post,.archive .site-main .ast-article-post{background:#fff;color:#000;border-radius:22px;overflow:hidden;margin-bottom:26px;padding:30px}
.entry-title a,.entry-title{color:#000;font-weight:900;letter-spacing:-.025em}
.single-post .entry-content{font-size:18px;line-height:1.78}
.single-post .entry-content h2,.single-post .entry-content h3{font-weight:900;letter-spacing:-.025em}
.single-post .entry-content a{color:#b81562;text-decoration:underline}
.ast-single-post-featured-section img,.post-thumb img{border-radius:20px}

/* WooCommerce */
.woocommerce-page .site-content{background:#fff;color:#000}
.woocommerce ul.products li.product{border:1px solid #e8e8e8;border-radius:20px;padding:16px;background:#fff}
.woocommerce ul.products li.product img{border-radius:14px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-weight:900;color:#000}
.woocommerce ul.products li.product .price{color:#b81562;font-weight:800}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{background:var(--ll-yellow)!important;color:#000!important;border-radius:999px!important;font-weight:900!important}

/* Contact form */
.ll-contact-form{display:grid;gap:14px;max-width:760px}
.ll-contact-form .ll-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ll-contact-form label{font-weight:800;display:block;margin-bottom:6px}
.ll-contact-form input,.ll-contact-form select,.ll-contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.18);background:#111;color:#fff;padding:14px 15px;border-radius:14px}
.ll-contact-form textarea{min-height:170px;resize:vertical}
.ll-contact-form button{border:0;background:var(--ll-yellow);color:#000;border-radius:999px;padding:14px 22px;font-weight:900;cursor:pointer}
.ll-notice{padding:14px 16px;border-radius:14px;margin-bottom:16px;background:#161616;border:1px solid rgba(255,255,255,.16)}
.ll-notice-success{border-color:#7adf9b}.ll-notice-error{border-color:#ff7e9f}

@media(max-width:921px){
  .ll-section{padding:68px 20px}
  .ll-card-grid,.ll-card-grid-4,.ll-stats,.ll-social-grid,.ll-query .wp-block-post-template,.ll-query.ll-query-4 .wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ll-hero{min-height:auto}
}
@media(max-width:640px){
  .ll-section{padding:54px 16px}
  .ll-card-grid,.ll-card-grid-4,.ll-card-grid-2,.ll-stats,.ll-social-grid,.ll-query .wp-block-post-template,.ll-query.ll-query-4 .wp-block-post-template{grid-template-columns:1fr!important}
  .ll-contact-form .ll-row{grid-template-columns:1fr}
  .ll-display{font-size:48px!important}
  .ll-hero:before{width:280px;height:280px;border-width:24px;right:-130px;top:-95px}
}
