/*
Theme Name: Susanna Callaghan 2026
Theme URI: https://susannacallaghan.co.uk/
Author: Custom theme for Susanna Callaghan
Description: A bespoke editorial WordPress theme for writer Susanna Callaghan.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: susanna-callaghan-2026
*/

:root{
  --ink:#111111;
  --charcoal:#242426;
  --paper:#f6f3ef;
  --paper-2:#eeeae5;
  --mauve:#7a465f;
  --mauve-light:#c08b9f;
  --line:rgba(17,17,17,.16);
  --white:#fff;
  --max:1200px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(calc(100% - 80px),var(--max));margin:auto}
.site-header{position:absolute;z-index:20;top:0;left:0;right:0;color:#fff}
.header-inner{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{font-family:var(--serif);font-size:24px;letter-spacing:.16em;text-transform:uppercase;line-height:1.05}
.brand small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.35em;color:var(--mauve-light);margin-top:10px}
.primary-nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.primary-nav a{font-size:12px;letter-spacing:.08em;text-transform:uppercase;position:relative}
.primary-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-10px;height:1px;background:var(--mauve-light);transition:.3s}
.primary-nav a:hover:after,.primary-nav .current-menu-item>a:after{right:0}
.menu-toggle{display:none;background:none;border:0;color:inherit;font-size:24px}
.hero{min-height:680px;background:#111;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:
linear-gradient(90deg,rgba(10,10,10,.94) 0%,rgba(10,10,10,.78) 42%,rgba(10,10,10,.18) 100%),
linear-gradient(0deg,rgba(0,0,0,.35),transparent 45%),
url('assets/hero.jpg') center/cover no-repeat;opacity:1}
.hero-inner{position:relative;z-index:1;padding:150px 0 100px}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--mauve)}
.hero .eyebrow{color:var(--mauve-light)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.02;margin:0 0 24px}
h1{font-size:clamp(58px,7vw,96px);max-width:650px}
h2{font-size:clamp(42px,5vw,64px)}
h3{font-size:30px}
.hero h1 span{color:var(--mauve-light)}
.lead{font-family:var(--serif);font-size:21px;line-height:1.45;max-width:620px;color:rgba(255,255,255,.84)}
.rule{width:42px;height:1px;background:var(--mauve-light);margin:26px 0}
.button{display:inline-flex;align-items:center;gap:18px;border:1px solid currentColor;padding:12px 17px;font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.button:hover{background:var(--mauve);border-color:var(--mauve)}
.section{padding:100px 0}
.section--paper{background:var(--paper)}
.section--white{background:#fff}
.current-grid{display:grid;grid-template-columns:300px 1fr;gap:70px;align-items:center}
.feature{position:relative;min-height:310px;background:var(--charcoal);overflow:hidden}
.feature .feature-image{position:absolute;inset:0;background:url('assets/current-writing.jpg') center/cover}
.feature .quote{position:absolute;right:0;bottom:0;width:min(44%,390px);padding:35px;background:rgba(17,17,17,.94);color:#fff}
.quote-mark{font-family:var(--serif);font-size:50px;color:var(--mauve-light);line-height:.6}
.quote p{font-family:var(--serif);font-size:26px;line-height:1.25}
.text-link{display:inline-flex;gap:10px;color:var(--mauve);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.writing-title{text-align:center;margin-bottom:42px}
.writing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.writing-card{min-height:330px;background:var(--charcoal);color:#fff;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.writing-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.05),rgba(0,0,0,.85)),var(--card-image) center/cover}
.writing-card__content{position:relative;padding:34px;max-width:290px;margin-left:auto}
.writing-card h3{font-size:34px}
.writing-card p{font-size:14px;color:rgba(255,255,255,.8);line-height:1.5}
.achievements{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.achievement-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.achievement{background-image:url('assets/laurels.jpg') center/cover; padding:30px 20px;text-align:center;border-right:1px solid var(--line)}
.achievement .achievement-image{position:absolute;inset:0;background:url('assets/laurels.jpg') center/cover}
.achievement:last-child{border:0}
.achievement strong{display:block;font-family:var(--serif);font-size:20px;font-weight:500}
.achievement span{display:block;color:var(--mauve);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-top:8px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-photo{min-height:420px;background:url('assets/about-susanna.jpg') center/cover}
.about-copy p{max-width:580px}
.photography-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.photo-tile{height:320px;position:relative;background:var(--charcoal);overflow:hidden}
.photo-tile:before{content:"";position:absolute;inset:0;background:var(--photo) center/cover;transition:.5s}
.photo-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 55%)}
.photo-tile:hover:before{transform:scale(1.04)}
.photo-label{position:absolute;z-index:2;left:28px;bottom:24px;color:#fff;font-family:var(--serif);font-size:28px}
.photo-label small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-top:8px}
.site-footer{background:var(--ink);color:#fff;padding:70px 0 20px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.4fr;gap:40px}
.site-footer h4{font-family:var(--sans);font-size:11px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:18px;color:var(--mauve-light)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:6px 0;font-size:13px;color:rgba(255,255,255,.7)}
.footer-brand{font-family:var(--serif);font-size:24px;letter-spacing:.15em;text-transform:uppercase}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:50px;padding-top:18px;display:flex;justify-content:space-between;font-size:11px;color:rgba(255,255,255,.55)}
.page-hero{background:var(--charcoal);color:#fff;padding:170px 0 90px}
.content{max-width:820px;margin:auto;padding:90px 0}
.content img{margin:30px 0}
@media(max-width:900px){
  .container{width:min(calc(100% - 48px),var(--max))}
  .primary-nav{display:none}.menu-toggle{display:block}
  .current-grid,.about-grid{grid-template-columns:1fr;gap:40px}
  .writing-grid{grid-template-columns:1fr}
  .achievement-grid{grid-template-columns:1fr 1fr}
  .achievement:nth-child(2){border-right:0}.achievement:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .container{width:min(calc(100% - 36px),var(--max))}
  .header-inner{min-height:76px}
  .brand{font-size:18px}
  .hero{min-height:650px}.hero-inner{padding:140px 0 70px}
  h1{font-size:56px}.lead{font-size:18px}
  .section{padding:70px 0}
  .feature{min-height:460px}.feature .quote{width:78%;padding:24px}.quote p{font-size:23px}
  .achievement-grid{grid-template-columns:1fr}
  .achievement{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .achievement:last-child{border-bottom:0!important}
  .photography-grid{grid-template-columns:1fr}.photo-tile{height:260px}
  .footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px}
}

.primary-nav .sub-menu{position:absolute;top:100%;left:-18px;min-width:205px;background:rgba(17,17,17,.97);padding:12px 18px;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.22s;box-shadow:0 16px 35px rgba(0,0,0,.22)}.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}.primary-nav .sub-menu a{padding:9px 0;color:rgba(255,255,255,.86);font-size:11px}.primary-nav .sub-menu a:hover{color:#fff}.text-link{border-bottom:1px solid rgba(122,70,95,.45);padding-bottom:3px;transition:.2s}.text-link:hover{color:#111;border-color:var(--mauve);gap:14px}@media(max-width:900px){.primary-nav.is-open{display:block;position:absolute;top:76px;left:18px;right:18px;background:rgba(17,17,17,.98);padding:12px 22px 20px}.primary-nav.is-open>ul{display:block}.primary-nav.is-open .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;box-shadow:none;padding:0 0 5px 18px}}
/* Navigation correction */
.primary-nav > ul{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
.primary-nav > ul > li{position:relative}
.primary-nav .sub-menu{display:block!important;position:absolute;top:100%;left:0;right:auto;width:max-content;min-width:220px;margin:0;padding:12px 18px 14px;list-style:none;background:rgba(17,17,17,.98);box-shadow:0 16px 35px rgba(0,0,0,.24);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;z-index:100}
.primary-nav .sub-menu li{display:block!important;width:100%;margin:0;padding:0}
.primary-nav .sub-menu li a{display:block;width:100%;padding:9px 0;color:rgba(255,255,255,.88);font-size:11px;line-height:1.4;white-space:nowrap}
.primary-nav .sub-menu li a:hover,.primary-nav .sub-menu li a:focus-visible{color:#fff}
.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}

/* Body links */
.content a:not(.button):not(.text-link),.content p a,.content li a,.entry-content a,.page-content a,.post-content a{color:var(--mauve);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(122,70,95,.55);transition:color .2s ease,text-decoration-color .2s ease}
.content a:not(.button):not(.text-link):hover,.content p a:hover,.content li a:hover,.entry-content a:hover,.page-content a:hover,.post-content a:hover,.content a:not(.button):not(.text-link):focus-visible,.content p a:focus-visible{color:var(--ink);text-decoration-color:var(--mauve)}
@media(max-width:900px){.primary-nav.is-open>ul{display:block}.primary-nav.is-open>ul>li{display:block;width:100%}.primary-nav.is-open .sub-menu{display:block!important;position:static;width:auto;min-width:0;opacity:1;visibility:visible;transform:none;background:transparent;box-shadow:none;padding:0 0 6px 18px}.primary-nav.is-open .sub-menu li{display:block!important}}

/* Awards: four-column laurel strip */
.achievements{
    background:#fff;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:34px 0 40px;
}
.achievements-heading{text-align:center;margin-bottom:18px}
.achievements-heading .eyebrow{
    color:var(--mauve);
    display:inline-flex;
    align-items:center;
    gap:16px;
}
.achievements-heading .eyebrow::before,
.achievements-heading .eyebrow::after{
    content:"";
    width:44px;
    height:1px;
    background:var(--mauve-light);
}
.achievement-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    width:100%;
}
.achievement{
    min-height:130px;
    padding:12px 18px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 48px;
    align-items:center;
    text-align:center;
    border-right:1px solid var(--line);
}
.achievement:last-child{border-right:0}
.award-laurel{
    display:block;
    width:48px;
    height:82px;
    object-fit:contain;
}
.award-laurel--left{justify-self:start}
.award-laurel--right{justify-self:end}
.achievement-text{min-width:0;padding:0 5px}
.achievement-text strong{
    display:block;
    margin:0 0 8px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:17px;
    font-weight:500;
    line-height:1.14;
}
.achievement-text span{
    display:block;
    color:var(--mauve);
    font-family:var(--sans);
    font-size:9px;
    font-weight:600;
    letter-spacing:.18em;
    line-height:1.2;
    text-transform:uppercase;
}
@media(max-width:1000px){
    .achievement{padding-left:8px;padding-right:8px;grid-template-columns:36px minmax(0,1fr) 36px}
    .award-laurel{width:36px;height:72px}
    .achievement-text strong{font-size:15px}
}
@media(max-width:700px){
    .achievement-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scrollbar-width:thin;
        padding-bottom:8px;
    }
    .achievement{
        flex:0 0 82%;
        min-height:125px;
        border-right:1px solid var(--line);
        scroll-snap-align:start;
    }
}
