/*
Theme Name: Traintek Rail Journal
Theme URI: https://www.traintekllc.com/
Description: Traintek 한국 철도 여행 매거진. Astra 기반 차일드 테마.
Author: Traintek
Version: 1.0.0
Template: astra
Text Domain: traintekllc-child
*/

:root{
  --ttk-green:#173a2c;
  --ttk-green-2:#0f2a20;
  --ttk-green-ink:#0a1d15;
  --ttk-brass:#b6883b;
  --ttk-brass-2:#d3a557;
  --ttk-paper:#f4eedf;
  --ttk-paper-2:#ece3d0;
  --ttk-card:#fbf8ee;
  --ttk-ink:#221e16;
  --ttk-muted:#5c5444;
  --ttk-line:rgba(23,58,44,.16);
  --ttk-line-brass:rgba(182,136,59,.42);
  --ttk-wrap:1196px;
  --ttk-serif:"Hahmlet",serif;
  --ttk-body:"Nanum Gothic",sans-serif;
  --ttk-slab:"Zilla Slab",serif;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background-color:var(--ttk-paper);
  background-image:
    radial-gradient(circle at 12% 6%, rgba(182,136,59,.07), transparent 42%),
    radial-gradient(circle at 90% 0%, rgba(23,58,44,.06), transparent 38%);
  background-attachment:fixed;
  color:var(--ttk-ink);
  font-family:var(--ttk-body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{color:var(--ttk-green);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--ttk-brass);}

img{max-width:100%;height:auto;display:block;}

.ttk-shell{overflow-x:hidden;}

.ttk-wrap{max-width:var(--ttk-wrap);width:100%;margin:0 auto;padding:0 24px;}

.ttk-masthead{
  position:sticky;top:0;z-index:60;
  background:linear-gradient(180deg,var(--ttk-green) 0%,var(--ttk-green-2) 100%);
  color:var(--ttk-paper);
  border-bottom:3px solid var(--ttk-brass);
  box-shadow:0 2px 0 rgba(0,0,0,.18);
  transition:box-shadow .3s ease;
}
.ttk-masthead.is-stuck{box-shadow:0 8px 26px rgba(10,29,21,.4);}
.ttk-masthead-inner{display:flex;align-items:center;gap:24px;min-height:76px;}

.ttk-brand{display:flex;flex-direction:column;line-height:1;color:var(--ttk-paper);}
.ttk-brand-mark{font-family:var(--ttk-slab);font-weight:700;font-size:30px;letter-spacing:.05em;text-transform:uppercase;}
.ttk-brand-sub{font-family:var(--ttk-body);font-size:11px;letter-spacing:.36em;color:var(--ttk-brass-2);margin-top:7px;text-transform:uppercase;}

.ttk-nav{margin-left:auto;}
.ttk-menu{display:flex;gap:4px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.ttk-menu li{margin:0;position:relative;}
.ttk-menu a{display:block;color:var(--ttk-paper);font-size:15px;font-weight:700;padding:10px 15px;border-radius:2px;position:relative;}
.ttk-menu a::after{content:"";position:absolute;left:15px;right:15px;bottom:6px;height:2px;background:var(--ttk-brass-2);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.ttk-menu a:hover{color:var(--ttk-brass-2);}
.ttk-menu a:hover::after{transform:scaleX(1);}
.ttk-menu .sub-menu{position:absolute;left:0;top:100%;min-width:184px;background:var(--ttk-green-2);border:1px solid var(--ttk-brass);border-top:0;list-style:none;margin:0;padding:6px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:all .22s ease;box-shadow:0 14px 30px rgba(10,29,21,.4);z-index:5;}
.ttk-menu li:hover>.sub-menu{opacity:1;visibility:visible;transform:none;}
.ttk-menu .sub-menu a{padding:9px 16px;font-size:14px;}
.ttk-menu .sub-menu a::after{display:none;}

.ttk-navtoggle{display:none;}

.ttk-board{
  background:
    repeating-linear-gradient(180deg,transparent 0 38px,rgba(0,0,0,.16) 38px 39px),
    linear-gradient(180deg,var(--ttk-green-ink),var(--ttk-green-2));
  color:var(--ttk-paper);
  padding:44px 0 50px;
  border-bottom:6px double var(--ttk-brass);
}
.ttk-board-head{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
.ttk-board-sign{font-family:var(--ttk-slab);font-weight:700;letter-spacing:.5em;font-size:13px;color:var(--ttk-green-ink);background:var(--ttk-brass-2);padding:7px 12px 7px 18px;border-radius:2px;}
.ttk-board-title{font-family:var(--ttk-serif);font-weight:700;font-size:clamp(23px,3.4vw,37px);margin:0;color:var(--ttk-paper);line-height:1.22;flex:1 1 320px;}
.ttk-board-clock{font-family:var(--ttk-slab);font-weight:600;font-size:21px;color:var(--ttk-brass-2);letter-spacing:.08em;}
.ttk-board-list{border-top:1px solid rgba(211,165,87,.3);}
.ttk-board-row{
  display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:20px;
  padding:15px 6px;border-bottom:1px solid rgba(211,165,87,.18);color:var(--ttk-paper);
  opacity:0;transform:translateY(8px);
  transition:opacity .55s ease,transform .55s ease,background .2s ease;
  transition-delay:var(--d,0s);
}
.ttk-board-row.is-in{opacity:1;transform:none;}
.ttk-board-row:hover{background:rgba(211,165,87,.09);}
.ttk-board-time{font-family:var(--ttk-slab);font-weight:600;font-size:23px;color:var(--ttk-brass-2);letter-spacing:.04em;}
.ttk-board-dest{font-family:var(--ttk-serif);font-weight:600;font-size:19px;color:var(--ttk-paper);}
.ttk-board-row:hover .ttk-board-dest{color:var(--ttk-brass-2);}
.ttk-board-track{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ttk-green-ink);background:var(--ttk-brass-2);padding:5px 11px;border-radius:2px;white-space:nowrap;font-weight:700;}
.ttk-board-empty{padding:26px 6px;color:var(--ttk-brass-2);font-family:var(--ttk-serif);font-size:18px;}

.ttk-layout{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:48px;padding:56px 0 74px;align-items:start;}
.ttk-main{min-width:0;}

.ttk-section-head{display:flex;align-items:center;gap:18px;margin-bottom:32px;}
.ttk-section-title{font-family:var(--ttk-serif);font-weight:700;font-size:26px;margin:0;color:var(--ttk-green);white-space:nowrap;}
.ttk-section-line{flex:1;height:2px;background:linear-gradient(90deg,var(--ttk-brass),rgba(182,136,59,0));}

.ttk-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;}
.ttk-card{
  background:var(--ttk-card);border:1px solid var(--ttk-line);border-radius:4px;overflow:hidden;
  box-shadow:0 1px 0 rgba(0,0,0,.03);
  opacity:0;transform:translateY(14px);
  transition:opacity .55s ease,transform .55s ease,box-shadow .25s ease,border-color .25s ease;
  transition-delay:var(--d,0s);
}
.ttk-card.is-in{opacity:1;transform:none;}
.ttk-card:hover{box-shadow:0 16px 32px rgba(15,38,29,.17);border-color:var(--ttk-line-brass);}
.ttk-card-link{display:block;color:inherit;}
.ttk-card-thumb{position:relative;aspect-ratio:16/10;background:var(--ttk-green-2);overflow:hidden;}
.ttk-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
.ttk-card:hover .ttk-card-thumb img{transform:scale(1.05);}
.ttk-card-thumb-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,var(--ttk-green) 0 13px,var(--ttk-green-2) 13px 26px);}
.ttk-card-thumb-ph span{font-family:var(--ttk-slab);letter-spacing:.2em;color:var(--ttk-brass-2);font-size:13px;text-transform:uppercase;}
.ttk-card-cat{position:absolute;left:12px;top:12px;background:var(--ttk-brass);color:var(--ttk-green-ink);font-size:11px;font-weight:700;letter-spacing:.1em;padding:5px 11px;border-radius:2px;}
.ttk-card-body{padding:20px 22px 24px;}
.ttk-card-date{font-family:var(--ttk-slab);font-size:13px;color:var(--ttk-brass);letter-spacing:.06em;}
.ttk-card-title{font-family:var(--ttk-serif);font-weight:700;font-size:21px;line-height:1.4;margin:8px 0 10px;color:var(--ttk-green);}
.ttk-card-excerpt{margin:0 0 14px;color:var(--ttk-muted);font-size:15px;line-height:1.7;}
.ttk-card-more{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--ttk-brass);}
.ttk-card-more::after{content:" →";}
.ttk-empty{color:var(--ttk-muted);font-size:16px;grid-column:1 / -1;padding:30px 0;}

