/*
Theme Name: My Crafty Cabin
Theme URI: https://mycraftycabin.com
Author: My Crafty Cabin
Description: An elegant, rustic, clean WordPress theme designed for crafts, tutorials, seasonal projects, printables, and handmade living.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-crafty-cabin
Tags: blog, custom-logo, custom-menu, featured-images, full-width-template, one-column, two-columns, block-styles, editor-style, wide-blocks, threaded-comments, translation-ready
*/

:root {
  --mcc-cream: #fbf7f1;
  --mcc-paper: #fffdf9;
  --mcc-charcoal: #273039;
  --mcc-brown: #4a3428;
  --mcc-sage: #7f8871;
  --mcc-blush: #d89586;
  --mcc-line: #e7ddd2;
  --mcc-shadow: 0 18px 50px rgba(63, 47, 37, .09);
  --mcc-radius: 18px;
  --mcc-serif: Georgia, 'Times New Roman', serif;
  --mcc-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--mcc-charcoal); background:var(--mcc-cream); font-family:var(--mcc-sans); line-height:1.7; -webkit-font-smoothing:antialiased; }
a { color:var(--mcc-brown); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--mcc-blush); }
img { max-width:100%; height:auto; }
.site-shell { min-height:100vh; display:flex; flex-direction:column; }
.site-content { flex:1; }
.container { width:min(1180px, calc(100% - 40px)); margin-inline:auto; }
.narrow { width:min(780px, calc(100% - 40px)); margin-inline:auto; }

