@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Crimson+Text:ital,wght@0,400;0,600;1,400&family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Montserrat:wght@300;400;500&display=swap');

:root {
    --cream: #FAF8F4; --sage: #A6B5A0; --deep-green: #4A5D4E;
    --blush: #E8D5D0; --warm-grey: #8B8680; --charcoal: #3A3632;
    --white: #FFFFFF; --soft-shadow: rgba(58,54,50,.08); --medium-shadow: rgba(58,54,50,.15);
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Montserrat',-apple-system,sans-serif; color:var(--charcoal); background:var(--cream); line-height:1.7; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; letter-spacing:.02em; line-height:1.2; }
h1 { font-size:clamp(2.5rem,6vw,5rem); font-weight:300; font-style:italic; }
h2 { font-size:clamp(2rem,4vw,3.5rem); margin-bottom:1.5rem; }
h3 { font-size:clamp(1.5rem,3vw,2.25rem); margin-bottom:1rem; }
p { font-size:clamp(1rem,1.5vw,1.125rem); font-weight:300; line-height:1.8; color:var(--charcoal); }
.serif-text { font-family:'Crimson Text',Georgia,serif; font-size:clamp(1.125rem,2vw,1.375rem); line-height:1.9; }
.tcc-hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(135deg,var(--sage) 0%,var(--deep-green) 100%); }
.tcc-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%,rgba(232,213,208,.3) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(166,181,160,.2) 0%,transparent 50%); animation:heroGlow 8s ease-in-out infinite alternate; }
@keyframes heroGlow { from{opacity:.9} to{opacity:1} }
.tcc-hero-content { position:relative; z-index:2; text-align:center; max-width:900px; padding:2rem; animation:fadeInUp 1.2s cubic-bezier(.22,1,.36,1); }
@keyframes fadeInUp { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
.tcc-hero h1 { color:var(--white); margin-bottom:1.5rem; text-shadow:0 2px 20px rgba(0,0,0,.2); animation:fadeInUp 1.2s cubic-bezier(.22,1,.36,1) .2s backwards; }
.tcc-hero-subtitle { font-family:'Crimson Text',serif; font-size:clamp(1.125rem,2.5vw,1.5rem); color:var(--cream); margin-bottom:3rem; letter-spacing:.05em; line-height:1.7; animation:fadeInUp 1.2s cubic-bezier(.22,1,.36,1) .4s backwards; }
.tcc-hero-ctas { display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap; animation:fadeInUp 1.2s cubic-bezier(.22,1,.36,1) .6s backwards; }
.tcc-btn { padding:1rem 2.5rem; font-family:'Montserrat',sans-serif; font-size:.9rem; font-weight:400; letter-spacing:.15em; text-transform:uppercase; text-decoration:none; border:none; cursor:pointer; transition:all .4s cubic-bezier(.22,1,.36,1); position:relative; overflow:hidden; display:inline-block; }
.tcc-btn-primary { background:var(--white); color:var(--deep-green); box-shadow:0 8px 24px rgba(0,0,0,.15); }
.tcc-btn-primary:hover { transform:translateY(-3px); box-shadow:0 12px 32px rgba(0,0,0,.25); color:var(--deep-green); text-decoration:none; }
.tcc-btn-secondary { background:transparent; color:var(--white); border:2px solid var(--white); }
.tcc-btn-secondary:hover { background:var(--white); color:var(--deep-green); transform:translateY(-3px); text-decoration:none; }
.tcc-section { padding:clamp(4rem,10vw,8rem) clamp(1.5rem,5vw,3rem); }
.tcc-container { max-width:1200px; margin:0 auto; }
.tcc-narrow { max-width:800px; }
.tcc-brand-story { background:var(--white); position:relative; }
.tcc-brand-story::before { content:'C'; position:absolute; top:5%; left:5%; font-family:'Cormorant Garamond',serif; font-size:20rem; color:var(--blush); opacity:.3; line-height:1; pointer-events:none; }
.tcc-story-content { position:relative; z-index:1; }
.tcc-story-intro { font-family:'Cormorant Garamond',serif; font-size:clamp(1.5rem,3vw,2rem); font-style:italic; color:var(--deep-green); margin-bottom:2.5rem; line-height:1.6; }
.tcc-story-content p { margin-bottom:1.5rem; }
.tcc-features { background:linear-gradient(to bottom,var(--cream),var(--white)); }
.tcc-section-header { text-align:center; margin-bottom:4rem; }
.tcc-section-header h2 { margin-bottom:1rem; }
.tcc-section-subtitle { font-family:'Crimson Text',serif; font-size:1.25rem; color:var(--warm-grey); font-style:italic; }
.tcc-features-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:2.5rem; margin-top:3rem; }
.tcc-feature-card { background:var(--white); padding:2.5rem 2rem; border-radius:2px; box-shadow:0 4px 20px var(--soft-shadow); transition:all .4s cubic-bezier(.22,1,.36,1); border-top:3px solid var(--blush); }
.tcc-feature-card:hover { transform:translateY(-8px); box-shadow:0 12px 40px var(--medium-shadow); }
.tcc-feature-icon { width:60px; height:60px; background:linear-gradient(135deg,var(--sage),var(--deep-green)); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; font-size:1.75rem; }
.tcc-feature-card h3 { font-size:1.5rem; margin-bottom:1rem; color:var(--deep-green); }
.tcc-feature-card p { font-size:1rem; line-height:1.7; }
.tcc-gallery { background:var(--cream); padding:clamp(5rem,12vw,10rem) clamp(1.5rem,5vw,3rem); }
.tcc-gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; max-width:1400px; margin:0 auto; }
.tcc-gallery-item { position:relative; overflow:hidden; background:var(--sage); border-radius:2px; box-shadow:0 8px 30px var(--soft-shadow); transition:transform .5s cubic-bezier(.22,1,.36,1); }
.tcc-gallery-item:hover { transform:scale(1.02); z-index:2; }
.tcc-gallery-item.large { grid-column:span 8; aspect-ratio:16/10; }
.tcc-gallery-item.medium { grid-column:span 4; aspect-ratio:4/5; }
.tcc-gallery-item.small { grid-column:span 6; aspect-ratio:1; }
.tcc-gallery-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--sage),var(--deep-green)); color:var(--white); font-family:'Crimson Text',serif; font-size:1.125rem; font-style:italic; padding:2rem; text-align:center; }
.tcc-gallery-caption { position:absolute; bottom:0; left:0; right:0; padding:1.5rem; background:linear-gradient(to top,rgba(58,54,50,.9),transparent); color:var(--white); font-family:'Crimson Text',serif; font-size:1rem; opacity:0; transition:opacity .4s ease; }
.tcc-gallery-item:hover .tcc-gallery-caption { opacity:1; }
.tcc-seasonal { background:var(--white); }
.tcc-seasonal-content { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; margin-top:3rem; }
.tcc-seasonal-text h3 { color:var(--deep-green); margin-bottom:1.5rem; }
.tcc-seasonal-list { list-style:none; margin-top:2rem; }
.tcc-seasonal-list li { padding:1rem 0 1rem 2.5rem; border-bottom:1px solid var(--blush); position:relative; font-family:'Crimson Text',serif; font-size:1.125rem; transition:all .3s ease; }
.tcc-seasonal-list li:hover { padding-left:3rem; color:var(--deep-green); }
.tcc-seasonal-list li::before { content:'✦'; position:absolute; left:0; color:var(--sage); font-size:1.25rem; }
.tcc-seasonal-visual { background:linear-gradient(135deg,var(--blush),var(--sage)); aspect-ratio:4/5; border-radius:2px; display:flex; align-items:center; justify-content:center; color:var(--white); font-family:'Cormorant Garamond',serif; font-size:2rem; font-style:italic; box-shadow:0 12px 40px var(--medium-shadow); }
.tcc-author { background:var(--deep-green); color:var(--cream); }
.tcc-author h2,.tcc-author h3 { color:var(--white); }
.tcc-author p { color:var(--cream); }
.tcc-author-content { display:grid; grid-template-columns:1fr 2fr; gap:4rem; align-items:start; margin-top:3rem; }
.tcc-author-image { aspect-ratio:3/4; background:linear-gradient(135deg,var(--sage),var(--blush)); border-radius:2px; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-style:italic; color:var(--white); text-align:center; padding:2rem; box-shadow:0 12px 40px rgba(0,0,0,.3); }
.tcc-author-bio h3 { margin-bottom:1.5rem; }
.tcc-author-bio p { margin-bottom:1.5rem; }
.tcc-faq { background:var(--cream); }
.tcc-faq-list { margin-top:3rem; max-width:900px; margin-left:auto; margin-right:auto; }
.tcc-faq-item { margin-bottom:2rem; background:var(--white); padding:2rem; border-radius:2px; box-shadow:0 2px 12px var(--soft-shadow); transition:all .3s ease; }
.tcc-faq-item:hover { box-shadow:0 6px 24px var(--medium-shadow); }
.tcc-faq-question { font-family:'Cormorant Garamond',serif; font-size:1.5rem; color:var(--deep-green); margin-bottom:1rem; font-weight:500; }
.tcc-faq-answer { font-size:1.0625rem; line-height:1.8; color:var(--charcoal); }
.tcc-conversion { background:linear-gradient(135deg,var(--sage),var(--deep-green)); color:var(--white); text-align:center; padding:clamp(5rem,12vw,10rem) clamp(1.5rem,5vw,3rem); position:relative; overflow:hidden; }
.tcc-conversion::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 20% 50%,rgba(232,213,208,.1) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(166,181,160,.1) 0%,transparent 50%); }
.tcc-conversion-content { position:relative; z-index:1; max-width:800px; margin:0 auto; }
.tcc-conversion h2 { color:var(--white); margin-bottom:1.5rem; }
.tcc-conversion p { color:var(--cream); font-family:'Crimson Text',serif; font-size:1.25rem; margin-bottom:3rem; line-height:1.9; }
.tcc-conversion-ctas { display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap; }
.tcc-footer { background:var(--charcoal); color:var(--cream); text-align:center; padding:3rem 2rem; }
.tcc-footer p { color:var(--cream); font-size:.9rem; opacity:.8; }
@media(max-width:968px){.tcc-seasonal-content,.tcc-author-content{grid-template-columns:1fr;gap:2.5rem}.tcc-gallery-item.large,.tcc-gallery-item.medium,.tcc-gallery-item.small{grid-column:span 12}}
@media(max-width:640px){.tcc-hero-ctas,.tcc-conversion-ctas{flex-direction:column;align-items:stretch}.tcc-btn{width:100%}.tcc-features-grid{grid-template-columns:1fr}}
.tcc-fade-in{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.tcc-fade-in.visible{opacity:1;transform:translateY(0)}