.ttk-aside{position:sticky;top:100px;display:flex;flex-direction:column;gap:26px;}
.ttk-widget{background:var(--ttk-card);border:1px solid var(--ttk-line);border-radius:4px;padding:22px 20px;position:relative;}
.ttk-widget::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--ttk-green),var(--ttk-brass));border-radius:4px 4px 0 0;}
.ttk-widget-title{font-family:var(--ttk-serif);font-weight:700;font-size:17px;margin:4px 0 16px;color:var(--ttk-green);display:flex;align-items:center;gap:12px;}
.ttk-widget-title::after{content:"";flex:1;height:1px;background:var(--ttk-line-brass);}

.ttk-recent{list-style:none;margin:0;padding:0;}
.ttk-recent-item{border-bottom:1px dashed var(--ttk-line);}
.ttk-recent-item:last-child{border-bottom:0;}
.ttk-recent-item a{display:flex;gap:13px;align-items:center;padding:11px 0;color:var(--ttk-ink);}
.ttk-recent-thumb{width:54px;height:54px;flex:0 0 54px;border-radius:3px;overflow:hidden;background:repeating-linear-gradient(135deg,var(--ttk-green) 0 9px,var(--ttk-green-2) 9px 18px);}
.ttk-recent-thumb img{width:100%;height:100%;object-fit:cover;}
.ttk-recent-meta{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ttk-recent-date{font-family:var(--ttk-slab);font-size:12px;color:var(--ttk-brass);letter-spacing:.05em;}
.ttk-recent-title{font-size:14px;font-weight:700;line-height:1.42;color:var(--ttk-green);}
.ttk-recent-item a:hover .ttk-recent-title{color:var(--ttk-brass);}
.ttk-recent-empty{color:var(--ttk-muted);font-size:14px;padding:8px 0;}

.ttk-cats,.ttk-pages{list-style:none;margin:0;padding:0;}
.ttk-cats li,.ttk-pages li{margin:0;}
.ttk-cats a,.ttk-pages a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--ttk-line);color:var(--ttk-ink);font-weight:700;font-size:14px;transition:padding .2s ease,color .2s ease;}
.ttk-cats>li:last-child>a,.ttk-pages>li:last-child>a{border-bottom:0;}
.ttk-cats a::before,.ttk-pages a::before{content:"›";color:var(--ttk-brass);margin-right:9px;}
.ttk-cats a:hover,.ttk-pages a:hover{color:var(--ttk-brass);padding-left:8px;}
.ttk-cats .children{margin:0 0 0 14px;}