.site-header { background:rgba(251,247,241,.94); border-bottom:1px solid rgba(74,52,40,.10); position:sticky; top:0; z-index:30; backdrop-filter:blur(15px); }
.header-inner { min-height:104px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.site-branding { display:flex; align-items:center; min-width:0; }
.custom-logo-link { display:block; line-height:0; }
.custom-logo { width:auto; max-height:78px; }
.site-title { margin:0; font-family:var(--mcc-serif); font-size:clamp(1.7rem,3vw,2.65rem); font-weight:500; letter-spacing:-.04em; }
.site-title a { text-decoration:none; color:var(--mcc-charcoal); }
.site-description { margin:.1rem 0 0; color:var(--mcc-sage); font-size:.85rem; letter-spacing:.13em; text-transform:uppercase; }
.primary-nav ul { display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.primary-nav a { color:var(--mcc-charcoal); text-decoration:none; font-size:.82rem; text-transform:uppercase; letter-spacing:.14em; font-weight:650; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color:var(--mcc-blush); }
.menu-toggle { display:none; border:1px solid var(--mcc-line); background:var(--mcc-paper); border-radius:999px; padding:.65rem .9rem; color:var(--mcc-charcoal); }

.hero { padding:clamp(70px,9vw,128px) 0; position:relative; overflow:hidden; }
.hero:before { content:''; position:absolute; width:360px; height:360px; border-radius:50%; background:rgba(216,149,134,.12); right:-120px; top:-170px; }
.hero-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:70px; align-items:center; }
.eyebrow { color:var(--mcc-blush); text-transform:uppercase; letter-spacing:.18em; font-size:.76rem; font-weight:750; }
.hero h1 { font-family:var(--mcc-serif); font-size:clamp(3rem,7vw,6.5rem); line-height:.98; letter-spacing:-.055em; font-weight:500; margin:.35em 0 .3em; }
.hero h1 em { color:var(--mcc-sage); font-weight:400; }
.hero-copy { max-width:640px; font-size:1.1rem; color:#596069; }
.button, .wp-block-button__link, input[type=submit] { display:inline-flex; align-items:center; justify-content:center; border:none; border-radius:999px; background:var(--mcc-charcoal); color:white; padding:.9rem 1.35rem; text-decoration:none; font-weight:700; letter-spacing:.03em; cursor:pointer; transition:.2s ease; }
.button:hover, .wp-block-button__link:hover, input[type=submit]:hover { transform:translateY(-2px); background:var(--mcc-brown); color:white; }
.button-secondary { background:transparent; color:var(--mcc-charcoal); border:1px solid var(--mcc-line); }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.hero-card { background:var(--mcc-paper); padding:18px; border:1px solid var(--mcc-line); border-radius:28px; box-shadow:var(--mcc-shadow); transform:rotate(1.5deg); }
.hero-card img { border-radius:18px; display:block; }

.section { padding:84px 0; }
.section-white { background:var(--mcc-paper); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:34px; }
.section-heading h2 { font-family:var(--mcc-serif); font-size:clamp(2.1rem,4vw,3.5rem); line-height:1.1; letter-spacing:-.04em; margin:0; font-weight:500; }
.section-heading p { max-width:560px; margin:0; color:#6b6f72; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.post-card { background:var(--mcc-paper); border:1px solid var(--mcc-line); border-radius:var(--mcc-radius); overflow:hidden; box-shadow:0 10px 30px rgba(63,47,37,.05); transition:.22s ease; }
.post-card:hover { transform:translateY(-5px); box-shadow:var(--mcc-shadow); }
.post-card-thumb { aspect-ratio:4/3; overflow:hidden; background:#eee7dd; }
.post-card-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.post-card:hover img { transform:scale(1.035); }
.post-card-content { padding:24px; }
.post-meta { color:var(--mcc-blush); text-transform:uppercase; letter-spacing:.13em; font-size:.72rem; font-weight:750; }
.post-card h3 { font-family:var(--mcc-serif); font-size:1.65rem; line-height:1.15; margin:.55rem 0; font-weight:500; }
.post-card h3 a { text-decoration:none; color:var(--mcc-charcoal); }
.post-card p { margin:0; color:#666d70; }

.content-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:55px; padding:64px 0; }
.entry, .page-entry { background:var(--mcc-paper); border:1px solid var(--mcc-line); border-radius:var(--mcc-radius); padding:clamp(28px,5vw,58px); box-shadow:0 12px 35px rgba(63,47,37,.045); }
.entry-header { margin-bottom:28px; }
.entry-title { font-family:var(--mcc-serif); font-size:clamp(2.35rem,5vw,4.8rem); line-height:1.04; letter-spacing:-.05em; font-weight:500; margin:.2em 0; }
.entry-title a { color:inherit; text-decoration:none; }
.entry-content > * { max-width:760px; margin-left:auto; margin-right:auto; }
.entry-content > .alignwide { max-width:1040px; }
.entry-content > .alignfull { max-width:none; width:100vw; margin-left:calc(50% - 50vw); }
.entry-content h2, .entry-content h3, .entry-content h4 { font-family:var(--mcc-serif); line-height:1.2; color:var(--mcc-brown); }
.entry-content h2 { font-size:2.2rem; margin-top:1.6em; }
.entry-content blockquote { border-left:4px solid var(--mcc-blush); margin:2rem auto; padding:1rem 1.5rem; color:#62686a; font-family:var(--mcc-serif); font-size:1.35rem; background:#fff8f4; }
.entry-content input, .entry-content textarea, .entry-content select, .widget input, .widget select { width:100%; border:1px solid var(--mcc-line); border-radius:10px; padding:.8rem; background:white; }
.sidebar { display:flex; flex-direction:column; gap:24px; }
.widget { background:var(--mcc-paper); border:1px solid var(--mcc-line); border-radius:var(--mcc-radius); padding:24px; }
.widget-title { margin-top:0; font-family:var(--mcc-serif); font-size:1.45rem; font-weight:500; }
.widget ul { list-style:none; padding:0; margin:0; }
.widget li + li { border-top:1px solid var(--mcc-line); margin-top:.65rem; padding-top:.65rem; }

.archive-header { padding:70px 0 30px; }
.archive-title { font-family:var(--mcc-serif); font-size:clamp(2.6rem,6vw,5rem); font-weight:500; letter-spacing:-.05em; margin:0; }
.pagination, .nav-links { display:flex; gap:10px; flex-wrap:wrap; margin-top:36px; }
.page-numbers { padding:.55rem .85rem; border:1px solid var(--mcc-line); border-radius:999px; text-decoration:none; background:var(--mcc-paper); }
.page-numbers.current { background:var(--mcc-charcoal); color:white; }

.site-footer { margin-top:70px; background:var(--mcc-charcoal); color:#f5eee7; }
.footer-main { display:grid; grid-template-columns:1.3fr repeat(2,1fr); gap:48px; padding:72px 0; }
.site-footer a { color:#f5eee7; }
.footer-title { font-family:var(--mcc-serif); font-size:2rem; margin:0 0 .5rem; font-weight:500; }
.footer-menu { list-style:none; margin:0; padding:0; }
.footer-menu li + li { margin-top:.5rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); padding:20px 0; color:#cfc8c1; font-size:.85rem; }

.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus { clip:auto; width:auto; height:auto; top:8px; left:8px; z-index:9999; background:white; padding:.7rem; }

@media (max-width: 900px) {
  .hero-grid, .content-grid, .footer-main { grid-template-columns:1fr; }
  .card-grid { grid-template-columns:repeat(2,1fr); }
  .menu-toggle { display:block; }
  .primary-nav { display:none; position:absolute; left:20px; right:20px; top:92px; background:var(--mcc-paper); border:1px solid var(--mcc-line); border-radius:16px; padding:18px; box-shadow:var(--mcc-shadow); }
  .primary-nav.is-open { display:block; }
  .primary-nav ul { flex-direction:column; align-items:flex-start; gap:15px; }
}
@media (max-width: 620px) {
  .container, .narrow { width:min(100% - 26px, 1180px); }
  .header-inner { min-height:82px; }
  .custom-logo { max-height:58px; max-width:250px; }
  .card-grid { grid-template-columns:1fr; }
  .section-heading { align-items:start; flex-direction:column; }
  .hero { padding:60px 0; }
  .hero h1 { font-size:3.3rem; }
}