.ttk-prose{font-size:17px;line-height:1.85;color:var(--ttk-ink);}
.ttk-prose>p:first-child{font-size:18.5px;color:var(--ttk-green-2);}
.ttk-prose p{margin:0 0 1.3em;}
.ttk-prose h2{font-family:var(--ttk-serif);font-weight:700;font-size:25px;color:var(--ttk-green);margin:1.9em 0 .6em;padding-bottom:.32em;border-bottom:2px solid var(--ttk-line-brass);}
.ttk-prose h3{font-family:var(--ttk-serif);font-weight:600;font-size:20px;color:var(--ttk-green-2);margin:1.5em 0 .5em;}
.ttk-prose h4{font-family:var(--ttk-body);font-weight:800;font-size:17px;color:var(--ttk-green-2);margin:1.3em 0 .4em;}
.ttk-prose ul,.ttk-prose ol{margin:0 0 1.3em;padding-left:1.45em;}
.ttk-prose li{margin:.32em 0;}
.ttk-prose a{color:var(--ttk-brass);border-bottom:1px solid var(--ttk-line-brass);}
.ttk-prose a:hover{color:var(--ttk-green);}
.ttk-prose blockquote{margin:1.6em 0;padding:15px 22px;border-left:4px solid var(--ttk-brass);background:var(--ttk-paper-2);font-style:italic;color:var(--ttk-muted);}
.ttk-prose img{margin:1.5em 0;border-radius:4px;}
.ttk-prose figure{margin:1.5em 0;}
.ttk-prose figcaption{font-size:13px;color:var(--ttk-muted);text-align:center;margin-top:8px;}
.ttk-prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:15px;}
.ttk-prose th,.ttk-prose td{border:1px solid var(--ttk-line);padding:11px 13px;text-align:left;}
.ttk-prose th{background:var(--ttk-green);color:var(--ttk-paper);font-family:var(--ttk-slab);letter-spacing:.03em;font-weight:600;}
.ttk-prose tr:nth-child(even) td{background:var(--ttk-paper-2);}

.ttk-single-head,.ttk-page-head{margin-bottom:26px;}
.ttk-single-cat{display:inline-block;background:var(--ttk-brass);color:var(--ttk-green-ink);font-size:12px;font-weight:700;letter-spacing:.12em;padding:5px 12px;border-radius:2px;text-transform:uppercase;}
.ttk-single-title{font-family:var(--ttk-serif);font-weight:700;font-size:clamp(28px,4vw,40px);line-height:1.26;color:var(--ttk-green);margin:15px 0 12px;}
.ttk-single-meta{font-family:var(--ttk-slab);color:var(--ttk-brass);letter-spacing:.05em;font-size:15px;}
.ttk-single-hero{margin:0 0 30px;border-radius:5px;overflow:hidden;border:1px solid var(--ttk-line);}
.ttk-page-title{font-family:var(--ttk-serif);font-weight:700;font-size:clamp(26px,3.6vw,36px);color:var(--ttk-green);margin:0 0 14px;}
.ttk-page-rule{display:block;width:66px;height:4px;background:linear-gradient(90deg,var(--ttk-brass),var(--ttk-green));border-radius:2px;}

.ttk-pagination{margin-top:46px;}
.ttk-pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.ttk-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 13px;border:1px solid var(--ttk-line);border-radius:3px;font-family:var(--ttk-slab);font-weight:600;color:var(--ttk-green);background:var(--ttk-card);transition:all .2s ease;}
.ttk-pagination .page-numbers.current{background:var(--ttk-green);color:var(--ttk-paper);border-color:var(--ttk-green);}
.ttk-pagination a.page-numbers:hover{border-color:var(--ttk-brass);color:var(--ttk-brass);}

.ttk-footer{
  background:linear-gradient(180deg,var(--ttk-green-2),var(--ttk-green-ink));
  color:var(--ttk-paper);
  border-top:6px double var(--ttk-brass);
  padding:48px 0 28px;margin-top:30px;
}
.ttk-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:38px;}
.ttk-foot-mark{font-family:var(--ttk-slab);font-weight:700;font-size:25px;letter-spacing:.05em;text-transform:uppercase;color:var(--ttk-paper);}
.ttk-foot-brand p{color:rgba(244,238,223,.7);font-size:14px;line-height:1.75;margin:13px 0 0;max-width:36ch;}
.ttk-foot-col h4{font-family:var(--ttk-serif);font-size:15px;color:var(--ttk-brass-2);margin:0 0 15px;letter-spacing:.04em;}
.ttk-foot-col ul{list-style:none;margin:0;padding:0;}
.ttk-foot-col li{margin:0 0 9px;}
.ttk-foot-col a{color:rgba(244,238,223,.82);font-size:14px;}
.ttk-foot-col a:hover{color:var(--ttk-brass-2);}
.ttk-foot-bottom{border-top:1px solid rgba(211,165,87,.2);margin-top:36px;padding-top:18px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:rgba(244,238,223,.55);font-size:12.5px;letter-spacing:.03em;}

@media (max-width:980px){
  .ttk-layout{grid-template-columns:1fr;gap:42px;}
  .ttk-aside{position:static;}
  .ttk-footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:760px){
  body{font-size:16px;}
  .ttk-nav{position:fixed;left:0;right:0;top:76px;background:var(--ttk-green-2);border-bottom:3px solid var(--ttk-brass);padding:10px 24px 18px;transform:translateY(-130%);transition:transform .3s ease;margin-left:0;}
  .ttk-nav.is-open{transform:none;}
  .ttk-menu{flex-direction:column;gap:0;}
  .ttk-menu a{padding:13px 4px;border-bottom:1px solid rgba(211,165,87,.18);}
  .ttk-menu a::after{display:none;}
  .ttk-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;padding:0 0 0 14px;}
  .ttk-navtoggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;width:48px;height:42px;background:transparent;border:1px solid var(--ttk-brass);border-radius:3px;color:var(--ttk-brass-2);font-size:22px;cursor:pointer;line-height:1;}
  .ttk-card-grid{grid-template-columns:1fr;}
  .ttk-board-row{grid-template-columns:66px 1fr;gap:14px;}
  .ttk-board-track{display:none;}
  .ttk-footer-grid{grid-template-columns:1fr;gap:28px;}
}

@media (prefers-reduced-motion:reduce){
  .ttk-card,.ttk-board-row{opacity:1 !important;transform:none !important;transition:none !important;}
}
